玩了三天,自己项目的坑和shell 打包等等方式,最后终于解决了打包上传的问题,现在用最暴力的方式来说说FASTLANE。
一、 安装fastlane
在安装前有几个准备步骤:
安装最新的Xcode命令行工具: xcode-select --install (如果安装了,控制台是会报错误的:xcode-select: error: command line tools are already installed, use "Software Update" to install updates) ,没有安装的就按照提示走,安装了的可以忽略
二、安装Fastlane
sudo gem install fastlane -NV 或是 brew cask install fastlane 我这里使用gem安装的 (这几部都是按照官网介绍安装的路子走,下面的问题就比较注意了)
控制台会报出:bad response Not Found404(https://gems.ruby-china.org/specs.4.8.gz) 其实这个问题的处理方式是因为镜像不支持,下面 按照我的步骤来处理
#查看gem源 gem sources
# 查看源 是否是https://gems.ruby-china.org/ 如果是那么处理方式为:gem sources --remove https://gems.ruby-china.org/
然后 gem sources -a https://gems.ruby-china.com 然后在执行 gem sources 查看是否修改成功。如果你问为什么要这么处理,
请看下图:
然后再执行:sudo gem install fastlane -NV 这个时候,就开始下载安装了,假如过程中出现了ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/commander , 这是权限的问题 执行sudo gem install -n /usr/local/bin fastlane
三、开始你的Fastlane
这个时候,我们所需要搭建的环境就已经成功的搭建出来了,现在第一步做的事情就是cd 到你当前的文件目录:/Users/xxx/xx(工程路径)
执行 fastlane init
然后控制台就开始了FASTLANE的配置啦,这个时候已经执行了一般的路子... 耐心的下去...
```
1. 📸 Automate screenshots
2. 👩✈️ Automate beta distribution to TestFlight (自动testfilght型配置)
3. 🚀 Automate App Store distribution (自动发布型配置)
4. 🛠 Manual setup - manually setup your project to automate your (需要手动配置内容)
```
我选择的方式是 直接传入App Store ,so 3 (其他方式也是可以玩的 2 TestFlight FASTLANE会在文件里面配置成testflight的代码,4 是自定义,需要你手动的自己配置 然后运行的时候执行你所需要执行的配置,当然这个配置文件是能修改的,后续会讲到, 我们继续往下)
然后,在控制台会提示你输入用户id(Apple 开发者账号)
输入后会提示你 Manage app metadata (这个时候,下载的就是你在开发者里面这个APP的资料)
之后会生成文件
四 、 配置文件
···
default_platform(:ios)
platform :ios do
before_all do
ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = "xxxxxxx" (Apple 双重验证)
cocoapods(use_bundle_exec:FALSE)
end
desc "Push a new release build to the App Store"
lane :release do
increment_build_number(xcodeproj: "xxx.xcodeproj")
build_app(workspace: "xxxxx.xcworkspace", scheme: "xxxxxl")
upload_to_app_store(force:true)
end
end
···
配置文件(主要是Fastflie,因为楼主也是初次玩这个东西,现在暂时只介绍这个 )
当然,当你执行的时候,FASTLANE 会报一个错误就是遵循Apple开发里面自动递增版本号的设置
这个时候 我们再执行 FASTLANE 就能开启自动打包的路子了,当然 控制台报错了的时候,就需要自己去解决之后再打包了,楼主因为项目结构的问题 导致shell 和 FASTLANE 出现打包失败的情况,建议大家在做项目架构的时候 ,第三方的sdk 是不要放在工程的一级目录的。OK 暂时就总结这么多,这些就是目前打包的情况
网友评论