fastlane安装使用使用的教程很多,套路基本固定。此处仅记录耗费了自己几天时间的坑,以便后续方便查阅。有个感悟:有问题一定要看官方文档以及issues,相信自己不是第一个遇到……
一:security: SecKeychainItemImport: The specified keychain could not be found. Could not install WWDR certificate
1、security list-keychains 可以查看所有keychain
使用该命令之后,我这边的输入是:
"/Library/Developer/XcodeServer/Keychains/Portal.keychain"
"/Users/XXX/Library/Keychains/login.keychain-db"
"/Library/Keychains/System.keychain"
你会发现第一个Portal,keychain中没有WWDR证书
所以根据fastlane issue中的方法将login-keychain-db(包含WWDR) 放在第一位,具体方法十分简单
再使用 security list-keychains,login.keychain-db即在第一位了,感觉是fastlane代码没有写的严谨
"/Users/XXX/Library/Keychains/login.keychain-db"
"/Library/Developer/XcodeServer/Keychains/Portal.keychain"
"/Library/Keychains/System.keychain"
参考: https://github.com/fastlane/fastlane/issues/6993
记录个命令:
security find-certificate -c 'Apple Worldwide Developer Relations Certification Authority'
可以查找某个证书的详情
二:复用现有的证书
参考这边文章即可: http://macoscope.com/blog/simplify-your-life-with-fastlane-match/#migration
上边有详细步骤
有个注意点,提交之前删除其余p12、cer等文件,只留下 cert_id.cer和cert_.p12,否则 Passphrase for Git Repo 这一步过不去
还有openssl 的密码要记住
三:Could not decrypt the repo, please make sure you enter the right password!
解决方法: 在Fastfile的 before_all方法中,添加 ENV["MATCH_PASSWORD"] = 密码,示例: ENV["MATCH_PASSWORD"] = "123456"
四: ommand timed out after 10 seconds on try 1 of 4
原因: 很大可能是机器不给力了,使xcodebuild -showBuildSettings -workspace ./XX.xcworkspace -scheme XX -configuration Release 命令执行超时
解决方法: 在Fastfile的 before_all方法中,添加 :
ENV["FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT"] = "120"
ENV["FASTLANE_XCODEBUILD_SETTINGS_RETRIES"] = "4"
也就是重置超时时间和重试次数,可根据自己需要修改