OGeek|极客世界-中国程序员成长平台

标题: ios - 仅在 DEBUG 配置中将 info.plist 中启用的 iTunes 文件共享设置为 YES [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 10:14
标题: ios - 仅在 DEBUG 配置中将 info.plist 中启用的 iTunes 文件共享设置为 YES

在 Xcode 中,我可以将 “应用程序支持 iTunes 文件共享”/UIFileSharingEnabled 设置设置为 YES/NO 基于我的应用程序的配置(调试与发布)?

我看到过关于使用用户定义的build设置来设置字符串 plist 项的字符串值的讨论(例如 $(MY_DEFINED_SETTING),但是你可以用这个 bool 设置来做到这一点吗?这不是完全一样的事情,但是只要在构建应用程序的发布版本时它被自动删除,那很好。但是如果我尝试在字段中输入 YESNO 之外的任何内容,它默认为 NO

我知道一个人可以根据配置拥有一个文件的两个不同版本,但如果不拥有大部分相同文件的两个副本会更简单。但如果这是最好的解决方案,那么任何有关实现该解决方案的提示都将不胜感激。

谢谢



Best Answer-推荐答案


尽管 Xcode 中的默认 plist 查看器不允许我在 UIFileSharingEnabled 的键值字段中输入字符串因为它需要一个 bool 值,所以我设法让它让我输入我想要的任何值,方法是将 plist 查看为源代码并按如下方式输入:

<key>UIFileSharingEnabled</key>
<string>${FILE_SHARING_ENABLED}</string>

相对于<true/><false/>因为 plist 编辑器将第二行默认为。

(其中 FILE_SHARING_ENABLED 是我的 user defined build setting 的名称,对于 Debug 设置为 YES,对于 Release 设置为 NO)

screenshot of project settings

注意我还尝试设置用户定义的build设置,在调试配置中它等于 UIFileSharingEnabled ,以及发布中的一些乱码值。然后我尝试将其用作键,但它没有被值替换,而是被视为字符串。

通过打印出 infoDictionary 的内容来仔细检查

NSLog(@"%@",[[NSBundle mainBundle] infoDictionary]);

还可以通过打开 iTunes 并在手机底部的应用程序页面上检查文件共享是否有效/无效。 (请记住在调试和发布配置中进行测试)

关于ios - 仅在 DEBUG 配置中将 info.plist 中启用的 iTunes 文件共享设置为 YES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858969/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4