【问题标题】:Is it possible to have Fabric and AppStore builds at the same time?是否可以同时构建 Fabric 和 AppStore?
【发布时间】:2016-12-28 13:26:17
【问题描述】:

我有一个适用于 iPhone 的应用程序,并且总是向客户端发送测试版本。同时我有这个应用程序的 App Store 版本。客户希望在设备上同时拥有 beta 和稳定的应用版本。是否可以不创建具有另一个捆绑 ID 的新应用程序?

【问题讨论】:

    标签: ios app-store twitter-fabric


    【解决方案1】:

    您只能在设备上使用具有相同 BundleID 的应用。 如果您想要应用商店版本和测试版本,则需要为此测试版本创建一个新的 BundleID。

    【讨论】:

    • 这真的很糟糕 :( 因为我在远程服务器上启用了一个 APNS,并与我的捆绑包 ID 连接 :(
    • 抱歉,这是您唯一的选择。您可能希望您的后端接受某种带标签的版本,这样您就可以拥有多个 APNS 配置。
    【解决方案2】:

    我怀疑您可以为调试和构建的应用程序使用单独的 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);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-30
      • 2011-01-10
      • 2010-11-03
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多