1. Jenkins环境安装 在官网下载Jenkins, 地址是: http:///content/thank-you-downloading-os-x-installer 当前最新安装包为:jenkins-1.526.pkg. 直接点击安装完成,完成后会在application下产生一个jenkins的文件夹, 自动启动safari,并进入Jenkins页面。 **也可以下载jenkins.war, 然后运行java -jar jenkins.war,进行安装。 【问题1】安装完成,自动启动safari,但进入localhost失败,提示无法访问localhost。 【A】检查Java环境是否安装好;若java环境未安装好,重新安装配置java环境。 2. 运行Jenkins http://localhost:8080 就可以进入jenkins的主界面。 如果安装完成后出现启动不了的情况,执行以下命令,清除下既存的plist信息:
【注】直接在浏览器运行localhost启动jenkie,会导致一些问题,比如用Xcode去build的时候,会有code signin 的问题,导致在终端能编译通过的脚本,在Jenkie下无法通过。 而出现这个问题的原因在于用户权限问题,用浏览器运行启动jenkie,jenkie的工作目录会建立在/Users/Shared/Jenkins下,导致它没有权限访问系统的keychains,需要通过一系列的步骤去给予它这个权限。 具体过程参见: http:///questions/9245149/jenkins-on-os-x-xcodebuild-gives-code-sign-error 正确的启动方式是: sudo launchctl unload /Library/LaunchDaemaons/org.jenkins-ci.plist java -jar /Applications/Jenkins/jenkins.war --httpPort=8080 这时,jenkies会在/Users/[user name]/.jenkins 下面建立工作目录,从而它就有权限去获取相关的keychain。3. Jenkins配置 (1) Xcode插件安装 Manage Jenkins->Manage Plugins->add Xcode Plugin "Xcode Integration" (2)新建Job a. New Job -> Job Name->free-style software project->OK b.进入Subversion->输入SVN地址,并验证; C.在Build设置中选择Xcode,并设置;在实际项目中,都是用脚本实现。 4. XCode插件配置 a. 在“Add Build Step”选项中选择Xcode; b. 配置build环境: Target:写入Project中对应的Target,比如“Helloworld” SDK:可以为空,或iPhoneSimulator4.1.sdk等; Configuration: 设置build的模式,Debug,Release等等; Xcode Workspace File:设置workspace的文件名; Xcode Project Directory:设置工程文件对应的路径,工程文件不一定在系统根目录下; Xcode Project File:Helloworld.xcodeproj,对应的工程文件名。 Build output directory: build结果输出的路径。 Build IPA? :是否需要build ipa文件; Unlock Keychain? :Jenkins需要访问Keychain,获取响应的key,所以需要授权。选上就自动解锁。需要提供密码。 设置完成之后,保存即可。 可以通过控制台查看最终的配置结果,运行的命令是: [bld] $ /usr/bin/xcodebuild -target NexGen -configuration Debug build 根据可以这个命令对比,设置的是否正确。 【问题】KeyChain无法解锁,Jenkin没有权限访问Keychain。 【A】给于Jenkins用户权限, security <CERT_FILE> import -k $HOME/Library/Keychains/login.keychain -Tcodesign 5. Jenkins默认的邮件通知
但是,这样每次编译都会邮件通知,有点烦,因此可选择邮件通知的插件,更优。 【设置系统邮件地址】 Jenkins->Manage Jenkins->Configure system ->Jenkins location- >System admin Email Address-> 邮件的发信人地址 【配置Extend Email Notification】 Default Recipients : 收件人地址 Default Content Type: Html Default Content:
【配置Email Notification】 SMTP Server: outbound.XXX.com Default user e-mail suffix : @xxx.com 保存之后,可以测试配置是否成功,如果成功收件人会收到响应的邮件通知。 【在Mail 的advance中设置trigger】 Fail:build失败的时候发送邮件; Success:成功的时候发送邮件。 6. 载入证书文件 环境配置完成后,直接去build now还是会出错,因为IOS的一些证书没有载入到Jenkins所在的机器中。需要把.mobileProvision文件 添加到Keychains中。操作方式为,双击打开即可。 如果显示,该provision为无效文件,则需要证书文件。即与该provision文件对应的.cer文件,或授权文件.p12. 当Keychains中的证书文件显示为valid时,再次运行Build Now,编译通过 7. Jetty 配置 配置Jetty,可以让device通过wifi安装ipa包。 1. 下载Jetty 路径为:http://dist./jetty/jetty-6.1.14/jetty-6.1.14.zip 2. 解压zip包,进入Jetty的目录,运行命令:java -jar start.jar,则jetty启动成功。 需要安装Maven,在MAC环境下一般已经自带Maven 3. 进入Jetty目录下/etc/jetty.xml,修改默认端口为8081,。 8080一般为Jenkin使用。 4. 在jetty目录下webapps下建立新文件夹,命名为newJob,在newJob中添加index.html, 该html中即为设备登录jetty时显示的页面。 大致内容如下:
其中***.plist为工程对应的说明文件,用XCode打开,里面有三个项:ipa的地址,应用程序对应的图片地址。 分别将***.ipa,图片文件考入.plist中描述的地址即可。 5. Deveice上,打开浏览器,输入:http://10.140.48.168:8081/ipa/index.html 就能看到安装的链接,点击即可安装。 【Q1】安装失败,是ipa文件不对? 【A1】安装到75%左右,提示无法安装;真机连上XCode,应用程序也无法安装到真机上,提示no dictionary字样; 这是由于build的版本不对,build出来 的target是6.1,而真机是6.0版本,故无法安装。 【Q2】证书问题,使用Ios_IN_HOUSE.mobileprovision证书,build无法通过。 【A1】in_house.mobileprovision下载到本地后,双击该文件,XCode打开,会显示该证书文件是否有效。如果有效,邮件点击该证书文件,选择“Reveal Profile in Finder”, Finder会导向XCode实际使用的证书文件(以字母数字混合命名),这个.mobileprovision文件就是build in house的时候需要使用的证书文件。 【Q3】使用build脚本去build in house的包时候,可以在XCode的工程设置中配置好in-house需要的包,然后直接运行命令:
或者,使用
**处即为证书文件对应的信息。前者为显示的名字,后者对应ID号。 |
|
来自: ala咪s > 《SCM_Jenkins》