为应用商店版本禁用曲棍球

Disable hockey for app store version

我不想在我的应用商店版本中包含 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) {

}

问题是当我 运行 或归档应用商店目标时,它说 "Use of undeclared identifier BITHockeyManager"。我该如何排除 hockey sdk 及其仅适用于应用商店版本的代码?

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

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

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

解决方案 2:保留一个集成了 HockeyApp 的构建。 HockeyApp SDK 应检查应用程序包中是否存在配置文件以检测 AppStore 环境,然后自动禁用 HockeyApp 的所有 beta 版功能。 (即 iOS SDK 中的 "In-App-Updates"(仅适用于 Beta 和企业版)默认情况下在 App Store 构建 运行 时自动禁用。您可以参考 here 了解更多信息.