簡體   English   中英

如何在iOS應用中檢測Apple的審稿人?

[英]How to detect Apple's reviewers in iOS app?

在為我的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中當前的應用程序)?

我認為您不會找到檢測評論者活動的可靠方法。

是否可以在服務器上專門為您的新應用添加一個新的“ API”,在該API上可以發布其版本並獲得有關其是否已發布的答案(以及隨后應與哪個服務器通信)?

一旦應用獲得批准,您就可以通過此新API更改答案。 您甚至可以在NSUserDefaults中存儲一個“生產”答案,以便該應用一旦“知道”它正在生產中就不再檢查每次-大概您永遠都不會恢復到暫存狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM