最近在使用fastlane的时候,发现踩了不少坑,但是大部分由于时间的原因没能即使记录下来…..
最近在使用fastlane的时候,发现踩了不少坑,但是大部分由于时间的原因没能即使记录下来
这次简单的记录了一下前两天遇到的一个坑
事情是这样的,由于公司的一个测试机不知道被谁脑残似的点点了升级,于是系统直接到11.3,从而导致我的Xcode版本不支持对应真机的调试,
于是想着网上找对应的真机包,发现并没有找到,可能是我搜索能力不行,如果你有最新的,多多分享哦。
然后我就开始升级Xcode,但是发现升级Xcode又要升级系统,麻蛋。
- 于是就有了下面的一路
升级系统
升级Xcode 9.3
编译一下,发现报错,报错的位置是WCDB,
于是在官方群里问了一下,发现是WCDB的一个大坑,于是github有人提出了两种方式
在 Xcode 9.3 来 Swift 4.0.3 的方法,该方法可以临时解决 WCDB 的问题。
1. 下载并安装 Swift 4.0.3 的 toolchain: https://swift.org/builds/swift-4.0.3-release/xcode/swift-4.0.3-RELEASE/swift-4.0.3-RELEASE-osx.pkg
2. 在 Xcode 中选择 Preferences -> Components -> Toolchains,选择 Swift 4.0.3 Release
3. Clean 并重编你的 Xcode 工程
综合考虑之后,我暂时选择放弃的那台11.3的真机调试功能,只能通过扫描安装
- 于是又有了下面的一路
下载并安装Xcode 9.2
编译项目
…..
就在下班的时候,准备打包,没过几分钟就发现,变态的fastlane报错了(这是要闹哪一出,我都打算打完包直接闪人的)
具体错误如下:
+-----------------------+---------+--------+
| Used plugins |
+-----------------------+---------+--------+
| Plugin | Version | Action |
+-----------------------+---------+--------+
| fastlane-plugin-pgyer | 0.2.1 | pgyer |
+-----------------------+---------+--------+
[14:34:34]: ----------------------------------------
[14:34:34]: --- Step: Verifying fastlane version ---
[14:34:34]: ----------------------------------------
[14:34:34]: Your fastlane version 2.89.0 matches the minimum requirement of 2.89.0 ✅
[14:34:34]: ------------------------------
[14:34:34]: --- Step: default_platform ---
[14:34:34]: ------------------------------
[14:34:34]: Driving the lane 'ios development_build' 🚀
[14:34:34]: 开始打development ipa
[14:34:34]: ------------------------------
[14:34:34]: --- Step: get_build_number ---
[14:34:34]: ------------------------------
。。。。。。
[14:34:34]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
/Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane_core/lib/fastlane_core/ui/interface.rb:145:in `shell_error!': [!] Exit status of command 'cd /Users/icocos/Desktop/\积\木\塔\科\技/\源\码/Fiction_iOS && agvtool what-version -terse' was 1 instead of 0. (FastlaneCore::Interface::FastlaneShellError)
xcode-select: error: tool 'agvtool' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/helper/sh_helper.rb:80:in `sh_control_output'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/helper/sh_helper.rb:12:in `sh'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/actions/get_build_number.rb:28:in `run'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:257:in `block (2 levels) in execute_action'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:236:in `block in execute_action'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:231:in `chdir'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:231:in `execute_action'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/fast_file.rb:148:in `method_missing'
from Fastfile:10:in `updateProjectBuildNumber'
from Fastfile:45:in `block (2 levels) in parsing_binding'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/lane.rb:33:in `call'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/lane_manager.rb:57:in `cruise_lane'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
from /Users/icocos/.rvm/gems/ruby-2.4.1@global/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
from /Users/icocos/.rvm/gems/ruby-2.4.1@global/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
from /Users/icocos/.rvm/gems/ruby-2.4.1@global/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:75:in `run!'
from /Users/icocos/.rvm/gems/ruby-2.4.1@global/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/commands_generator.rb:333:in `run'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/commands_generator.rb:42:in `start'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/fastlane/lib/fastlane/cli_tools_distributor.rb:107:in `take_off'
from /Users/icocos/.rvm/gems/ruby-2.4.1/gems/fastlane-2.89.0/bin/fastlane:20:in `<top (required)>'
from /Users/icocos/.rvm/gems/ruby-2.4.1/bin/fastlane:23:in `load'
from /Users/icocos/.rvm/gems/ruby-2.4.1/bin/fastlane:23:in `<main>'
from /Users/icocos/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `eval'
from /Users/icocos/.rvm/gems/ruby-2.4.1/bin/ruby_executable_hooks:15:in `<main>'
xcode-select: error: tool 'agvtool' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
我尝试着杀进程,重启电脑,升级fastlane,然而并没有什么卵用
于是网上到处寻找答案:
按照stack中的方案一,卸载fastlane重新安装,捣鼓了一会打算重新打包的时候,还是这个错,我就很奇怪了,
然后,我整理了一下思路
- Xcode9.2直接升级到9.3,升级和运行fasrlane,再次安装9.2,于是有了两个Xcode,当时我就蒙圈了
就根据具体问题网上找到了一个重置默认Xcode的方式:
sudo xcode-select --switch /Applications/Xcode\ 9.2.app/Contents/Developer
以上错误是因为安装了 xcode , 但并不是系统默认的位置, 所以可以使用以下命令把 xcode 的路径修改为你安装的位置即可
switch后面部分就是安装的 xcode 的自定义路径.
再次运行fastlane,发现成功了,当时我真想扇自己两耳光.
这问题貌似并没有撒难度,只是当时急着上线,有点脑残了,耗费了我将近4个小时,然后悄悄的回家了,