上篇先说一下打包的周边问题(也能够先跳过),下篇再聚焦于打包自己。markdown
因为是在其余机器上打包,因此须要:app
系统偏好设置
-> 共享
中打开远程登陆、屏幕共享、文件共享三个权限而后平时打包就是经过 访达->共享屏幕
去访问,或者说 ssh(远程登陆)
连接上去。若是须要远程在家的话,能够考虑挂一个 TeamViewer
ssh
若是是经过 ssh方式
远程登陆到其余macOS机器上,直接打包可能因为 Keychain
未解锁的问题致使打包失败。oop
解决办法是在远程机器桌面建立一个登陆密码文件,假如当前登陆密码为 12345678
:spa
// 也能够手动建立一份文件,注意文件名须要和后边的匹配
echo 12345678 > ~/.keychain_pass_file
复制代码
而后在脚本最前面,加上:code
注意:脚本第一行会打印密码出来。若是对这有顾虑的能够研究换一种方法orm
# 解锁远程机器上的钥匙串
keychain_pass = sh("cat ~/.keychain_pass_file")
sh "security unlock-keychain -p #{keychain_pass}"
unlock_keychain(path: "~/Library/Keychains/login.keychain", password: "$(cat ~/.keychain_pass_file)")
复制代码
因为有多个马甲包,且可能由不一样人负责的,且打包脚本也有可能更新,如何让他们共用同一份Fastfile呢。get
稍微查了下资料后,发现有一个 环境变量(env)
和 远程文件
,彻底知足这个需求。it
环境变量: - 相似于 xcconfig
,配置键值对,而后在 Fastfile
中经过 ENV["Key"]
来获取不一样值 - 在打包时,执行 fastlane fir --env weixin
, 其中 weixin
必须和 env
文件名一致,如: .env.weixin
远程文件: 能够导入远程文件,来实现始终为最新版本的打包脚本io
初次打包时,可能会询问密码,这个时候,能够用这一行命令来解决
security set-key-partition-list -S apple-tool:,apple: -k "$(cat ~/.keychain_pass_file)" ~/Library/Keychains/login.keychain
复制代码
也能够到钥匙串里,设置证书的访问控制权限来达到目的。