iOS——Xcode默认路径(Fastlane打包)

最近在使用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个小时,然后悄悄的回家了,

到家已是2点多……
坚持原创技术分享,您的支持将鼓励我继续创作!