首页 > 解决方案 > 如何用 info.plist 文件中的用户定义设置替换系统定义设置?

问题描述

里面info.plist有系统定义的设置:查看基于控制器的状态栏外观

在此处输入图像描述

这是一个灰色的布尔选项。

但是在我的项目中,我使用了很多目标,并且需要为每个目标定义这个设置。所以,我这样定义User Defined Setting

在此处输入图像描述

但是当我尝试用它替换ON$(CUSTOM_STATUS_BAR_APPEARANCE_ENABLED)它不起作用,因为类型是布尔值。如果我强制更改 plist 文件中的该属性,如下所示:

<key>UIViewControllerBasedStatusBarAppearance</key>
<string>$(CUSTOM_STATUS_BAR_APPEARANCE_ENABLED)</string>

它仍然不起作用。为什么?在不创建单独的 plist的情况下如何做到这一点?

标签: xcodeinfo-plist

解决方案


您可以尝试使用自定义运行脚本 - 在构建时脚本可以更改 Info.plist 中 bool 的值 -> 在您的条件下它应该是这样的:

INFOPLIST="${PRODUCT_SETTINGS_PATH}"
/usr/libexec/PlistBuddy -c "Set :UIViewControllerBasedStatusBarAppearance NO" "${INFOPLIST}"

希望有帮助!


推荐阅读