0

たとえば、モバイル ソリューションとそのソリューションのサービスを並行して開発しているため、リリース前に特定の機能の有用性を検証できます。このシナリオでは、署名済みの Android パッケージを使用しますが、これは、サービス エンドポイントを手動で更新することが望ましくないクライアント アプリケーションに適用できます。

したがって、開発中、APK は を指しhttps://rest-dev.myapp.com/apiます。現在、 を指す完全に新しい APK を構築する必要がhttps://rest-qa.myapp.com/apiありますhttps://rest.myapp.com/api

パッケージ (myapp-qa.apk) をテストしていて、それが顧客にリリースされるアプリ (myapp-release.apk) と少しずつ一致していない場合、大きなリスクを冒していることになります (内部的にはそれを知っていても)。 「すべき」は、再コンパイルしてパッケージ化しただけの同じコードである必要があります)。

この問題は以前にどのように解決されましたか?

編集これまでのところ興味深いソリューションです。顧客がサービスをホストできるという制約を追加し、コンパイル時にエンドポイントの URL がわからない場合はどうなるでしょうか? :-)

4

2 に答える 2

1

必要に応じて、これを行うにはいくつかの方法があります。1つの方法は、BuildConfig.DEBUG変数と.RELEASE変数を確認し、それらに基づいてプログラムでエンドポイントを選択することです。もう1つの方法は、アプリにセレクターを提供して、設定に応じて任意のエンドポイントに到達できるようにすることです(共有設定またはファイルの有無は、これを行うための良い方法です)。

于 2013-03-18T18:01:37.540 に答える
1

エンド ユーザーにエンド ポイントが表示されることを気にしない場合は、単純に共有設定 (またはデータを保存するその他の方法) を使用できます。前回のアプリでこの手法を使用しました。

終点にはaPreferenceActivityと a を組み合わせて使用​​します。EditTextPreferenceデフォルト値を本番エンドポイントに設定します。次に、テストするときに、値をテストのエンドポイントに変更します。

実際に接続する必要がある場合は、共有設定値 (デフォルトは本番環境) を読み取り、それを使用します。

于 2013-03-18T18:00:25.320 に答える