0

アプリ ストア バージョンにホッケー SDK を含めたくありません。その結果、2 つのターゲットを作成し、アプリ ストア ターゲットにはホッケー SDK を含めません。アプリ デリゲートでは、次のように記述します。

#ifdef DEBUG
#import <HockeySDK/HockeySDK.h>
#elif RELEASE
#import <HockeySDK/HockeySDK.h>
#elif DEVHOCKEY
#import <HockeySDK/HockeySDK.h>
#endif
if (ENV == ENV_DEV || ENV == ENV_PROD_WITH_DEV_HOCKEY || ENV == ENV_PROD) {
    [[BITHockeyManager sharedHockeyManager] configureWithIdentifier:HOCKEY_KEY];
    [[BITHockeyManager sharedHockeyManager] startManager];
    [[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation];
    [[BITHockeyManager sharedHockeyManager].feedbackManager setFeedbackObservationMode:BITFeedbackObservationModeThreeFingerTap];
}
else if (ENV == ENV_APPSTORE) {

}

問題は、アプリ ストア ターゲットに対して実行またはアーカイブすると、「宣言されていない識別子 BITHockeyManager の使用」と表示されることです。ホッケー SDK とそのコードをアプリ ストア バージョンのみで除外するにはどうすればよいですか?

4

1 に答える 1

2

この方法でライブラリを除外するのは正しくありません。コードで Complier を機能させるには、常に HockeySDK/HockeySDK.h をインポートする必要があります。

お客様の要件を満たすために、次の 2 つの提案があります。

解決策 1: 2 つの別個のアプリをビルドします。1 つは HockeyApp 経由で配布できるプレリリース テスト用です。もう 1 つは HockeyApp をインポートせずに Apple Store リリース用です。

解決策 2: HockeyApp を統合した 1 つのビルドを保持します。HockeyApp SDK は、App バンドル内のプロビジョニング プロファイルの存在を確認して AppStore 環境を検出し、HockeyApp のすべてのベータ版のみの機能を自動的に無効にする必要があります。(つまり、iOS SDK の「In-App-Updates」(ベータ版およびエンタープライズ版のみ) は、App Store ビルドで実行すると、デフォルトで自動的に無効になります。詳細については、こちらを参照してください。

于 2016-04-11T08:22:55.057 に答える