如何检测AppStore中是否安装了应用程序?

Yuc*_*ram 2 iphone objective-c app-store ios

我的应用程序可以从Appstore安装,也可以通过Enterprise分发安装.
代码完全相同.
那么如果从Appstore安装Application,我怎么能以编程方式区别?

l0g*_*g3r 6

您可以通过从应用程序包中读取embedded.mobileprovision文件来获得部分路径:

NSString *provisionPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"];
if (![[NSFileManager defaultManager] fileExistsAtPath:provisionPath]) {
    // Appstore version
}
Run Code Online (Sandbox Code Playgroud)

如果不存在,您将进入应用商店版本.

如果它确实存在,您需要找出调试和临时供应配置文件之间的一些差异,并寻找它以确定您所在的构建.

关于/ private/var/mobile/Containers/Bundle/Application/
这是一种安全的方法,您可以检查[[NSBundle mainBundle] resourcePath],
这是从哪里加载图像和资源的路径,
它以/ private/var/mobile/Containers/Bundle /开头应用/...

因此,阅读/检查您的捆绑文件,不会导致拒绝.