我想使用命令行直接编辑 project.pbxproj
(用于 CI 服务器脚本)
什么工具可以让我做到这一点?
我曾经使用PlistBuddy
编辑输出Info.plist
;然而,我真正想做的是编辑这个用户定义的字段,它在多个地方使用,我真的不想在每个 plist 位置寻找它
最佳答案
project.pbxproj
是一个 old-style ASCII property list文件,也是。所以你可以使用 /usr/libexec/PlistBuddy
来编辑它。
像这样打印一些用户定义键的值,
# Get the key A83311AA20DA4A80004B8C0E in your project.pbxproj
# LZD_NOTIFICATION_SERVICE_BUNDLE_ID is defined by me,
# Replace key paths with your own.
/usr/libexec/PlistBuddy -c 'print :objects:A83311AA20DA4A80004B8C0E:buildSettings:LZD_NOTIFICATION_SERVICE_BUNDLE_ID' LAAppAdapter.xcodeproj/project.pbxproj
像这样设置它的值,
/usr/libexec/PlistBuddy -c 'set :objects:A83311AA20DA4A80004B8C0E:buildSettings:LZD_NOTIFICATION_SERVICE_BUNDLE_ID com.dawnsong.notification-service' LAAppAdapter.xcodeproj/project.pbxproj
更新
PlistBuddy
会自动将 project.pbxproj
转换为 macOS Catalina(或某些更早版本)之后的 xml 格式的 plist 文件。最好将设置项移动到 xcconfig
文件中,因为 xcconfig
比 project.pbxproj
更小更简单使用perl
脚本编辑时不容易出错。
关于ios - 哪些工具支持编辑 project.pbxproj 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133576/