你会如何从特拉维斯推销CocoaPods?我希望每个标记的提交都执行pod trunk push
,但pod trunk register
特拉维斯是个好主意吗? Trunk的文档说它注册了一台机器,而不是一个用户,所以无意中打开了Pod来推送其他使用Travis的人吗?
有没有人有一个已经这样做的回购的例子?
您可以使用Travis命令行工具推送的私有API密钥,使用RubyGems执行此操作,如RubyGems Deployment中所述。
答案 0 :(得分:5)
Cocoapods 支持使用令牌进行身份验证。
首先,您需要从~/.netrc
的密码字段中获取令牌。致电pod trunk register
后,您会看到一个如下所示的部分:
machine trunk.cocoapods.org
login user@example.com
password 0000000011111111
然后您可以使用令牌(这是不安全的)更新CI上的podspec:
export COCOAPODS_TRUNK_TOKEN=0000000011111111
pod trunk push path/to.podspec
您还可以使用
加密Travis-CI中的令牌travis encrypt COCOAPODS_TRUNK_TOKEN=0000000011111111 --add env
<强>更新强>
您现在可以直接在计划的设置中设置环境变量。如果您关闭构建日志中的显示值(默认情况下已禁用),则会将其视为安全变量。这样,您就不需要使用Travis命令行工具,或者将垃圾添加到您的yaml文件中,并且可以在不更改您的仓库的情况下进行更改。
答案 1 :(得分:1)
感谢@Quanlong有关可以在哪个文件中找到密码的信息。
您可以使用此命令从所述文件中提取密码
grep -s password ~/.netrc | awk '{print $2}'
因此,如果您使用的是fastlane或任何其他CI套件,则可以像这样设置令牌
ENV['COCOAPODS_TRUNK_TOKEN'] = sh "grep -s password ~/.netrc | awk '{print $2}'"
哪些适用于快速通道。否则,您可能希望以其他方式调用grep
命令,可能是system("grep ... ")