Jenkins/git/KeyChains & Prov

作者: 酱油葱 | 来源:发表于2016-01-28 18:04 被阅读4824次

前因

一朋友写完了Jenkins与svn的集成(具体看这里), 但是没搞git的集成, 所以邀请我也写点. 第一次写简书博客, 可能存在不少遗漏, 望不吝批评指正.

过程

1. 安装Jenkins

这部分工作, 在这篇文章中已经提及很多, 就不一一赘述. 需要注意一个坑: Jenkins用户安装时候为匿名用户, 所以需要设置密码, 才能登陆该账户. 偷懒的原因, 我把这个账户设置为"管理员"了.

Jenkins账户设置

2. 安装Jenkins插件

基本上, git相关的插件都可以试着安装一下. 点击名称链接进去就能看到相关的文档, 查阅也很方便.

git相关插件

因为我们的工程放在Bitbucket上, 所以也装了Bitbucket相关的插件. 如果你的工程放在Github上, 那么Github的插件少不了.

bitbucket相关插件

当然, 涉及到了XCode编译/打包, 所以建议也把XCode插件给装上.

最后, 介绍一个比较重要的插件, Keychain and Provisioning Profiles Management.

由于Jenkins账户没有访问其它账户(如系统管理员账户)文件的权限, 所以大伙一般采用两种方式处理打包的问题: 将证书/provision profile文件导到Jenkins目录, 切换账户导入(繁琐); 或者将Jenkins账户和系统管理员账户加入到同一个Group中, 并修改各自目录的权限, 达到直接访问的效果(技术难度高). 

目前找到的这个插件可以较为完美的解决证书相关问题, 技术难度也降低了很多. 这是其文档链接.

流程截图如下:

Keychain管理入口

找到KeyChain文件

Keychain文件

Keychain上传相关文件

上传相关文件

保存后在工程配置中就能添加使用该插件轻松给工程签名/Provision了

工程Keychain设置 工程Provision设置 工程XCode插件配置1 工程XCode插件配置2


PS:

因为我们的工程涉及到了多个项目, 还用了Multi SCMs插件, 这样就可以将不同的项目Checkout到不同的目录, 并指定编译依赖关系和编译顺序了. 如图:

Multi SCM工程的配置

另外, Poll SCM在可能的情况下尽量勾选上, 以便定时监控项目版本的变化.

然后, 可以自由开心的下班玩耍了.

其余部分, 可以到Google或者Baidu查找, 简书上的相关文章也不少, 暂时不做延伸扩展.

非常感谢Halley的邀请和协助, 才完成了这篇拙文.

相关文章

网友评论

  • 米斯特卢:您好,我再上传Keychain文件时,系统中没有login.keychain文件,只有login.keychain-db这个文件,login.keychain-db文件上传时报错,请问您知道怎么解决吗?
    米斯特卢:@阿兰邦巴尔 我记得我是复制了login.keychain-db,改了后缀,改成了login.keychain。你试下!
    阿兰邦巴尔:你好,我也遇到了和你一样的问题,请问你找到解决方法了吗?
    酱油葱:@米斯特卢 建议还是用别的方案,用keyChain不安全。这篇文章是很久前写的,现在系统已经不一样了,可能不允许直接访问,避免被拖库:disappointed_relieved:
  • 开心小锣鼓:楼主 我的keychain文件是login.keychain-db 不是 login.keychain, 这是什么原因啊? 上传login.keychain-db 提示不是keychain文件
    阿兰邦巴尔:你好,我也遇到了和你一样的问题,请问你找到解决方法了吗?
    开心小锣鼓:@酱油葱 好像也是用这种 其他不了解 ,我再看看吧 。谢谢
    酱油葱:文件找错了吧?有段时间没折腾Jenkins了,现在的版本应该可以不用keychain文件这种方式了,毕竟不安全。建议你找一下简书里其他博主较新的文章看看。:grin:
  • 架构师启示录:很用心在这写,加油……
  • Crazy2015:你好,我现在遇到一个问题。我的worspace下面有两个project ,一个project为静态库(带有源代码),另一个project 要用到上面的静态库。之前我们的做法就是将带有源码的静态库的project 打包编译成.a的静态库和.bundle文件,然后通过引用的方式让另一个project 使用。但是Jenkins自动打包的话,这种情况改怎么使用呢?
    酱油葱:还真没试过这种依赖,我们是两个工程依赖,用了个multi scm之类的插件,管理它们的顺序,你可以装上试试:blush:
  • 194775dd6f26:你好,我在配置Keychain ... Management 时,Provisioning Profile 没有filename 和 uuid选项呢,只有一个 Provisioning Profile Directory Path 路径。
    酱油葱:很多插件我也没用过,不太确认选项。当jenkins可以访问keychain时,就意味着可以直接脚本编译打包了
    194775dd6f26:添加好之后,在工程配置页面,Code Signing Identities 页面没有,选项呢?谢谢了!
    酱油葱:@忆轩 直接设置路径也行,但需要密码访问你的keychain文件,这样就能获取Provisioning profile了
  • d78086abd95f:== Available schemes
    [workspace] $ /usr/bin/xcodebuild -list -workspace ijhealth.xcworkspace
    2016-05-05 17:04:08.912 xcodebuild[5784:1463326] [MT] DVTPlugInManager: Required plug-in compatibility UUID ACA8656B-FEA8-4B6D-8E4A-93F4C95C362C for KSImageNamed.ideplugin (com.ksuther.KSImageNamed) not present
    xcodebuild: error: 'ijhealth.xcworkspace' does not exist.

    Build step 'Xcode' marked build as failure
    Finished: FAILURE 这是什么错啊
    酱油葱:@百里岚 你用了pods,但是又没有执行pods命令导致,跟jenkins没什么关系。抱歉,最近在外地,没及时回复
  • 奔奔奔跑:正好准备用jekenis
  • YorkLe:mark ~~~
  • jueyingxx:虽然吧用不上,但是吧,mark下!
    酱油葱:@jueyingxx 😂感谢

本文标题:Jenkins/git/KeyChains & Prov

本文链接:https://www.haomeiwen.com/subject/mpquqttx.html