iPhone - 如何在运行时检测到设备正在运行我的应用程序的临时构建

Posted

技术标签:

【中文标题】iPhone - 如何在运行时检测到设备正在运行我的应用程序的临时构建【英文标题】:iPhone - How can I detect a device is running an adhoc build of my app at runtime 【发布时间】:2012-05-22 10:14:53 【问题描述】:

与应用商店部署相比,我想在运行我的应用的临时部署时使用不同的 API。这可以在运行时发现吗? 我知道我可以在从 xcode 运行时使用#if TARGET_IPHONE_SIMULATOR 和#if DEBUG,但我也希望检测到临时部署。有什么想法吗?

【问题讨论】:

【参考方案1】:

检查“../iTunesMetadata.plist”是否存在于您的 NSDocumentDirectory 中。

此文件仅存在于应用商店构建中 - 它位于应用程序的根目录中,因此可以安全地提交应用商店。

【讨论】:

它似乎也存在于临时构建中。我正在使用 TestFlight;或许 TestFlight 添加元数据以便在下载应用程序时获得漂亮的图标。【参考方案2】:

在构建设置中为您的 AdHoc 配置添加预处理器宏。 #if ADHOC // 做某事

【讨论】:

这会起作用,但它不符合在运行时执行它的要求:) @Brett 我不知道是否可以通过编程方式查找应用程序是否已使用 AdHoc 或 Debug 证书进行签名。这可能有效 - 如果您可以阅读 App 捆绑包中的 embedded.mobileprovision 并查找您的配置文件名称。 这是正确的答案。如果 ADHOC 定义并在运行时检测变量值,只需更改变量即可。

以上是关于iPhone - 如何在运行时检测到设备正在运行我的应用程序的临时构建的主要内容,如果未能解决你的问题,请参考以下文章

如何检测我的 iPhone 应用程序正在 iPad 上运行

以编程方式检测应用程序是不是正在设备或模拟器上运行

iPhone 模拟器 - 如何检测应用程序何时在模拟器上运行(因此可以设置测试数据)?

如何在应用程序运行之间本地检测用户的 iPhone 时钟提前?

检测到堆损坏 - 仅限 iPhone 5S

NSLog 在 iphone 模拟器上运行时输出到控制台,但在设备上运行时不输出