使用Swift 3.0编译的模块无法在Swift 3.0.1中导入: Modules/SwiftyJSON.swiftmodule/arm64.swiftmodule
使用Swift 3.0编译的模块无法在Swift 3.0.1中导入: Modules/SwiftyJSON.swiftmodule/arm64.swiftmodule
SwiftyJson正在被Carthage预编译下载。预编译下载的版本适用于Swift 3.0,这会导致编译器报错版本不正确。使用以下命令:
carthage update --platform iOS --no-use-binaries
使用Carthage中的SwiftyJson(以及其他所有框架)将会使用本地版本的Swift(3.0.1)进行本地编译,编译器将不会再抱怨。
从DerivedData中清除应用程序缓存,然后重新构建。这样可能会修复错误。
DerivedData的路径如下:
~/Library/Developer/Xcode/DerivedData/
请确保已将新的XCode 8.1 GM包放置在您的应用程序文件夹中。我们在更新依赖项时遇到了这个问题,其中一位同事没有替换应用程序文件夹中的旧版XCode 8.0(8.1 GM正在桌面上运行)。
请确保在终端中运行以下命令:xcrun swift -version
返回 Apple Swift version 3.0.1
。
carthage update --platform iOS --no-use-binaries
,但仍然无法正常工作。我已经清理了我的项目并重新启动了 Xcode,但仍然出现错误。还有其他我可以尝试的方法吗? - Clifton LabrumApple Swift版本3.0.1(swiftlang-800.0.58.6 clang-800.0.42.1)目标:x86_64-apple-macosx10.9
。 - Clifton Labrum我在终端上更新默认的Xcode
到新版本,这对我很有效。
步骤1:使用以下命令在终端上将Xcode
版本更新为最新版本。 参考链接
sudo xcode-select -switch <path/to/>Xcode.app
步骤二:现在尝试执行carthage update命令。
carthage update --platform iOS
最新的更新如下:
Carthage在2017年2月27日发布了0.20版本。
现在,只有当预构建二进制文件兼容时,Carthage才会使用预构建二进制文件。
也就是说,您不再需要使用 --no-use-binaries
来避免不兼容的预构建框架。
因此,请确保您的Carthage版本大于0.20
,然后只需执行以下操作:
carthage update --platform iOS
carthage update --platform iOS --no-use-binaries
- anoop4real--no-use-binaries
,这对您不起作用吗?Carthage 应该能够检测二进制文件是否与您的编译器版本兼容。如果不兼容,它应该自动放弃已下载的二进制文件并在本地构建框架。 - kanekin就像@zirinisp所说的:
carthage update --platform iOS --no-use-binaries
xcrun swift -version
查看Swift版本Xcode->preferences->locations
清除派生数据和档案数据,最重要的是将命令行工具更改为"Xcode 8.1
"xcrun swift -version
,您可以看到Swift版本是3.0.1Use Legacy Swift Language Version = NO
希望这能帮助到您
将 Xcode 的 beta/GM 版本移动到 /Applications 文件夹并将其命名为 Xcode-beta
在终端中运行以下命令检查输出:
xcrun swift --version
该命令的输出应与您想要编译应用程序的 Swift 版本匹配,因为 Carthage 使用此命令的输出来确定本地的 Swift 版本。
通过运行以下命令在终端上更新 Xcode 版本至最新版本:
sudo xcode-select -s /Applications/Xcode-beta.app/
通过运行以下命令构建 iOS 库并防止 Carthage 下载现有(但不兼容)的预编译二进制文件:
carthage update --platform iOS --no-use-binaries
清理并构建
我在使用库XCTest_Gherkin
时遇到了完全相同的问题,下面是我的解决方法:
Product
-> Scheme
-> XCTest-Gherkin
Product
-> Build
希望能帮到你。我是使用Cocoapods。
$(inherited)
$(PROJECT_DIR)/Carthage/Build/iOS