我想增加 xcode 项目中的用户定义变量。是否有任何脚本来增加用户定义的变量。
我有一个用户定义的变量"PATCH"。在 info.plist 中,我将此变量分配给 Bundle 版本。
我希望这个用户定义的变量在我使用不同的配置归档项目时自动递增。
我附上了截图,希望它能帮助你轻松理解我的问题:
Xcode 截图:
列表截图:
我也通过这些链接:
但是这些问题/链接不符合我的要求。我只需要通过脚本访问用户定义的变量。如果有人有解决方案,请帮助。任何帮助表示赞赏。
我想增加 xcode 项目中的用户定义变量。是否有任何脚本来增加用户定义的变量。
我有一个用户定义的变量"PATCH"。在 info.plist 中,我将此变量分配给 Bundle 版本。
我希望这个用户定义的变量在我使用不同的配置归档项目时自动递增。
我附上了截图,希望它能帮助你轻松理解我的问题:
Xcode 截图:
列表截图:
我也通过这些链接:
但是这些问题/链接不符合我的要求。我只需要通过脚本访问用户定义的变量。如果有人有解决方案,请帮助。任何帮助表示赞赏。
谢谢@Philippe,我制作了一个 bash 脚本:
# - RELEASE EBF737881ECAECD400F5A5DF
# - DEBUG EBF737871ECAECD400F5A5DF
currentVersion=$(/usr/libexec/PlistBuddy -c "print :objects:EBF737871ECAECD400F5A5DF:buildSettings:FC_VERSION" ../FormaCar.xcodeproj/project.pbxproj)
newVersion="${currentVersion%.*}.$((${currentVersion##*.}+1))"
/usr/libexec/PlistBuddy -c "set :objects:EBF737871ECAECD400F5A5DF:buildSettings:FC_VERSION $newVersion" ../FormaCar.xcodeproj/project.pbxproj
/usr/libexec/PlistBuddy -c "set :objects:EBF737881ECAECD400F5A5DF:buildSettings:FC_VERSION $newVersion" ../FormaCar.xcodeproj/project.pbxproj
echo "Old version: $currentVersion. Version bumped to: $newVersion"
其中FC_VERSION
是用户定义的参数,并以x.x.x
格式保存版本。
并且在Fastfile
lane :bumpMinorVersionNumber do
sh "./bumpMinorVersionNumber.sh"
end
此脚本会影响 FC_VERSION 设置的次要版本并通过 fastlane 工作
更新:
不幸的是,PlistBuddy 将 .pbxproj格式转换为 xml 格式的 plist,因此源代码控制获取堆栈并且信息丢失了。所以我不能使用这个解决方案(
感谢https://stackoverflow.com/a/56179405/5790492和https://nshipster.com/xcconfig/
我已经创建了xcconfig文件,将其添加到信息选项卡中的项目中。为 fastlane 添加了此插件以与 xcconfig 一起使用。现在车道看起来像:
currentBuildNumber = get_xcconfig_value(path: 'fastlane/VersionsConfig.xcconfig',
name: 'FC_BUILD')
newBuildNumber = currentBuildNumber.to_i + 1
update_xcconfig_value(path: 'fastlane/VersionsConfig.xcconfig',
name: 'FC_BUILD',
value: newBuildNumber.to_s)
UI.important("Old build number: #{currentBuildNumber}. Build number bumped to: #{newBuildNumber}")
您需要更新project.pbxproj
*.xcodeproj/ 中的文件。
例如,如果您需要更新Debug
PATCH 的内部版本号。首先找到构建的标识符project.pbxproj
,Debug
你应该得到类似 13B07F941A680F5B00A75B9A 的东西。然后你可以做
/usr/libexec/PlistBuddy -c "print :objects:13B07F941A680F5B00A75B9A:buildSettings:PATCH" project.pbxproj
# which should give 90
然后您可以使用(首先制作 project.pbxproj 的备份副本)对其进行更新:
/usr/libexec/PlistBuddy -c "set :objects:13B07F941A680F5B00A75B9A:buildSettings:PATCH 91" project.pbxproj
再次验证:
/usr/libexec/PlistBuddy -c "print :objects:13B07F941A680F5B00A75B9A:buildSettings:PATCH" project.pbxproj
# which should give 91
还要检查xcode。