├── 效果图.png ├── fastlane ├── report.xml ├── README.md └── Fastfile ├── README.md └── add_udids.sh /效果图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HansenCCC/HSAddUdids/HEAD/效果图.png -------------------------------------------------------------------------------- /fastlane/report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /fastlane/README.md: -------------------------------------------------------------------------------- 1 | fastlane documentation 2 | ================ 3 | # Installation 4 | 5 | Make sure you have the latest version of the Xcode command line tools installed: 6 | 7 | ``` 8 | xcode-select --install 9 | ``` 10 | 11 | Install _fastlane_ using 12 | ``` 13 | [sudo] gem install fastlane -NV 14 | ``` 15 | or alternatively using `brew cask install fastlane` 16 | 17 | # Available Actions 18 | ## iOS 19 | ### ios addUdids 20 | ``` 21 | fastlane ios addUdids 22 | ``` 23 | 注册手机udid到指定AppId账号 24 | ### ios downloadsProfile 25 | ``` 26 | fastlane ios downloadsProfile 27 | ``` 28 | 下载provisioning_profile,不存在的bundleid和certificates自动新建并下载 29 | ### ios adhoc_profile 30 | ``` 31 | fastlane ios adhoc_profile 32 | ``` 33 | 单纯下载provisioning_profile,不存在的bundleid自动新建并下载(已废弃) 34 | ### ios test 35 | ``` 36 | fastlane ios test 37 | ``` 38 | 39 | 40 | ---- 41 | 42 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. 43 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). 44 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HSAddUdids 2 | 3 | [![Build Status](https://img.shields.io/badge/Github-HSAddUdids-brightgreen.svg)](https://github.com/HansenCCC/HSAddUdids) 4 | [![Build Status](https://img.shields.io/badge/platform-shell-orange.svg)](https://github.com/HansenCCC/HSAddUdids) 5 | [![Build Status](https://img.shields.io/badge/HansenCCC-Github-blue.svg)](https://github.com/HansenCCC) 6 | [![Build Status](https://img.shields.io/badge/HansenCCC-知乎-lightgrey.svg)](https://www.zhihu.com/people/EngCCC) 7 | 8 | 超级签名中最重要的一步:跳过双重认证,自动化脚本添加udid并下载描述文件 9 | 10 | 11 | 12 | ## 运行环境 13 | ### 编译系统:苹果Mac 14 | ### 编译系统版本:MacOS Catalina 10.15.1 15 | ### 需要终端环境:fastlane、ruby、cocoapods 需要安装APP:Xcode 16 | *** 17 | 18 | ## 使用文档 19 | 1、cd到当前文档路径 20 | 21 | 2、修改add_udids.sh文件以下环境变量 22 | ``` 23 | 赋值FASTLANE_MAC_PASSWORD为当前Mac开机密码 24 | 赋值FASTLANE_APPLEID为需要添加的appid账号 25 | 赋值FASTLANE_PASSWORD为需要添加的appid密码 26 | 赋值FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD(进入苹果官网生成的特殊密码APP-SPECIFIC https://appleid.apple.com/account/manage) 27 | 赋值FASTLANE_SESSION(执行fastlane spaceauth -u user@email.com,生成session cookie) 28 | ``` 29 | 30 | 3、使用终端执行 sh add_udids.sh 需要添加的udid集合,以空格隔开 31 | e.g, 32 | ``` 33 | sh add_udids.sh 6f1b77ce2ff2cd5672734e00facbe97f305f9ddb 6f1b77ce2ff2cd5672734e00facbe97f305f9ddb 6f1b77ce2ff2cd5672734e00facbe97f305f9ddb 34 | ``` 35 | 36 | 37 | *** 38 | ## 参考文档 39 | #### [fastlane官方文档](https://docs.fastlane.tools/ "fastlane官方文档") 40 | #### [关于spaceship工具的简单了解](https://www.jianshu.com/p/1d63bfef1738 "关于spaceship工具的简单了解") 41 | #### [fastlane使用说明书和处理关于开启两步验证如何全自动化问题](https://www.jianshu.com/p/19ae8cc865b0 "fastlane使用说明书和处理关于开启两步验证如何全自动化问题") 42 | #### [使用fastlane创建profile、添加设备、创建推送证书 以及上传蒲公英](https://www.jianshu.com/p/2defceba2761 "使用fastlane创建profile、添加设备、创建推送证书 以及上传蒲公英") 43 | #### [搭建 超级签 详细攻略](https://blog.csdn.net/LiaoQuesg/article/details/101219984 "搭建 超级签 详细攻略") 44 | #### [自动化打包---打包上传App Store Connect](https://www.jianshu.com/p/16e0d9b8e7ca "自动化打包---打包上传App Store Connect") 45 | #### [fastlane/spaceship/docs/DeveloperPortal.md](https://github.com/fastlane/fastlane/blob/master/spaceship/docs/DeveloperPortal.md "fastlane/spaceship/docs/DeveloperPortal.md") 46 | #### [从创建证书到上传到App Store](https://www.jianshu.com/p/db52889f20d0 "Fastlane从创建证书到上传到App Store") 47 | #### [记一次设置Fastlane支持苹果双重认证的过程](https://www.jianshu.com/p/665efd203259 "记一次设置Fastlane支持苹果双重认证的过程") https://www.jianshu.com/u/deffd9740b0b jcYang超仔 48 | *** 49 | 50 | 51 | 52 | ## 我 53 | #### Created by 程恒盛 on 2019/12/3. 54 | #### Copyright © 2019 力王. All rights reserved. 55 | #### QQ:2534550460@qq.com GitHub:https://github.com/HansenCCC tel:13767141841 56 | #### copy请标明出处,感谢 57 | 58 | ------------ 59 | 60 | ## 你还对这些感兴趣吗 61 | 62 | 1、[iOS实现HTML H5秒开、拦截请求替换资源、优化HTML加载速度][1] 63 | 64 | 2、[超级签名中最重要的一步:跳过双重认证,自动化脚本添加udid并下载描述文件(证书和bundleid不存在时,会自动创建)][2] 65 | 66 | 3、[脚本自动化批量修改ipa的icon、启动图、APP名称等(demo只修改icon,其他原理一样)、重签ipa][3] 67 | 68 | 4、[QMKKXProduct iOS技术分享][4] 69 | 70 | 71 | [1]: https://github.com/HansenCCC/KKQuickDraw 72 | [2]: https://github.com/HansenCCC/HSAddUdids 73 | [3]: https://github.com/HansenCCC/HSIPAReplaceIcon 74 | [4]: https://github.com/HansenCCC/QMKKXProduct 75 | 76 | -------------------------------------------------------------------------------- /fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # This file contains the fastlane.tools configuration 2 | # You can find the documentation at https://docs.fastlane.tools 3 | # 4 | # For a list of all available actions, check out 5 | # 6 | # https://docs.fastlane.tools/actions 7 | # 8 | # For a list of all available plugins, check out 9 | # 10 | # https://docs.fastlane.tools/plugins/available-plugins 11 | # 12 | 13 | # Uncomment the line if you want fastlane to automatically update itself 14 | # update_fastlane 15 | 16 | default_platform(:ios) 17 | 18 | platform :ios do 19 | desc "注册手机udid到指定AppId账号" 20 | lane :addUdids do |option| 21 | #接收到的所有参数 22 | puts "接收到的所有参数 #{option}" 23 | udidsStr = option[:udids] 24 | username = option[:appleid] 25 | if option.keys.size>0 26 | #字符串 -> 数组 27 | udidsArray = udidsStr.split(",") 28 | puts "需要添加的udid集合 #{udidsArray}" 29 | #数组 -> 字典(hash) 30 | udidsDic = {} 31 | for tmpUdid in udidsArray do 32 | tmpDic = {tmpUdid => tmpUdid} 33 | udidsDic = udidsDic.merge tmpDic 34 | end 35 | puts udidsDic 36 | #添加udid 37 | register_devices( 38 | devices:udidsDic, 39 | username: username, 40 | ) 41 | elsif 42 | puts "⚠️ ⚠️ ⚠️ udids集合为空 ⚠️ ⚠️ ⚠️" 43 | end 44 | end 45 | 46 | 47 | #sign使用参考https://docs.fastlane.tools/actions/sigh/ 48 | desc "下载provisioning_profile,不存在的bundleid和certificates自动新建并下载" 49 | lane :downloadsProfile do |option| 50 | #接收到的所有参数 51 | puts "接收到的所有参数 #{option}" 52 | bundleid = option[:bundleid] #bundleid 53 | username = option[:appleid] #Apple ID用户名 54 | name = option[:name] #Apple Developer Portal上使用的配置文件的名称 55 | cer = option[:cer] #0证书已经表示存在 1表示不存在 56 | mobileprovision = option[:mobileprovision] #0描述文件已经表示存在 1表示不存在 57 | #如果没有在Apple Developer创建证书的话,get_certificates会帮你自动创建证书 58 | puts "cer=#{cer}" 59 | puts "mobileprovision=#{mobileprovision}" 60 | if cer.to_i == 1 61 | get_certificates( 62 | username: username, 63 | #keychain_password: "123", 64 | ) 65 | else 66 | puts "certificates已存在,跳过创建步骤" 67 | end 68 | 69 | #在开发者账号创建appid(此方法待优化,比较耗时) 70 | if mobileprovision.to_i == 1 71 | produce( 72 | username:username, 73 | app_identifier: bundleid, 74 | app_name: bundleid, 75 | ) 76 | else 77 | puts "mobileprovision已存在,跳过创建步骤" 78 | end 79 | initError = "" 80 | if bundleid==nil 81 | initError = "⚠️ ⚠️ ⚠️ bundleid(bundleid)为空,请补充 ⚠️ ⚠️ ⚠️" 82 | elsif username==nil 83 | initError = "⚠️ ⚠️ ⚠️ appleid(Apple ID用户名)为空,请补充 ⚠️ ⚠️ ⚠️" 84 | elsif name==nil 85 | initError = "⚠️ ⚠️ ⚠️ name(配置文件名称)为空,请补充 ⚠️ ⚠️ ⚠️" 86 | else 87 | puts "参数获取正常" 88 | end 89 | if initError.length==0 90 | sigh( 91 | username:username, 92 | app_identifier: bundleid, 93 | force: true, 94 | provisioning_name: name, 95 | ignore_profiles_with_different_name: true, 96 | adhoc: true, 97 | ) 98 | else 99 | puts initError 100 | end 101 | end 102 | 103 | desc "单纯下载provisioning_profile,不存在的bundleid自动新建并下载(已废弃)" 104 | lane :adhoc_profile do |option| 105 | #接收到的所有参数 106 | puts "接收到的所有参数 #{option}" 107 | bundleid = option[:bundleid] #bundleid 108 | username = option[:appleid] #Apple ID用户名 109 | name = option[:name] #Apple Developer Portal上使用的配置文件的名称 110 | get_provisioning_profile( 111 | username:username, 112 | adhoc: true, 113 | force: true, 114 | filename: "name.mobileprovision", 115 | app_identifier: bundleid, 116 | ) 117 | end 118 | 119 | lane :test do |option| 120 | #接收到的所有参数 121 | puts "接收到的所有参数 #{option}" 122 | bundleid = option[:bundleid] #bundleid 123 | username = option[:appleid] #Apple ID用户名 124 | name = option[:name] #Apple Developer Portal上使用的配置文件的名称 125 | puts "请输入版本描述:" 126 | desc = STDIN.gets 127 | puts "开始打包 #{desc}" 128 | end 129 | 130 | 131 | 132 | before_all do |options| 133 | puts "🚀🚀🚀 fastlane 初始化准备执行 🚀🚀🚀" 134 | end 135 | 136 | before_each do |options| 137 | puts "🚀🚀🚀 lane #{options}初始化准备执行 🚀🚀🚀" 138 | end 139 | 140 | after_each do |options| 141 | puts "🚀🚀🚀 lane #{options}执行完成 🚀🚀🚀" 142 | end 143 | 144 | after_each do |options| 145 | puts "🚀🚀🚀 fastlane 完成执行 🚀🚀🚀" 146 | end 147 | 148 | error do |options| 149 | puts "⚠️ ⚠️ ⚠️ lane #{options}出现错误 ⚠️ ⚠️ ⚠️" 150 | end 151 | 152 | end 153 | -------------------------------------------------------------------------------- /add_udids.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | ####################################################### 5 | 6 | # addUdids.sh 7 | # 脚本添加udid 8 | # Created by 程恒盛 on 2019/12/3. 9 | # Copyright © 2019 力王工作室. All rights reserved. 10 | # QQ:2534550460@qq.com GitHub:https://github.com/HansenCCC tel:13767141841 11 | 12 | # 参考文档 13 | # https://docs.fastlane.tools/ fastlane官方文档 14 | # https://www.jianshu.com/p/1d63bfef1738 关于spaceship工具的简单了解 15 | # https://www.jianshu.com/p/19ae8cc865b0 fastlane使用说明书和处理关于开启两步验证如何全自动化问题 16 | # https://www.jianshu.com/p/2defceba2761 使用fastlane创建profile、添加设备、创建推送证书 以及上传蒲公英 17 | # https://blog.csdn.net/LiaoQuesg/article/details/101219984 搭建 超级签 详细攻略 18 | # https://www.jianshu.com/p/16e0d9b8e7ca Fastlane自动化打包---打包上传App Store Connect 19 | # https://github.com/fastlane/fastlane/blob/master/spaceship/docs/DeveloperPortal.md#example-data fastlane/spaceship/docs/DeveloperPortal.md 20 | # https://www.jianshu.com/p/db52889f20d0 Fastlane - 从创建证书到上传到App Store 21 | # https://www.jianshu.com/p/665efd203259 记一次设置Fastlane支持苹果双重认证的过程 22 | 23 | 24 | # 编译系统:苹果Mac 25 | # 编译系统版本:MacOS Catalina 10.15.1 26 | # 需要终端环境::fastlane、spaceship、lane、ruby、cocoapods 需要安装APP:Xcode 27 | 28 | ####################################################### 29 | #安装fastlane 30 | #sudo gem install fastlane -n /usr/local/bin 31 | #安装pry 32 | #sudo gem install -n /usr/local/bin sigh --pre 33 | 34 | starttime=$(date +%Y-%m-%d\ %H:%M:%S) 35 | echo "🚀 开始时间 $starttime 🚀" 36 | 37 | #bundleid 38 | export FASTLANE_BUNDLEID='' 39 | #mac开机密码 40 | export FASTLANE_MAC_PASSWORD='' 41 | #提供需要添加udid的账号 42 | export FASTLANE_APPLEID='' 43 | #关闭双重认证 需要手动添加 APP-SPECIFIC和session cookie 进入苹果官网生成的特殊密码APP-SPECIFIC https://appleid.apple.com/account/manage 44 | export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='' 45 | #appleid密码 46 | export FASTLANE_PASSWORD='' 47 | #执行fastlane spaceauth -u user@email.com,生成session cookie 48 | export FASTLANE_SESSION='' 49 | 50 | 51 | function findSuffixFile(){ 52 | for i in `ls -a *.$1` 53 | do 54 | echo "$1为后缀的文件存在" 55 | return 0 56 | done 57 | echo "$1为后缀的文件不存在" 58 | return 1 59 | } 60 | #判断是否存在后缀名为cer的文件 61 | CerSuffixFile=1 62 | if findSuffixFile 'cer' 63 | then 64 | CerSuffixFile=0 65 | fi 66 | #判断是否存在后缀名为mobileprovision的文件 67 | MobileprovisionSuffixFile=1 68 | if findSuffixFile 'mobileprovision' 69 | then 70 | MobileprovisionSuffixFile=0 71 | fi 72 | 73 | #code 74 | #解锁keychain,是其它工具可以访问证书 75 | security unlock-keychain -p ${FASTLANE_MAC_PASSWORD} ~/Library/Keychains/login.keychain 76 | #更新cocoapods 77 | #/usr/local/bin/pod update --verbose --no-repo-update 78 | 79 | #获取输入的所有的udid 80 | udids=$* 81 | #echo $udids 82 | udidsStr="" 83 | for udid in ${udids} 84 | do 85 | echo "正在添加的udid:${udid}" 86 | udidsStr+="${udid}," 87 | done 88 | echo "需要添加的udid集合${udidsStr}" 89 | #添加udid 测试案例fastlane addUdids udids:"123,123" appleid:"2534550460@qq.com" 90 | echo "fastlane addUdids udids:${udidsStr} appleid:${FASTLANE_APPLEID}" 91 | fastlane addUdids udids:${udidsStr} appleid:${FASTLANE_APPLEID} 92 | 93 | #添加udid成功,下载mobileprovision和certificates。当应用、mobileprovision、certificates、bundleid和不存在时,自动创建 0已经表示存在 1表示不存在 94 | echo "fastlane downloadsProfile bundleid:${FASTLANE_BUNDLEID} appleid:${FASTLANE_APPLEID} name:${FASTLANE_BUNDLEID} cer:${CerSuffixFile} mobileprovision:${MobileprovisionSuffixFile}" 95 | fastlane downloadsProfile bundleid:${FASTLANE_BUNDLEID} appleid:${FASTLANE_APPLEID} name:${FASTLANE_BUNDLEID} cer:${CerSuffixFile} mobileprovision:${MobileprovisionSuffixFile} 96 | 97 | endtime=$(date +%Y-%m-%d\ %H:%M:%S) 98 | echo "🚀 开始时间 $starttime 🚀" 99 | echo "🚀 结束时间 $endtime 🚀" 100 | #脚本过度文档 101 | #desc "注册手机udid到指定AppId账号" 102 | #lane :addUdids do |option| 103 | # #接收到的所有参数 104 | # puts "接收到的所有参数 #{option}" 105 | # udidsStr = option[:udids] 106 | # if option.keys.size>0 107 | # #字符串 -> 数组 108 | # udidsArray = udidsStr.split(",") 109 | # puts "需要添加的udid集合 #{udidsArray}" 110 | # #数组 -> 字典(hash) 111 | # udidsDic = {} 112 | # for tmpUdid in udidsArray do 113 | # tmpDic = {tmpUdid => tmpUdid} 114 | # udidsDic = udidsDic.merge tmpDic 115 | # end 116 | # puts udidsDic 117 | # #添加udid 118 | # register_devices( 119 | # devices:udidsDic, 120 | # username: "zhishi188@sina.cn" 121 | # #username: "2534550460@qq.com" 122 | # ) 123 | # elsif 124 | # puts "⚠️ ⚠️ ⚠️ udids集合为空 ⚠️ ⚠️ ⚠️" 125 | # end 126 | #end 127 | # 128 | # before_all do |options| 129 | # puts "🚀🚀🚀 fastlane 初始化准备执行 🚀🚀🚀" 130 | # end 131 | # 132 | # before_each do |options| 133 | # puts "🚀🚀🚀 lane #{options}初始化准备执行 🚀🚀🚀" 134 | # end 135 | # 136 | # after_each do |options| 137 | # puts "🚀🚀🚀 lane #{options}执行完成 🚀🚀🚀" 138 | # end 139 | # 140 | # after_each do |options| 141 | # puts "🚀🚀🚀 fastlane 完成执行 🚀🚀🚀" 142 | # end 143 | # 144 | # error do |options| 145 | # puts "⚠️ ⚠️ ⚠️ lane #{options}出现错误 ⚠️ ⚠️ ⚠️" 146 | # end 147 | 148 | 149 | 150 | 151 | #################################################################### 152 | 153 | #desc "注册设备" 154 | #lane :add_devices do 155 | # register_devices( 156 | # #devices_file: "./devices.txt", # 指定包含设备信息的文件路径,文件具体格式参考https://devimages.apple.com.edgekey.net/downloads/devices/Multiple-Upload-Samples.zip 157 | # devices: { 158 | # "Luka iPhone 6" => "1234567890123456789012345678901234567890", 159 | # "Felix iPad Air 2" => "abcdefghijklmnopqrstvuwxyzabcdefghijklmn" 160 | # }, # 指定要注册的设备列表,格式为:设备名称 => UDID 161 | # username: "xx@apple.com" # 设置Apple ID 162 | # ) 163 | #end 164 | 165 | #Appfile: 存储有关开发者账号相关信息 166 | # 167 | #Fastfile: 核心文件,主要用于 命令行调用和处理具体的流程,lane相对于一个方法或者函数 168 | # 169 | #Deliverfile: deliver工具的配置文件 170 | #metadata: 元数据文件夹 171 | # 172 | #Matchfile: Match操作对应的配置文件 173 | # 174 | #screenshots: 截图文件夹 175 | 176 | 177 | 178 | 179 | #关于开启两步验证如何全自动化问题 180 | #1.访问 https://appleid.apple.com/account/manage 181 | #2.生成一个 APP-SPECIFIC PASSWORDS,保留生成的特殊密码 182 | #3.使用环境变量提供这个密码给fastlane: FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 183 | #4.执行fastlane spaceauth -u user@email.com,生成session cookie。 184 | #5.通过环境变量FASTLANE_SESSION 提供session cookies。 185 | # 186 | #配置地方: 187 | # 188 | #打包机:~/.bash_profile 中,配置 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 和 FASTLANE_SESSION 189 | # 190 | #例如: 191 | #export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD='edwq-upll-vtpt-mkil' 192 | #export FASTLANE_SESSION='—\n- !ruby/object:HTTP::Cookie\n name: DES5612c57fe9305b07801a04a701978047c\n value: HSARMTKNSRVXWFlayJcyPJz1OsFDHeKrQRWoZIIItWMLqqur7wwChn2OFd5JKkjTlGs3FXQxc5Dh94xDMpd35T96YDp34rWOuQX04NnxBDmPdAOOi3fkVlOKkOFzlS7gOJG9r0B7SRVX\n domain: idmsa.apple.com\n for_domain: true\n path: "/"\n secure: true\n httponly: true\n expires: \n max_age: 2592000\n created_at: 2019-11-28 16:05:18.278616000 +08:00\n accessed_at: 2019-12-03 10:38:39.970422000 +08:00\n- !ruby/object:HTTP::Cookie\n name: myacinfo\n value: DAWTKNV2d60f519deb048710b61ff5ad231d487f5a542260a0036cc8ec44abb26dd218fa03fb71d4bfef0da574e3f2bb9d566183e1e6ca390593230258ba06ce84eaf399f07d6eda6ef5682bee77ffb78448543ca11ea41e43336e5243d255199e5e1b03c719f3918f0075c1399b120d9e7d12bd10a117f0ee7df1bbc5936993f54322a9b0abed258e30d3c9a69a582d2406d373ca360ac618cf1bc3bd1f1d7b3ea6ddc74ec6d637a24893f9851819fe8d40dc94fd47b82752829ebea292fc5830c29f6cbbdc64f3de575f405712e9d78ef58c6e6fd098c89453228bb22f0f4d657c14f4f49b4dbc99307c6ccfb680374b7298f50e3cb58bde7f3b18e2650afdf6b5b12e35653835393865613666363931646235306332373564666362663161343438636563633536633965MVRYV2\n domain: apple.com\n for_domain: true\n path: "/"\n secure: true\n httponly: true\n expires: \n max_age: \n created_at: 2019-12-03 10:38:40.883705000 +08:00\n accessed_at: 2019-12-03 10:38:40.884364000 +08:00\n- !ruby/object:HTTP::Cookie\n name: dqsid\n value: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NzUzNDA3MzIsImp0aSI6Im1HNU1Wc0hYWENkQ2FzVmxCcm1qVkEifQ.NOFMQJjY4gZXAAhfRSDWHbKPyERqDte7boJL9Kx_XCM\n domain: appstoreconnect.apple.com\n for_domain: false\n path: "/"\n secure: true\n httponly: true\n expires: \n max_age: 1799\n created_at: &1 2019-12-03 10:38:41.912579000 +08:00\n accessed_at: *1\n' 193 | 194 | 195 | #fastlane sigh manage #列表出所有provisioning profiles 196 | #fastlane sigh manage -e #删除无效provisioning profiles 197 | 198 | #添加凭证 199 | #fastlane fastlane-credentials add --username zhishi188@sina.cn 200 | #删除凭证 201 | #fastlane fastlane-credentials remove --username zhishi188@sina.cn 202 | --------------------------------------------------------------------------------