如何自动增加和从代码读取Xcode项目的版本号
2023-09-14 08:56:50 时间
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
buildNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}") shortVersion=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}") echo $buildNumber echo $shortVersion #if [ $buildNumber -ge 2 ];then if [ $buildNumber -gt 2 ];then shortVersion=`echo "$shortVersion+0.1"|bc|awk {printf "%.1f",$0}` buildNumber=1 buildNumber=$(($buildNumber+1)) #date_v=`date +"%m%d"` #buildNumber=`echo "scale=5;$buildNumber+0.01"|bc` #buildNumber="$shortVersion.$buildNumber" /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}" /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $shortVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}"
代码首先显示原来的版本,然后分别更新Version号和Builder号,最后将新的版本号写入项目中.
我们通常还需要在程序代码中读取当前项目中的版本号,也很简单,代码如下:
-(NSString*)getAppVersion{ NSString *ver = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; NSString *build = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; return [NSString stringWithFormat:@"Version %@.%@",ver,build]; }
注意以上代码只能读取值,但不能写入值,至少本猫没有试验成功,如果哪位童鞋知道如何通过代码写入版本号,请参与后面的讨论.
有了版本自动更新机制和读取机制,我们就可以在App的启动画面中轻而易举的显示当前版本号了:
在 Xcode 项目中使用 swift package fetch 本文讲的是在 Xcode 项目中使用 swift package fetch,到目前为止,Cocoa with Love 的 git 仓库都使用“git subtrees”来管理相关依赖,所有的依赖都被拷贝并静态存放于依赖方目录下。我希望能找到一种更动态地依赖管理方式来代替现有的方案
Xcode打包分布准备 对于新手来说,如果是混合开发或者纯RN应用开发好后,想打包上线了,却发现官方文档没有找到详细打包的流程文档,对于完全没有经验的新手真的不太好友。