文件夹结构
- certs
- development
- distribution
- profiles
- development
- adhoc
- appstore
certificate命名规则
- teamID.p12
- teamID.cer
p12默认无密码
profile命名规则: type_bundleid.mobileprovision
假如你的app bundle id 为com.company.appname
那么
- development: Development_com.company.appname.mobileprovision
- adhoc: Adhoc_com.company.appname.mobileprovision
- appstore: AppStore_com.company.appname.mobileprovision
手动管理git repo
fastlane本身对repo进行了加密,且fastlane不支持手动编辑repo
如果是在需要手动编辑,需要先解密,修改 然后再加密
解密
命令后进入工程根目录
$ bundle console
irb(main):001:0>
加载match并设置合适的参数
irb(main):001:0> require 'match'
irb(main):002:0> git_url = 'https://github.com/fastlane/example-certificate-repo'
=> "https://github.com/fastlane/example-certificate-repo"
irb(main):003:0> shallow_clone = false
=> false
irb(main):004:0> manual_password = 'example-password'
=> "example-password"
调用GitHelper.clone
clone并解密 工程
返回值存放在workspace中,稍后我们会再次加密
irb(main):005:0> workspace = Match::GitHelper.clone(git_url, shallow_clone, manual_password: manual_password)
[14:49:30]: Cloning remote git repo...
[14:49:31]: 🔓 Successfully decrypted certificates repo
=> "/var/folders/0j/29ytx6wx0fg86sznfb4mqdph0000gn/T/d20180601-14350-11hmdro"
修改
/var/folders
文件夹下存放着解密后的工程,在那里 可以进行你想进行的修改
注意:p12文件不要设置密码,match不支持导入有密码的私钥
再次加密
调用GitHelper.commit_changes
提交修改信息 eg:
irb(main):006:0> Match::GitHelper.commit_changes(workspace, "remove password from p12 file", git_url)
这下你的修改会被加密 提交 并push到git中, 执行完后 /var/folder
中的工程会被删除
注意: 如果你的keychain中没有存你加密的密码,会弹出一个输入框,输入你解密的密码即可