【问题标题】:Setting a boolean property in Info.plist from a User Defined Setting从用户定义的设置中设置 Info.plist 中的布尔属性
【发布时间】:2010-12-22 09:00:09
【问题描述】:

通过用户定义的设置在 Info.plist 文件中设置属性很简单,您只需使用 ${YOUR_SETTING_NAME} 作为值。但是,是否可以为布尔属性执行此操作?布尔值的 plist 文件中的结构是:

<key>NSAppleScriptEnabled</key>
<false/>

这里不清楚如何使用用户定义的设置。

【问题讨论】:

    标签: iphone xcode macos


    【解决方案1】:

    我不确定如何执行您的要求,但我很确定对于这个特定的键 (NSAppleScriptEnabled),您还可以使用字符串“YES”和“NO”,它会起作用。

    【讨论】:

    • 如果您将 Info.plist 中的变量(设置)类型设置为字符串(不是布尔值),然后使用“是”和“否”,它会起作用。谢谢。
    • Xcode 不允许您更改内置键的变量类型。例如,我正在尝试为开发版本关闭 App Transport Security,以便可以将 SSL 代理与 Charles 代理一起使用。 “允许任意负载”键不能从布尔值更改。这种情况下怎么办?
    • 我对 UIFileSharingEnabled 键有同样的问题。虽然 Xcode 允许我将密钥类型更改为 String 并且它在 Xcode 中构建和运行良好,但在将应用程序提交到 AppStore 时出现错误。
    • 它不适用于需要布尔值的 App Transport Security 键,请查看此答案:stackoverflow.com/questions/32390228/…
    • 有趣的是,每个人都在关注共享的特定关键 OP,这只是一个示例。他正在谈论为自定义的用户定义的环境变量设置一个布尔值。不幸的是,你不能为这些设置布尔值,你需要使用一个字符串,然后如果你愿意,稍后再转换为布尔值。
    【解决方案2】:

    标签中包含布尔值的 plist 文件不再有效。

    此解决方案有效:

    向您的目标添加一个新的运行脚本构建阶段。放入:

    if [ ${CONFIGURATION} = "Release" ]; then
    /usr/libexec/PlistBuddy -c "Set :UIFileSharingEnabled NO" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
    fi
    

    所以在我的配置中,我在我的 plist 中将 UIFileSharingEnabled 设置为 YES 作为默认值,当我为 Release 构建时,会发生上述步骤并将其设置为 false。

    【讨论】:

    • this answer 和上面的 cmets 中的更多详细信息。这会修改应用程序包中的 plist,因此它不会弄脏您的存储库。
    【解决方案3】:

    “用户定义设置”是什么意思...

    如果您谈论的用户是您(换句话说,应用程序的开发人员),那么您可以将任何您想要的键放在那里,就像 Xcode 项目中的任何其他 plist 一样。

    如果您所说的用户是您应用的最终用户,请不要尝试将他们的设置保存在您的 Info.plist 中。它是应用程序的一部分。虽然有时应用程序可以在 Mac 上更改自己的信息 plist,但通常不会,具体取决于应用程序的安装方式。在 iPhone 上这是不可能的,因为该应用程序是只读的。在任何一种情况下,更改 Info.plist 都会使您所做的任何应用签名无效。

    如果您想更改最终用户设置,请使用 NSUserDefaults。

    【讨论】:

    • 嗨,路易斯。我相信他说的是 Mac 上用户定义的 XCode Build 设置。
    • 见上面接受的答案。我在项目中有多个目标共享一个 Info.plist。我在每个目标上使用用户定义的设置来配置 Info.plist 中的值。其中一个是布尔值,尚不清楚(或不清楚)如何替换它们。
    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 2017-08-30
    相关资源
    最近更新 更多