0

我不想在我的应用商店版本中包含 hockey sdk。结果,我创建了两个目标,对于应用商店目标,我不包括 hockey 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”。我该如何排除 hockey sdk 及其代码仅适用于应用商店版本?

4

1 回答 1

2

以这种方式排除一个库是不正确的。为了让编译器为您的代码工作,您需要始终导入 HockeySDK/HockeySDK.h。

我有两个建议可以满足您的要求:

Solotion 1:构建两个独立的应用程序,一个用于预发布测试,可以通过 HockeyApp 分发;另一个用于 Apple Store Release 而不导入 HockeyApp。

解决方案 2:保持一个与 HockeyApp 集成的构建。HockeyApp SDK 应检查 App 包中是否存在配置文件以检测 AppStore 环境,然后自动禁用 HockeyApp 的所有仅测试版功能。(即默认情况下,在 App Store 构建中运行时,iOS SDK(仅适用于 Beta 版和企业版)中的“应用内更新”会自动禁用。您可以参考此处了解更多信息。

于 2016-04-11T08:22:55.057 回答