检测iOS应用程序的AppStore安装

时间:2013-04-18 16:00:43

标签: iphone ios objective-c app-store detection

我需要在我的应用中实现自定义日志记录。

要做到这一点,我需要检测是否已从应用商店安装当前版本的应用程序,或者是从xcode运行还是TestFlight版本。

根据安装源的不同,应用程序中有不同的内容?

我不想在开发环境中有不同的东西。

2 个答案:

答案 0 :(得分:11)

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

NSString *provisionPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"];

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

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

因为XCode会自动在Debug配置中设置带有“DEBUG”标志的应用程序,而不是在Release(默认情况下用于AdHoc版本)中设置,您可能最好禁用在应用商店版本中的日志记录和根据DEBUG宏标志确定日志记录级别。

答案 1 :(得分:0)

您可以使用定义宏的构建配置来通知您已为testflight构建。

例如,我们有调试版本设置宏USE_TESTFLIGHT,在我们的代码中我们做:

#ifdef USE_TESTFLIGHT
//do something test-flight specific
[TestFlight takeOff:kTestFlightAppToken];
#endif

您可以创建新的构建配置,根据您编译/分发应用程序的方式设置不同的宏,并使用ifdef根据这些来执行不同的任务。