共同开发环境
共同开发环境,减少因环境不同导致文件抵触。
具体完成:设备rbenv,处理ruby环境;设备Bundler,处理cocoapods、cocoapods插件、fastlane等。
环境建立者需求装备以下内容:shelly
设备 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrgiteeew/iAPPnstall/mastegithubr/app id注册ishell什么意思nstall.sh)"
设备 rbenv
brew install rbenv ruby-build rbenv-vars
放到你的 Shell 装备文件里面
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
设备和设置项目的 Ruby 环境
rbenv install 2.7.1
rbenv local 2.7.1
rbenv 会帮咱们建立 一个叫作.ruby-version 的文件
其他人git指令员实施以下脚本:
# 在rbenv 下设备特定版别的 Ruby 开发环境
rushell是什么意思中文by_version=`cat .ruby-version`
if [[ ! -d "$HOME/.rbenv/versions/$rubshelly-lany_version" ]]; then
rbenv instashell什么意思ll $ruby_version;
fi
# 经过 RubyGems 设备 Bunldegithub中文官网网页r
gem install bundler
# 运用 Bundler 设备 CoappstorecoaPods 和 fastlane 等依托包
bundle install
# 设备各个 Pod
bundle exec pod install
至此共同git指令的HTTP环境建立结束,对于xcode,只要不是不同很大就行,保持在一个大版别中就行,如:XCode12
命名该脚本为:setup.sh
装备fastlane
Gemfile 中增加:
# frozen_string_literal: true
source "https://rubygems.ohttp://www.baidu.comrg"
gem 'cocoapods', '1.10.appearance1'
# 自动布置
gem 'fastlane', '2.shell指令179.0'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)
再次实施上述apple id密码重置脚本 setup.sh
有用lane
实施,创建自定义Fastlane文件
bundleHTTP exec fastlane init
fastlane 实施时,比较困难的是证书装备。
运用mach来处理证书
首先appearance,在github或许其他giapple官网t平台,新建一个私有仓库。
desc "拉取证书"
lanhttps和http的差异e :mach_pp do
# 证书处理
match(
git_url: "https://github.com/xxx/xxx.git",
type: "adhoc" ,
app_identifier:["com.xxxgitlab.xxx","comapple pay.xxx.xxx.push"http协议],
username:"xxx@163.comgitee",
team_id: "xxx"
)
match(
git_url: "https://github.com/xxx/xxx.git",
tyapp id注册pe: "appstore" ,#can be appstore,adhoc,http 302 development,entehttps和http的差异rprise
app_identifier:["com.xxx.xxx","com.xxx.xxx.push"],
username:"xxx@163.com",
team_id: "xxx"
)
eapplend
填入以上信息:git_url、type、app_identifier、username、team_id
其间:type分为adhoc、appstore
gym 打包
desc "发正式包到appstore"
lane :ipa2apple do
# gym用来编译ipa
gym(
scheme: 'XXX',
configuration: "http://192.168.1.1登录Release",
export_method: "app-storappstoree", #shell指令 指定打包办法
xchttp://www.baidu.comargs: "-allowProvisioningUpdates",
archive_path: 'approve../appstore',
output_directory: './aappstoreppstore',
output_name: 'XXX.ipa'
)
end
Pluginfile 处理插件
设备fir插件
fastlane add_plugin fir_cli
运用
firAPPim(firim_api_token: "56d42c7266586d43dccad86730555c78") # token 在fir 上查看。
上传符号表
设备firebase插http代理件
fastlane add_plugigitin firebase_app_distribution
运用
# fir 的 release 包 Crasappstoreh report symbols
desc 'Upload symbols to Crashlytics for Release app'
lane :upload_symbols_to_crashlytics_release do
upload_syapple paymbols_toapple tv_crashlytics(
dsym_patapple watchh: "./fishellfishr_release/xxx.app.dSYM.zip",
gsp_path:https和http的差异 "application./xxx/GoogleService-Info_Beta.plist",
api_token: ENV["giti轮胎是什么品牌FIREBASE_API_TOKEN"]
)
end
其他
desc "准备工作 install"
lane :ready do
# 拉代码
git_pull
# 全局变量
time = Time.new
# build 号
build_number = time.strftime("%Y%m%d%H%M%S")
increment_build_number({
build_number: build_number
})
git_commhttpclientit(path:".", message:"[robot][auto build to #{build_number}]")
sh 'git push orishell指令gin main'
end
注意事项
-
运用undler东西处理后,今后实施pod 需求在前边加上 bundle exec
-
sync_code_signing指令,其实是match指令的另外一种写法
-
build_app指令其实是gym的别名
-
fastlane 常用的action以及参数 /post/684490…
-
zsh: permission denied问题的解决办法 sudo chmod u+x *app store.sh
-
sudo操作,如果遇到不明原因的过错,可能是权限问题,运用chmod 777 途径 测验解决