我不想在我的应用商店版本中包含 hockey sdk。因此,我创建了两个目标和应用程序商店目标,我不包括 hockey sdk。在我的应用委托(delegate)中,我这样写。
#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 及其仅适用于应用商店版本的代码?
最佳答案
以这种方式排除一个库是不正确的。为了让编译器为您的代码工作,您需要始终导入 HockeySDK/HockeySDK.h。
我有两个建议可以满足您的要求:
解决方案 1:构建两个独立的应用程序,一个用于预发布测试,可以通过 HockeyApp 分发;另一个用于不导入 HockeyApp 的 Apple Store Release。
解决方案 2:保留一个集成了 HockeyApp 的构建。 HockeyApp SDK 应检查应用程序包中是否存在配置文件以检测 AppStore 环境,然后自动禁用 HockeyApp 的所有 beta 版功能。 (即默认情况下在 App Store 构建中运行时,iOS SDK 中的“应用内更新”(仅适用于 Beta 版和企业版)会自动禁用。您可以引用 here 了解更多信息。
关于ios - 为应用商店版本禁用曲棍球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542061/