ios 如何从 plist 获取当前的临时配置文件名称(Dev、Dist、ETC)

Posted

技术标签:

【中文标题】ios 如何从 plist 获取当前的临时配置文件名称(Dev、Dist、ETC)【英文标题】:ios how to get current Provisional Profile name (Dev, Dist, ETC) from plist 【发布时间】:2016-08-05 15:15:07 【问题描述】:

我有这个项目,我们正在尝试根据您当前的临时配置文件确定要指向的不同环境。我注意到 plist 文件中有一些变量位于您的项目设置中,您可以从 plist 中读取它们,例如: $(PRODUCT_BUNDLE_IDENTIFIER) $(EXECUTABLE_NAME)

我可以对临时配置文件做同样的事情吗?我添加了 $(PROVISIONAL_PROFILE) 但它没有用。我不想阅读实际的个人资料。只需要知道当前选中的名字。

【问题讨论】:

您是如何将临时配置文件添加到 Plist 中的? 你是通过什么方式添加的? 这是我添加它的方式的一个完整猜测,因为我在那里看到了其他项目设置选项。我刚刚添加了一个名为临时配置文件的新行,其值为 $(PROVISIONAL_PROFILE)。我只是遵循其他选项的格式。显然这不起作用,但我只是好奇如何将名称(例如(Development,Dist)拉到 plist 中) 您知道它无法完成的原因或能够实现了解正在使用什么配置文件的方法吗?也许在构建过程中或其他什么? 首先它被称为Provisioning Profile,而不是Provisional Profile。其次,你有没有看过这个:***.com/questions/17584426/…? 【参考方案1】:

我不会关闭配置文件以适应不断变化的环境。配置配置文件经常更改(需要在注册新设备时生成新的开发配置文件,它们每 12 个月到期等)

我会在您的项目中设置与不同区域相对应的不同构建配置。然后,您可以在编译时使用预处理器指令更改区域设置。

一步一步:

    项目菜单 -> 编辑项目设置 -> 构建选项卡 选择所有配置 向下滚动到 GCC 4.0 - 预处理

    将以下内容添加到预编译头文件中未使用的预处理器宏:

    CONFIGURATION_$(CONFIGURATION)
    

假设您有 Debug、Adhoc 和 Release 配置,这将为每个配置生成预处理器宏。

CONFIGURATION_Debug
CONFIGURATION_Adhoc
CONFIGURATION_Release

然后,在您的代码中,您可以关闭这些配置来配置您的区域。

#if defined (CONFIGURATION_Debug) || defined (CONFIGURATION_Adhoc)
    NSLog( @"Warning message");
#endif

您可以在here 中获得有关此技术的更多详细信息。

如果您仍想检查配置文件(构建后,它将被复制到 Embedded.mobileprovision),您可以使用类似 this 的内容。我认为这会带来好处的唯一情况是,如果您在构建二进制文件后重新签名并希望重新签名的二进制文件更改区域。

【讨论】:

以上是关于ios 如何从 plist 获取当前的临时配置文件名称(Dev、Dist、ETC)的主要内容,如果未能解决你的问题,请参考以下文章

ios如何获取位置权限

如何获取 INFOPLIST_FILE 名称 iOS

iOS开发,如何替换plist这个数组下数据

ios 8 添加临时分发

iOS 中代码获取当前版本号

Ant 脚本 - 如何从 plist 文件中打印一些文本并将其分配给属性