检查iOS应用是否在应用商店中存在

msk*_*msk 15 itunesconnect itunes itunes-sdk ios ios5

是否有可能以某种方式在iOS应用程序中编码如下?

if(app is live in app store)
{
   //Do something
}
else
{
  //Do other thing
}
Run Code Online (Sandbox Code Playgroud)

我想避免我们的QE/Dev团队使用app进行测试的情况.有没有办法可以检测应用程序代码的签名方式(Developer/Adhoc/Distribution)?即使有可能,也不会消除Apple在审核时使用我们的应用进行测试的情况.在我们的应用程序在App Store上线之前,我们记录了Apple的许多内容下载.

Ste*_*her 9

您可以通过检查是否缺少embedded.mobileprovision来确定您的应用是否通过应用商店分发.此文件仅包含在adhoc版本中.

像这样:

if ([[NSBundle mainBundle] pathForResource:@"embedded"
                                    ofType:@"mobileprovision"]) {
  // not from app store (Apple's reviewers seem to hit this path)
} else {
  // from app store
}
Run Code Online (Sandbox Code Playgroud)

这项技术来自HockeyApp SDK.我个人在商店中使用这种技术的应用程序,当然有许多分发的应用程序,包括HockeyApp SDK.

基于我在"从应用程序商店"路径中在我的应用程序的特定版本中意外发布的即时崩溃,Apple的团队将遵循"不从应用程序商店"路径.让我的损失成为你的收益.:)

  • 好吧,我现在有非常强大的(虽然不是决定性的)证据表明Apple的App Review团队将遵循此代码中的"不是来自app store"路径. (2认同)