我正在尝试使用Carthage将Realm安装到我的项目中。它以前工作但切换到新的MacBook Pro(15英寸,2018年,TouchBar)后,我收到以下错误,
carthage update --no-use-binaries --platform iOS
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v3.13.0"
*** xcodebuild output can be found in /var/folders/m4/1z0tvn6d67q2rqwcjvndy80m0000gn/T/carthage-xcodebuild.2vfx4v.log
*** Building scheme "Realm" in Realm.xcworkspace
Could not find any available simulators for iOS
我尝试卸载并重新安装Carthage(0.31.2)并按照这些答案中给出的步骤,
xcrun simctl list devices --json
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPad Pro",
"udid" : "94790E33-EA0A-40B4-BA0A-19CC8D976A6F",
"availabilityError" : ""
}
调试迦太基
(lldb) po devices[latestOSName]?.first { $0.isAvailable }
▿ Optional<Simulator>
▿ some : Simulator
- isAvailable : true
- name : "iPhone 5s"
- udid : 87A9C887-034C-44A8-8F30-C90AF9ACCBCC
(lldb) po sdk.platform
XCDBLD.Platform.iOS
(lldb) po sdk.platform.rawValue
"iOS"
看起来这个问题仍然存在。有没有办法解决这个问题,以便在最新的Xcode版本上工作?
也许您可以进行一些检查以缩小范围:
迦太基版
carthage version
应该输出
0.31.2
安装了多个Xcode
xcode-select -p
应该给
/Applications/Xcode.app/Contents/Developer
用于标准安装。
模拟器
xcrun simctl list devices --json
这应该输出如下列表:
{
"devices" : {
"iOS 12.1" : [
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPhone 5s",
"udid" : "1A6959A0-C10F-474B-96C5-7E8955FBDD80",
"availabilityError" : ""
},
...
如果没有模拟器使用Xcode <Window / Devices and Simulators>添加一个模拟器。
如果有条目,请检查是否有一个'isAvailable'条目,其中true
为值:
"isAvailable" : true,
如果没有,请检查Xcode安装。
删除缓存
人们也可以尝试
和使用rm -rf
一样,你必须要小心:
rm -rf ~/Library/Caches/org.carthage.CarthageKit
rm -rf <your project folder>/Carthage
xcrun simctl delete unavailable
然后再试一次:
carthage update --no-use-binaries --platform iOS
调试迦太基
关于Carthage的好处是它是开源的,甚至用Swift编写。
所以要调试它我们可以:
然后:
git clone https://github.com/Carthage/Carthage.git
cd Carthage
git checkout 0.31.2
make bootstrap
open Carthage.xcworkspace
之后我们需要输入命令行参数。为此:
update --no-use-binaries --platform iOS
最后:
selectAvailableSimulator
方法中设置断点然后你可以调试出错的地方。
如果一切都很好,它看起来像这样:
如果从Xcode运行时没有发生错误,那么让它在没有断点的情况下完全在Xcode中运行,并给它一些时间来进行编译。
如果从Xcode项目成功更新了carthage,则按照此处所述卸载当前的carthage安装。
How to uninstall Carthage from OS X?
然后在终端中转到Makefile所在的Carthage项目文件夹并输入:
'make install'
之后,您可以再次从命令行尝试它。它应该工作!
我解决了同样的问题,将Carthage升级到版本0.32.0:
brew upgrade carthage
PS:将Xcode更新到10.2版后出现问题
尝试安装以前版本的carthage
brew install carthage 0.30.1
我用以下方法解决了将Carthage 0.31.2升级到0.33.0的同样问题:
brew upgrade carthage
PS:将Xcode更新到10.2版后出现问题