项目需要每天都自动编译版本,所以处理了自动化编译的脚本,过程中遇到几个问题。
internal & gradle编译
用gradle总是提示gradle版本不一致,之后直接改用internal
crontab 没有执行
因为crontab路径的问题,需要在shell中处理
Shell路径获取与变量设置
crontab 执行了部分逻辑
因为crontab环境变量问题,导致部分工具找不到,需要执行
source /etc/profile
codesign失败
因为ssh方式连接到编译机器,默认是没有账户的,但是访问钥匙串要求必须有用户身份,所以添加一步输入密码解锁钥匙串。
security unlock-keychain -p "login pwd" ~/Library/Keychains/login.keychain
Xcode: Internal launch error: process launch failed: Unspecified
因为在钥匙链中的证书,选择了”总是信任”,需要改成”系统默认”
No signing certificate “ios Development” found : No “ios Development” signing certificate matching
这种情况,主动在终端中用命令可以执行,但是通过
crontab
执行相同的脚本,就是报上面的错误。主要原因是证书,证书都是在钥匙链中的登录
下,需要复制一份到系统(system)
下。或者在crontab
中,用bash -l
来进入login shell
。