2つのAPI、Production
ためQA
のための1つ(テストとデバッグ)と他の私はデバッグのためにQA
APIを実行する必要があります(私たちは日食を使用して作成した)とProduction
APIがありますコードを変更せずにマーケットapkを作成します。それは、デバッグAPKまたは現在実行されている市場apkであるかどうかを使用してコードをチェックする方法はありますか?または、マニフェストで設定できるもの
ありがとう区別市場のAPKとデバッグAPK
答えて
これは、Antがあなたを助けることができるところです。私は常にEclipseを使ってデバッグバージョンを作成し、リリースバージョンにAntを使用しています。主にそれぞれ別のGoogle Maps APIキーが必要なためです。私はmain.xmlの2つのバージョン、すなわちdebugmain.xmlとreleasemain.xmlを持っています。私はコピー-REL-メインに依存するように、リリースターゲットの依存関係を変更し
<target name="check-release_main">
<available file="${layout.dir}/releasemain.xml" property="releasemain.present" />
</target>
<target name="-copy-rel-main" depends="check-release_main" if="releasemain.present">
<echo message="Hit copy rel main" />
<copy file="${layout.dir}/releasemain.xml" tofile="${layout.dir}/main.xml" overwrite="true"/>
</target>
:
<target name="release" depends="clean, -copy-rel-main.......
私は、build.xmlの中で、リリースターゲットを変更して、2つの余分なターゲットを追加しましたそして、リリース対象の最後にバックデバッグバージョンにmain.xmlを上書きするmain.xmlのデバッグバージョンをコピーし
......
<echo message="Copying the debugmain.xml back to main.xml" />
<echo message="ALWAYS LEFT IN DEBUG FROR ECLIPSE" />
<copy file="${layout.dir}/debugmain.xml" tofile="${layout.dir}/main.xml" overwrite="true" />
</target>
あなたは、いくつかの特定のテキストや色を持っているあなたのバージョンを適応させることができデバイス上で実行されているバージョンを示すエレメントのいずれか
アプリに署名すると、デバッグモードで署名することができます。リリースする準備ができたら、署名を変更することができます。ここでは、あなたの文字列と一緒にあなたのXMLファイルにブール値を格納することができますSigning Your Application
のGoogleドキュメントからのより多くのです:
<resources>
<bool name="debug">true</bool>
</resources>
をしてからthis.getResources().getBoolean(R.debug)
を使用してコードでアクセス(this
アクティビティや他のですコンテキスト)。ほとんどの場合、true
のままにしてから、リリース用にfalse
に設定してください。
ありがとうMatrixFrog。これは私が今試みた方法です。しかし、リリースファイルの値を自動的に変更する設定ファイルなどがあります。 –
私はあなたがプログラムでそれを切り替えるビルドスクリプトを書くことができると思いますが、それ以外は私が知っているものではありません。あなたはそれがデバッグモードになっているときにDEBUG MODEという言葉がどこにでも現れるようにして、間違ったバージョンをリリースすることはまずありません。 – MatrixFrog
あなたのアプリの署名をプログラムでチェックすることもできます。私は、バージョン情報を記録する技術を使用します。
final byte[] officalkey = {-58, -42, -44, -106, 90, -88, -87, -88, -52, -124, 84, 117, 66, 79, -112, -111, -46, 86, -37, 109};
final byte[] officaldebugkey = {-99, -69, 45, 71, 114, -116, 82, 66, -99, -122, 50, -70, -56, -111, 98, -35, -65, 105, 82, 43};
Signature raw = c.getPackageManager().getPackageInfo(c.getPackageName(), PackageManager.GET_SIGNATURES).signatures[0];
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(raw.toByteArray()));
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] der = cert.getEncoded();
md.update(der);
byte[] digest = md.digest();
if (Arrays.equals(digest, officalkey))
apksign = c.getString(R.string.official_build);
else if (Arrays.equals(digest, officaldebugkey))
apksign = c.getString(R.string.debug_build);
else
apksign = c.getString(R.string.built_by,cert.getSubjectX500Principal().getName());
- 1. Android .apk市場にアップロード
- 2. APKファイルを区別する
- 3. デバッグとリリースapkの違い
- 4. Google Play APKとAndroid Studio APK(USBデバッグ)の動作が異なる
- 5. 市場外でのバージョンの確認ダウンロード.apkファイルなし
- 6. android apkファイルのサイズが市場で倍増する
- 7. 市場に出ていないAndroidにAPKアプリをインストールする
- 8. android apkの場所
- 9. 市場でデバイスとタブレットの両方のバージョンにapkを設定する方法
- 10. リリースAPKと同じキーでデバッグAPKを署名する方法 - Androidスタジオ
- 11. Google有料ストアアップロードエラー:APKの詳細を区別する
- 12. ネイティブライブラリを使用したAPKのデバッグ
- 13. APKから別のAPKにユーザーを転送する(Android)
- 14. ユーザーをAPKから別のAPKに移行する
- 15. APK
- 16. APK
- 17. Android apkは市場からもWebサーバーからもインストールされません
- 18. ベータapkが公式apkより古い場合、どのapkがベータ版のユーザーになるのですか?
- 19. Androidスタジオ3 apkと前回のapkとのコンフリクト
- 20. UISearchBarの住所、市区町村、市区町村を区別する
- 21. 縮小可能2は、minifyenableのときにリリースAPKでヌルを返しますが、デバッグではOKです。APK
- 22. ブロードキャストを1つのapk /パッケージから別のapk /パッケージに送信する
- 23. アンドロイド:二つの別々のAPK
- 24. 私のapkファイルの場所はエミュレータ
- 25. Gitlab:ビルド後のapkの場所
- 26. Playstore APKとSigned APKとは違いますか?
- 27. プレイストアに別のapkを公開する
- 28. Playストア:ベータテスト&プロダクションAPK別の証明書
- 29. Android app - 別のapkを統合する
- 30. デバッグAPKを見つけることができません
これは本当に質問に答えないと思います。 OPは、デバッグモードとプロダクションモードで異なるAPIを公開する必要があります。電話機は、両方のバージョンを同じように扱いますが、実際に署名されたバージョンからデバッグモードの署名付きバージョンに自動更新されることはありません。 – MatrixFrog
私はこのninjasenseとMatrixFrogがあなたの問題を正しく理解していることを知っています。 –