iOS xcode jenkins 测试打包显示自增版本号及时间戳

简介:

测试部门要求打包能显示自增版本号或时间戳,以区别打包版本在测试手中的不同,好定位指定打包版本的问题。


在Xcode工程里选择对应的Target,在Build Phases里点击“New Run Script Phases”: 在下面的窗口中写入类似于如下脚本:


说明:workspace_dir 是workspace项目,project_dir是project项目。

1
2
3
4
5
6
7
buildNumber=$( /usr/libexec/PlistBuddy  -c  "Print :CFBundleVersion"  "${WORKSPACE_DIR}/${INFOPLIST_FILE}" )  
shortVersion=$( /usr/libexec/PlistBuddy  -c  "Print :CFBundleShortVersionString"  "${WORKSPACE_DIR}/${INFOPLIST_FILE}" )  
   
buildNumber=` date  + "%m%d" `  
buildNumber= "$shortVersion.$buildNumber"  
   
/usr/libexec/PlistBuddy  -c  "Set :CFBundleVersion $buildNumber"  "${WORKSPACE_DIR}/${INFOPLIST_FILE}"

版本号加时间戳自增值。

这种做法对原应用介入太深,修改了系统plist的CFBundleVersion值。为了不影响原应用代码,在info.plist文件新增自定义新值CFBundelInfoDictionaryVersion,对其操作。

1
2
3
buildNumber=` date  + "%Y%m%d%H%M" `
 
/usr/libexec/PlistBuddy  -c  "Set :CFBundleInfoDictionaryVersion $buildNumber"  "${WORKSPACE_DIR}/${INFOPLIST_FILE}"

在版本显示部分代码

1
2
3
4
         cell1.mainString = @ "内部版本" ;
         NSString * version1 = [NSString stringWithFormat:@ "%@" ,[[[NSBundle mainBundle] infoDictionary] objectForKey:@ "CFBundleInfoDictionaryVersion" ]];
         cell1.detailString = version1;
         return  cell1;

说明:date +"%Y%m%d%H%M%S"  年月日时分秒  格式。

plist文件路径写法,涉及xcode全局变量定义。

$(SRCROOT)/YouPinHui/SupportFile/Info.plist

${WORKSPACE_DIR}/${INFOPLIST_FILE}

如果仅仅只想在Release(如Archive等)的时候更新Build,可以加入判断:

  1. if [ "${CONFIGURATION}" = "Release" ]; then  

  2.   

  3. fi

















本文转自ljianbing51CTO博客,原文链接: http://blog.51cto.com/ljianbing/1745208,如需转载请自行联系原作者






相关文章
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
1322 3
|
iOS开发
技术好文:xcode动态图,ios实现动态图,iosgif,暂停和继续播放
技术好文:xcode动态图,ios实现动态图,iosgif,暂停和继续播放
391 24
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
2108 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
2934 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
存储 定位技术 iOS开发
XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
457 23
|
jenkins Java 持续交付
Jenkins打包,发布,部署
Jenkins打包,发布,部署
1275 0
|
jenkins 持续交付 开发工具
蓝易云 - 基于Jenkins自动打包并部署docker环境
以上就是基于Jenkins自动打包并部署docker环境的基本步骤。在实际操作中,你可能需要根据你的具体需求进行一些调整。
384 0
|
图形学 数据安全/隐私保护 iOS开发
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
Unity与IOS⭐Xcode打包,上架TestFlight的完整教程
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
360 0
|
iOS开发 开发者
xcode 打包 Archive 成功 但是 Export灰色
好坑爹啊,产品一到上线就各种问题,这个问题看到都凉了, 什么鬼,以前都正常啊,各种百度,但是没用 最后,原来是开发者账号过期了,至于怎么续费 按照账户中的提示 操作指引即可。
1955 0

推荐镜像

更多