【问题标题】:Set iTunes File Sharing enabled in info.plist to YES only in DEBUG configuration仅在 DEBUG 配置中将 info.plist 中启用的 iTunes 文件共享设置为 YES
【发布时间】:2016-01-18 15:59:06
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: ios xcode debugging configuration info.plist


    【解决方案1】:

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

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

    相对于&lt;true/&gt;&lt;false/&gt;,plist 编辑器默认为第二行。

    (其中FILE_SHARING_ENABLED 是我的user defined build setting 的名称,它设置为YES 表示调试,NO 表示发布)

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

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

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

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

    【讨论】:

    • 这似乎不适用于NSAllowsArbitraryLoads :(
    • 你在 NSApptTansportSecurity 字典里有那个吗?
    • 是的,只要我写了&lt;true/&gt;,它就可以工作,如果我把它改成&lt;string&gt;${MY_USER_DEFINED_SETTING}&lt;/string&gt;,它会给我ATS错误。 This user 也有同样的问题。不过,我发现this solution 更简单、更安全。
    • 我在使用方法上传时从 appstoreconnect 收到错误:ERROR ITMS-90039: "Type Mismatch. The value for the Info.plist key UIFileSharingEnabled is not of the required type for that key... 似乎您现在无法使用自定义标志上传。
    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多