首页 文章

如何在iOS应用中检测Apple的评论者?

提问于
浏览
0

我在为iOS应用程序提交更新时遇到了一个有趣的问题 . 我有2个API版本: 生产环境 和登台 . TestFlight构建使用登台服务器,App Store通过此检查构建使用 生产环境 :

if ([[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) {
    // TestFlight, use staging API
} else {
    // App Store, use production API
}

这非常有效 . 我们将使用下一版本的API测试下一版本的应用程序,同时保持已发布的版本与 生产环境 API一起使用 .

问题是,当我们将应用程序提交给Apple进行审核时,他们的审阅者现在拥有需要新API的新代码,但上面的检查将它们指向 生产环境 API . 这导致了崩溃,因此我们被拒绝了 .

我知道我们应该进行适当的API版本控制,以便我们可以同时在 生产环境 中运行新旧API,但遗憾的是我们还没有进入那个阶段 . 我们错误地认为Apple评论员会采用第一个代码路径(使用登台服务器),我们会在获得批准后手动发布应用程序,并将新API部署到 生产环境 环境,因此一切都会正常运行 .

所以,最后的问题 . 在代码中是否有任何方法可以检测应用程序是否由Apple的审阅者运行,让它使用登台服务器吗?或者我们是否已经搞砸了并且需要将新的API投入 生产环境 (从而破坏了当前App Store中的应用程序)?

1 回答

  • 1

    我不相信您会找到一种可靠的方法来检测审阅者活动 .

    是否可以在您的服务器上专门为您的新应用程序添加一个新的“API”,它可以发布其版本并获得是否已发布的答案(以及随后应该与哪个服务器通信)?

    应用程序获得批准后,您可以更改此新API的答案 . 您甚至可以在NSUserDefaults中存储“ 生产环境 ”答案,这样一旦应用程序“知道”它正在 生产环境 中,应用程序就不再检查每个时间 - 大概您永远不会恢复到分段 .

相关问题