在mac 机上配置jenkins iOS版本编译环境总结

  使用pkg文件安装的jenkins坑太多,当前我已切换为使用”brew install jenkins”方式安装的jenkins了,轻爽了不少。下述填坑内容仅供参考:

  总体上在jenkins上使用python3和python2组合搭建的编译环境,通过python3调用系统的svn命令完成代码工程的更 新,通过调用fastlane完成iOS版本的编译,通过python2调用paramiko模块,将打包好的版本上传到ftp服务器。

1. 从https://jenkins.io网站下载LTS版本安装包(mac上运行的当前是jenkins-2.46.2.pkg),安装完成后,第一次运行需要按照提示,完成初始密码的配置以及完成第一个帐户的配置,并将该用户作为管理员;
2. 因为jenkins运行有用户权限限制,所以工程目录必须配置在系统jenkins用户自己的目录,才不会存在访问权限的问题,如果需要为jenkins系统帐户配置登录密码,可使用命令”sudo passwd jenkins“,配置完之后就可以用设置好密码登录了,如果是在其他帐户复制文件到jenkins目录,则可以使用chownchmod命令修改所属用户和权限;
3. 构建项目时,如果不需要多出来额外的default子目录,则创建jenkins工程的时候,选择”构建一个自由风格的软件项目”类型创建工程;
4. 在jenkins里面,如果已经创建了一组参数,想在中间插入某个参数时,可以先创建,再拖动单个参数的边框调整顺序;
5. Jenkins运行起来之后,其默认的系统环境变量PATH只有有限的几个路径,导致调用部分命令时提示找不到,解决方式如下:
在Jenkins对应的 .plist文件中(/Library/LaunchDaemons/org.jenkins-ci.plist), 设置PATH环境变量,具体添加信息如下:

<key>EnvironmentVariableskey>
<dict>
    <key>PATHkey>
    <string>(insert your path value here)string>
dict>

配置完之后重启(依次运行:sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plistsudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist ),应该就能满足要求了;
相关信息可参考下面网页:
https://stackoverflow.com/questions/15620369/jenkins-on-mac-path-is-not-set-right-no-usr-local-bin
https://stackoverflow.com/questions/6959327/how-to-stop-jenkins-installed-on-mac-snow-leopard
6. 在运行ruby时,会报”invalid byte sequence in US-ASCII (ArgumentError)“这类错误,是因为默认的环境变量LC_ALL为空,将其配置和系统一致就可以,运行”locale“可查看当前语言配置,在Jenkins的”系统管理->系统设置->Environment Variables”下面添加LC_ALL键值对,譬如我机器上的对应值为”zh_CN.UTF-8“,则键的内容填写引号里面的内容即可;
相关信息可参考下面网页:
http://blog.csdn.net/cuiaamay/article/details/50535272
jenkins中LANG值也为空,保险起见,可同步添加LANG键值对,譬如我机器上的对应值为”zh_CN.UTF-8“,则键的内容填写引号里面的内容即可;
7. 在运行python2脚本使用printf打印输出时,会报”UnicodeEncodeError“这类错误,是因为默认的环境变量PYTHONIOENCODING为空,将其配置为”UTF-8“编码即可,在Jenkins的”系统管理->系统设置->Environment Variables”下面添加PYTHONIOENCODING键值对,值为”UTF-8“;
相关信息可参考下面网页:
https://stackoverflow.com/questions/6076203/how-do-you-set-the-default-encoding-in-jenkins
8. 在进行打包签名时,会提示找不到签名文件之类的错误,解决该问题必须将苹果证书导入Jenkins系统帐户才可以,遵循在xcode中导入开发证书的过程,确保正常下载证书才能编译OK;
相关信息可参考下面网页:
http://www.cnblogs.com/qingjoin/p/3929493.html

你可能感兴趣的:(app开发)