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

标签 ios hockeyapp

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

相关文章:

ios - 为 iOS 应用程序存储外部数据库的最佳选择

android - 将 build(apk) 上传到 hockeyApp 的管道脚本

jenkins - 如何在 Jenkins 中上传更新日志作为 Hockey 应用程序的发行说明

ios - 从按下的按钮获取时间(按住)

带有标签栏和导航 Controller 的 iOS 应用

ios - 在 iOS Today 扩展中使用 Realm

iphone - 如何在每个切片的饼图中显示文本

iOS 应用程序编译但 XCode 8.1 beta 给出错误消息说 "Module ' HockeySDK' not found”

android - 无法通过他们的 API 将 APK 文件上传到曲棍球应用程序

ios - 在 iPad 上更新已从 developer.apple.com 上注册的设备中删除的应用程序