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了
      • 百里岚:== 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