jenkins+xcode+蒲公英实现ipa自动化打包

原文
一、简述
公司特意配了一台mac机给测试用,并且打包发布这些功能都要在这台测试机上完成,老大特意让我去研究一下jenkins实现自动化打包,好吧,那就去看吧。

百度搜一下,Mark一下简介:jenkins是一个广泛用于持续构建的可视化web工具,持续构建即各种项目的”自动化”编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:Java, c#, PHP等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、Git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

二、Jenkins的安装

1、Jenkins本身是用java语言开发的,所以安装Jenkins之前,要保证你的电脑有jdk,如果没有,请到如下链接下载:http://rj.baidu.com/soft/detail/25851.html?ald ,另外建议git、ant、maven、gradle、groovy等工具也一并安装好,方便与这些构建工具集成。

2、进入Jenkins的官网 https://jenkins.io/index.html ,然后下载并安装Jenkins。此处有两种安装方法,使用命令行安装和使用jenkins.pkg安装,建议使用后一种

3、下载
1)点击链接进入官网
这里写图片描述
2)点击download
这里写图片描述
3)我选择的是Mac OS X
这里写图片描述
4)下载完成后,得到 jenkins-2.19.4.pkg 文件,点击直接安装即可,在下图中,选择自定,取消 start at boot as“jenkins”,一般不需要自启动
这里写图片描述
5)安装完成后,会直接跳转到如下界面,如果没有跳转或者跳转失败,可通过执行如下命令 ” open /Applications/Jenkins/jenkins.war ” 进入到该界面
这里写图片描述
如果打开没有反应,启动不了,就在浏览器直接打开:http://localhost:8080/ ,就可以进入到上面界面了。

6)观察图中的路径,然后打开你的终端,执行如下命令(注意:该命令仅在安装Jenkins的过程中执行才有效;安装成功后,再在终端中执行是无效的):
这里写图片描述
7)然后将我们得到的password输入到“Administrator password“中,即可进入如下界面,接着安装一些建议的插件,安装过程中,有的插件可能会安装失败,可以跳过,之后需要对应的插件时,再重新安装即可,具体后面会讲到:
这里写图片描述
8)插件安装完成后,可能会卡在如下界面,不会自动跳转,刷新下界面即可:
这里写图片描述
9)在刷新后的界面中注册,输入用户名和密码,如下
这里写图片描述
10)注册成功后,点击”Start using Jenkins”
这里写图片描述
三、Jenkins的使用
1、安装成功后,会进入到如下界面:
这里写图片描述
2、新建项目

1)点击新建,创建一个项目
这里写图片描述
2)输入项目名称,并选择构建一个自由风格的软件项目,点击下方的OK。
这里写图片描述
3)General 中建议写上一些项目描述,这里启用项目安全是指管理员对对应登录用户设置的一些权限。
这里写图片描述
4)这里设置的是构建项目(即用jenkins打包ipa时)的参数设置。
这里写图片描述
具体的使用是在项目页点击
这里写图片描述
然后进入页面,BR就是刚刚设置的参数名称,master就是你对应项目的分支,在所有的设置都设置好了时就可以点击开始构建。
这里写图片描述
5)由于我们在配置jenkins用到了JDK,这里对应的是JDK的名称,第二个勾选项是配置的打包的项目关联的mac电脑名称(自己设置)。
这里写图片描述
具体的在首页中可看到
这里写图片描述
点击进去
这里写图片描述
6)源码管理,公司的项目是放在gitlab上的,这里Repository URL填的是项目的路径,Credentials添加的是gitlab上登录的用户名和密码, Branch Specifier (blank for ‘any’)这里就是上面提到的构建时的分支设置参数。
这里写图片描述
输入对应的用户名和密码后,并在Credentials中选择该帐号。
这里写图片描述
7)由于项目是在另一台mac机上构建的,则这里配置身份验证令牌。
这里写图片描述
8)构建设置

在下图的Target中,保证该Target和Xcode项目工程中的Target同名。建议勾选Clean before build?,并将Configuration设为Release。勾选Pack application and build .ipa?,同时为即将输出的ipa文件命名并指定输出路径。

? Target:就是我们在项目中建立的Target

如果不清楚有哪些Target的情况下可以到xcodeproj或xcworkspace的目录下运行如下命令 xcodebuild -list 即可看到Targets,其中是所有可以用的target。

? Clean before build?:这个是在编译前是否clean一次,一般是选择YES。

? Configuration: 对应的是xcodebuild命令里的-configuration的参数,可选项为[Debug、Release],一般都填Debug,这样就可以将打包后的ipa交付给测试人员测试

? Pack application and build .ipa?:这个是在结束是是否要产生对应的ipa文件,一般都是打上勾的

? .ipa filename pattern:这个配置项是配置所产生ipa的文件名,其中有一些可用的全局变量

