仅在 DEBUG 配置中将 info.plist 中启用的 iTunes 文件共享设置为 YES

Set iTunes File Sharing enabled in info.plist to YES only in DEBUG configuration

在 Xcode 中,我可以根据我应用程序的配置(调试与发布)将 "Application supports iTunes file sharing" / UIFileSharingEnabled 设置设置为 YES/NO

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

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

谢谢

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

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

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

(其中 FILE_SHARING_ENABLED 是我的 user defined build setting 的名称,调试设置为 YESNO 发布)

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

通过打印出 infoDictionary 的内容进行双重检查

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

同时打开 iTunes 并检查文件共享 works/doesn 是否无法在底部的 phone 应用程序页面上运行。 (记得在调试和发布配置中进行测试)