Mac Jenkins集成打包踩过的坑

Jenkins File Parameter

curl ${BUILD_URL} \
-F json='{"parameter": [{"name":"iphone.ipa"}]}'

Jenkins 读取Hidden Parameters(暂未解决)
Jenkins ssh

将私钥复制到 Jenkins 用户下,执行下面命令,需要输入用户登录密码
sudo cp -R ~/.ssh /Users/Shared/Jenkins/.ssh
修改私钥权限
sudo chmod -R 777 /Users/Shared/Jenkins/.ssh/id_rsa
sudo chmod -R 777 /Users/Shared/Jenkins/.ssh/id_rsa.pub
777 权限虽然说很危险,但是只有 Jenkins 一个用户在用,也没什么


cat /Users/Shared/Jenkins/.ssh/id_rsa
复制粘贴到Jenkins Global credentials (unrestricted)页面下的 “Private Key“

Jenkins KeyChain问题
有些Mac电脑在~/Library/Keychains/目录下只有“login.keychain-db”,将login.keychain-db随便拷贝一个地方,rename为“login.keychain”上传Jenkins

将Keychains拷贝到Jenkins目录下,执行下面命令,需要输入用户登录密码
sudo cp -R ~/Library/Keychains/  /User/Shared/Jenkins/Library/KeyChains
并修改权限,添加Jenkins用户的访问权限
否则报错:unknown error -1=ffffffffffffffffCommand /usr/bin/codesign failed with exit code 1

Provisioning Profiles目录为 "~/Library/MobileDevice/Provisioning Profiles/"
Jenkins自带Xcode插件在Mac OS10.x后打包失败(具体版本号忘了),需要使用Execute Shell或FastLane打包

邮件配置:
SMTP服务器地址:mail.corp.xxx.com
后缀:@xxx.com
远程机器TeamViewer卡死
先ssh上去
top | grep ' TeamViewer'
kill -9 相应的pid号
open /Applications/TeamViewer.app/

  • 全局安全配置
    Jenkins安全,定义谁可以访问或使用系统。尽可能定义为项目矩阵授权策略,取消CSRF Protection模式
    *itms-9000:"Missing or invalid signature. The bundle 'com.xx.xx' at bundle path 'Payload/xxx.app' is not signed using an Apple submission certificate."
    *JenkinsArchive包时候需要将证书设置为“始终信任”,但shell打包时不需要。
    *由于我的打包机还没开放出来,每次只能通过scp ipa到打包机上 scp ~/Desktop/xxxIPA/xxx.ipa [email protected]:Desktop/xx.ipa
    *jenKins卸载
    /Library/Application Support/Jenkins/Uninstall.command 双击运行

Jenkins中调用某些命令可能出现:xxx command not found
选择“系统管理”——“系统设置”,进入系统设置界面(可以管理全局属性、配置邮件通知)
全局属性下面,勾选Environment variables,增加一对键值对:
LANG = zh_CN.UTF-8
PATH = (终端中执行 echo $PATH 命令的输出,为一堆路径)

你可能感兴趣的:(Mac Jenkins集成打包踩过的坑)