其中 VERSION {SVN_REVISION}都是可以直接用的环境变量,如果想看还有哪些环境变量而已用可以点击在Execute shell下方有个 “See the list of available environment variables”进行查看,这里就不进行列出来了。

? Output directory:这个配置了ipa的输出目录(默认Build output directory所在路径,见下图)
这里写图片描述
Code signing & OS X keychain options (签名的设置)

Codee Signing Identity:所使用的签名

如果不知道具体填什么可以到钥匙串访问中寻找 iPhone Distribution:开头的所使用的证书,然后选中后点击右键选择显示简介,在弹出的窗口中找到常用名称,将其复制填入即可。 或者可以在命令行中输入security find-identity -p codesigning -v来查找iPhone Distribution:开头的签名即可,找到后将双引号中的内容复制。

? Unlock Keychain?: Jenkins需要访问Keychain,获取响应的key,所以需要授权。选上就自动解锁。需要提供密码。

? Keychain path: 默认都是${HOME}/Library/Keychains/login.keychain

? Keychain password: 钥匙串的密码

注意:这个可以在 系统管理-》系统设置-》Xcode-》BuilderKeychains-》添加,在配置中可以选取
这里写图片描述
Advanced Xcode build options(xcodebuild命令的配置)

? Clean test report?:这个是如果要用到xcode测试的时候才用到,意思就跟英语一样

? Xcode Scheme File: 关于这个其实对应的就是xcodebuild命令中的-scheme的参数

如果您不知道要填写什么的话, 可以通过xcodebuild -list来查询。是不是觉得这条命令很熟悉,没错前面查找target的时候也是用这个命令!

? SDK:这里是xcodebuild命令中的-sdk的参数,指定编译和打包的sdk号。如果不懂可以填写哪些可以通过xcodebuild -showsdks来查看。

? SYMROOT:该变量是编译和打包产生结果的输出目录( .a, .zip, .ipa, .hmap等产生文件的位置),其中该目录其实是包括了CONFIGURATION BUILD DIR和OBJROOT这两个目录,默认的路径是所编译的xcodeproj所在目录,如主项目和POD项目整合后,则会在主项目的和POD项目的XCODEPROJ所在目录

如果在指定了OBJROOT的位置后,编译过程中产生的文件不会在该目录体现 如果在指定CONFIGURATION_BUILD_DIR的位置后,该变量则变成无效化

? Custom xcodebuild arguments:这个就是xcodebuild命令中的指定buildsetting的命令的参数,至于可以指定哪些参数请不要问我,可以找度娘或者谷哥

? Xcode Workspace File:该配置是指明了xcodebuild中的-workspace的变量,其实就是如果您需要编译打包一个workspace时候的时候指定那个后缀名为xcworkspace的文件, 如果指定了该配置,那么Xcode project file配置项将无效

? Xcode Project Directory:该目录是指明了包含xcodeproj文件的目录(这个我是没用用到如果用了该参数可能最开始第一步的构建就没用了——不过我还没证实,欢迎小伙伴证实后告诉我)

? Xcode Project File: 如果需要构建一个project而不是一个workspace的话则指定文件的名称(后缀名为xcodeproj的文件)

? Build output directory:该参数只是指明了最终需要产生的动态包,ipa,app等文件默认路径为所编译的xcodeproj所在目录,如主项目和POD项目整合后,则会在主项目的和POD项目的XCODEPROJ所在目录(编译产生的相关文件所在目录,默认为 SYMROOT/ CONFIGURATION)

? 值得说的是有一个参数也是挺常用的就是OBJROOT,该参数是产生 .a和 .hmap文件的目录,默认路径为所编译的xcodeproj所在目录,如主项目和POD项目整合后,则会在主项目的和POD项目的XCODEPROJ所在目录,关于OBJROOT、CONFIGURATION BUILD DIR以及SYMROOT三个路径之间的关系大家可以去查看官方的文档。
这里写图片描述
3、添加上传到第三方分发平台(这里选择蒲公英平台作为例子)

蒲公英上的User Key

uKey=”41ed0a30a0cdf9296501232e69b5a66b”

蒲公英上的API Key

apiKey=”ece94057dd3d5bd3d570ae509a0c3e3d”

要上传的ipa文件路径

IPA_PATH=”${WORKSPACE}/build/PPCSDKTest.ipa”

密码

PASSWORD=”123456”

MSG=git log -1 –pretty=%B

执行上传至蒲公英的命令

echo “++++++++++++++upload+++++++++++++”

curl -F “file=@ IPAPATH"F"uKey= {uKey}” -F “_api_key= apiKey"F"updateDescription= {MSG}” -F “password=${PASSWORD}” http://www.pgyer.com/apiv1/app/upload
这里写图片描述
到此为止关于Jenkins整合Xcode的配置项并自动上传到蒲公英差不多就说好了。那么可以稍微构建一下项目试试了,构建完项目后,你就会发现测试人员不需要天天来烦你,再也不需要听到“开发狗,赶紧给我安装一个最新的版本”了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值