检测iOS应用程序的AppStore安装

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

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

应用程序中有不同的东西,具体取决于安装源?

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

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

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

如果不存在,您将进入app store版本。

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

因为XCode在Debug配置中自动设置了带有“DEBUG”标志的应用程序,而不是在Release(默认情况下用于AdHoc版本)中设置的,所以最好禁用在app store版本中登录并确定级别基于DEBUG宏标志的日志记录。

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

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

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

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