ご利用のアプリケーションで国際化が必要な場合は、次の手順に従ってください。
多言語 (英語/フランス語/ロシア語) への対応
統合コンポーネントの確認
統合コンポーネントを確認してください。Amap SDK やホットパッチコンポーネントに依存する一部のコンポーネントは、Google Play の審査で承認されない可能性があります。これらの SDK やコンポーネントは、置き換えまたは削除が必要になる場合があります。また、一部のサードパーティ SDK は中国本土にデータを送信することがあります。必要に応じて、これらのコンポーネントを削除してください。
Blue Shield の使用
Security Guard を Blue Shield に置き換え、必要に応じて複数の Blue Shield イメージを設定してください。
言語対応
英語
mPaaS SDK は、mPaaS Android 10.2.3.68 ベースラインから英語に完全対応しています。また、国際版 10.2.3.global ベースラインもリリースされています。ベースライン 10.2.3.68 以降のバージョンにアップグレードするか、10.2.3.global ベースラインを直接使用してください。その後、公式の Android Locale API を使用して、言語を手動で英語に設定するか、アプリがデバイスのシステム言語に従うように設定します。
フランス語/ロシア語
フランス語またはロシア語をサポートする必要がある場合は、DingTalk グループ番号 145930007362 を検索するか、チケットを起票して、mPaaS テクニカルサポートから対応する言語パックを入手してください。リソースをプロジェクトの res/values-fr/strings.xml および res/values-ru/strings.xml ファイルに配置します。その後、公式の Android Locale API を使用して、言語を手動でフランス語またはロシア語に設定するか、アプリがスマートフォンのシステム言語に従うように設定します。
統合コンポーネントの確認
Amap の位置情報とマップ
以下のコンポーネントは Amap の位置情報またはマップ SDK に依存しており、その一部のバージョンは Google Play で承認されない可能性があります。統合方法に基づいて、関連する依存関係を手動で削除する必要があります。
Mini Program
Mriver Mini Program
Native Mini Program (プライベートクラウド)
Mobile Content Delivery Platform
これらのコンポーネントは AutoNavi の位置情報またはマップ SDK に依存しているため、統合方法に基づいて、関連する依存関係を手動で削除する必要があります。
Amap SDK 依存関係の削除
ネイティブ AAR 統合
メインモジュールの build.gradle ファイルに、次の構成を追加します。
configurations.all {
exclude group:'com.mpaas.group.amap', module: 'amap-build'
exclude group:'com.alipay.android.phone.thirdparty', module: 'amap3dmap-build'
exclude group:'com.alipay.android.phone.mobilecommon', module: 'lbs-build'
}コンポーネントベース (Portal & Bundle) 統合
メインモジュールの build.gradle ファイルに、次の構成を追加します。
mpaascomponents {
excludeDependencies = [
"com.mpaas.group.amap:amap-build",
"com.alipay.android.phone.thirdparty:amap3dmap-build",
"com.alipay.android.phone.mobilecommon:lbs-build",
]
}位置情報コンポーネントの使用
位置情報コンポーネントを統合している場合は、前述のように amap-build と amap3dmap-build を削除する必要がありますが、lbs-build は削除しないでください。また、Amap 公式サイトから Google Play で承認されているバージョンの Amap SDK をインポートする必要もあります。mPaaS は以下の Amap SDK バージョンを使用します。このリストを使用して、互換性があり、Google Play で承認されているバージョンを選択してください。
'com.alipay.android.phone.mobilecommon:AMap-2DMap:5.2.1_20190114@jar'
'com.alipay.android.phone.mobilecommon:AMapSearch:6.1.0_20180330@jar'
'com.alipay.thirdparty.amap:amap-location:4.7.2.20190927@jar'ホットパッチ
Google Play のポリシーでは、アプリが実行可能なコードを動的にダウンロードすることは禁止されています。ホットパッチコンポーネントを統合すると、審査中にアプリが拒否される可能性があります。ホットパッチコンポーネントを統合しないことを推奨します。
サードパーティ SDK のデータ送信
mPaaS SDK に含まれるサードパーティ SDK は、中国本土にあるサーバーにリクエストを送信する場合があります。アプリが中国本土にデータを送信しないようにするには、以下のコンポーネントを統合していないことを確認してください。
UC カーネル
共有
プッシュ - Xiaomi
位置情報
Youku プレーヤー
また、上記の「Amap SDK 依存関係の削除」セクションもご参照ください。
Blue Shield の使用
Security Guard から Blue Shield への置き換え
Security Guard コンポーネントはメンテナンスが終了しているため、targetSdkVersion 34 以降との互換性は保証されません。置き換えるには、「mPaaS 10.2.3 の Security Guard と Blue Shield の切り替えサポート」をご参照ください。
複数の Blue Shield イメージの設定
mPaaS コンポーネントがゲートウェイにリクエストを送信すると、署名に Blue Shield が使用されます。署名情報は Blue Shield イメージに保存されます。このイメージは、アプリケーションの署名にバインドされます。アプリケーションの署名が変更された場合は、新しい Blue Shield イメージを生成する必要があります。そうしないと、リクエストの署名検証が失敗します。
ご利用のアプリが、次のようなさまざまなシナリオで複数の署名を使用する必要がある場合:
Google Play の再署名メカニズムを有効にする
v3 署名のキーのローテーション機能を使用する
次の手順に従ってください。
署名 1 で APK をビルドします。「Blue Shield イメージの生成」ドキュメントをご参照ください。デフォルトのイメージパスは
assets/abs_1222.jpgです。このイメージの名前を、たとえばabs_1222_jks1.jpgに変更します。署名 2 で APK をビルドします。「Blue Shield イメージの生成」ドキュメントをご参照ください。生成されたイメージの名前を、たとえば
abs_1222_jks2.jpgに変更します。(オプション) Google Play の再署名メカニズムを使用する場合は、再署名された APK を Google Play から直接ダウンロードし、それを使用して対応する Blue Shield イメージを生成できます。
これで、プロジェクトの assets ディレクトリに 2 つの Blue Shield イメージが含まれることになります:
assets/abs_1222_jks1.jpg
assets/abs_1222_jks2.jpg
アプリの起動時に次の API を呼び出して、使用する Blue Shield イメージを指定します:
MPBS.setBSAuthCodeDynamically(String bsAuthCode);この API は、ベースラインバージョン 10.2.3.67 以降でサポートされています。
bsAuthCodeパラメーターは、拡張子のない Blue Shield イメージファイルの名前です。たとえば、イメージファイルがabs_1222_jks1.jpgの場合、abs_1222_jks1を渡します。このメソッドを呼び出さない場合、デフォルトのイメージ名abs_1222が使用されます。このメソッドは、mPaaS が初期化される前に呼び出す必要があります。
attachBaseContextメソッドで呼び出すことを推奨します。mPaaS の初期化が完了すると、この API を後から呼び出しても効果はありません。
アプリケーションロジックによって、使用するイメージが決まります。次のコードに例を示します:
// v3 署名は Android 9 以降でサポートされています if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { MPBS.setBSAuthCodeDynamically("abs_1222_jks2"); } else { MPBS.setBSAuthCodeDynamically("abs_1222_jks1"); } // Google Play によって再署名されたアプリは Android 13 以降のデバイスに配信されます if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { MPBS.setBSAuthCodeDynamically("abs_1222_jks2"); } else { MPBS.setBSAuthCodeDynamically("abs_1222_jks1"); }