【发布时间】:2016-12-28 13:26:17
【问题描述】:
我有一个适用于 iPhone 的应用程序,并且总是向客户端发送测试版本。同时我有这个应用程序的 App Store 版本。客户希望在设备上同时拥有 beta 和稳定的应用版本。是否可以不创建具有另一个捆绑 ID 的新应用程序?
【问题讨论】:
标签: ios app-store twitter-fabric
我有一个适用于 iPhone 的应用程序,并且总是向客户端发送测试版本。同时我有这个应用程序的 App Store 版本。客户希望在设备上同时拥有 beta 和稳定的应用版本。是否可以不创建具有另一个捆绑 ID 的新应用程序?
【问题讨论】:
标签: ios app-store twitter-fabric
您只能在设备上使用具有相同 BundleID 的应用。 如果您想要应用商店版本和测试版本,则需要为此测试版本创建一个新的 BundleID。
【讨论】:
我怀疑您可以为调试和构建的应用程序使用单独的 ID,并使用多个方案在它们之间共享代码库。
看看这篇文章会有所帮助 http://nilsou.com/blog/2013/07/29/how-to-have-two-versions-of-the-same-app-on-your-device/
--编辑--
刚刚注意到由于推送通知,您特别不想要不同的捆绑包。我们通过让我们的后端服务知道我们正在使用哪个应用程序,并根据他们使用的应用程序来定位不同的服务来解决这个问题。您可以通过像这样定义预处理器宏来做到这一点:Add preprocessor macro to a target in xcode 6
...然后在您调用后端服务以像这样注册您的设备之前引用它们...
#ifdef ENTERPRISE
env = GLOBAL_PushNotificationEnvironmentEnt;
#endif
#ifdef DEBUG
// In debug mode, the environment should be set to Development
env = GLOBAL_PushNotificationEnvironmentDev;
#endif
if (notificationsOnBool) {
[service RegisterPushNotificationTarget:self
TargetType:GLOBAL_PushNotificationTargetType
TargetToken:deviceID
DeviceName:[UIDevice currentDevice].name
EnvironmentType:env];
}
...然后在你的后端代码中你做这样的事情(伪代码)
if (device.env == Fabric) {
sendNotification(fabricService);
} else {
sendNotification(prodService);
}
【讨论】: