私のアプリにカスタムロギングを実装する必要があります。iOSアプリのAppStoreインストールを検出する
これを行うには、アプリケーションの現在のバージョンがアプリケーションストアからインストールされているか、xcodeから実行されているか、TestFlightバージョンであるかどうかを検出する必要があります。
インストールソースによってアプリには何か違いがありますか?
私は開発環境で何か違うことを望んでいません。
私のアプリにカスタムロギングを実装する必要があります。iOSアプリのAppStoreインストールを検出する
これを行うには、アプリケーションの現在のバージョンがアプリケーションストアからインストールされているか、xcodeから実行されているか、TestFlightバージョンであるかどうかを検出する必要があります。
インストールソースによってアプリには何か違いがありますか?
私は開発環境で何か違うことを望んでいません。
あなたは、アプリケーションバンドルからembedded.mobileprovisionファイルを読み込むことにより、そこに道の一部を取得することができます:
NSString *provisionPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"];
それが存在しない場合は、アプリストアのビルドです。
それが存在しない場合、あなたはあなたのデバッグおよびアドホックプロビジョニングプロファイルの間にいくつかの違いを把握し、あなたがしている構築するかを決定するために、そのために調べる必要があります。
Xcodeは自動的に使用してアプリケーションを設定しているのでリリースで設定されていないDebugコンフィグレーションの "DEBUG"フラグ(AdHocビルドでデフォルトで使用されています)を使用すると、App Storeビルドでのロギングを無効にし、DEBUGマクロフラグ。
マクロを定義するビルド構成を使用して、testflight用に構築したことを伝えることができます。
例えば、我々はマクロUSE_TESTFLIGHTをデバッグを設定してビルドしている、と私たちのコードで私たちが行います
#ifdef USE_TESTFLIGHT
//do something test-flight specific
[TestFlight takeOff:kTestFlightAppToken];
#endif
あなたはその設定アプリを配布/コンパイルしているかに応じて、異なるマクロを新しいビルドコンフィグを作成することができますifdefを使用してそれらに基づいて異なるタスクを実行することができます。
これは動作しますが、異なるビルド構成は「私は開発環境で異なるものを持っていたくありません」という要件を満たしていません。 –
合意。この提案は、いくつかの開発ニーズにとって有益であるが、質問されたように質問に答えない。 –
これはすばらしく見えますが、アプリをリリースする前にテストする方法が見つかると思いますか?たとえば、リリース時に動作するように、_Release Scheme_でビルドして実行します。 – bago
コンパイル、リリースまたはアドホックのすべてのアプリケーションには、常にembedded.mobileprovisionが含まれます。このファイルがないのはApp Storeの最終ビルドだけです。あなたは、あなたのデバイスからApp Storeアプリケーションをダウンロードし、アプリケーションバンドルを調べることで、それが存在しないことを確認することができます...私はこのテクニックを思い付いていないことに注意してください、HockeyAppはこれを見つけるためのフルクレジットを取得します私はそれについて学んだ)。 –
Nice tip :) +1 Tks – TonyMkenu