fastlane match 手动管理证书与profile 告别nuke

文件夹结构

  • 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中没有存你加密的密码,会弹出一个输入框,输入你解密的密码即可

参考:
manually manage the fastlane match repo

你可能感兴趣的:(fastlane match 手动管理证书与profile 告别nuke)