我正在尝试根据指令https://github.com/Paytm-Payments/Paytm_iOS_App_Kit/tree/master/Swift/BitCodeDisabled/PaytmNativeSDK
将第三方应用集成到项目中我在构建中看到以下错误
使用Swift 4.2.1编译的模块不能被Swift 5.0导入 编译器
我已经尝试过工具链https://medium.com/xcblog/switching-swift-versions-inside-xcode-using-toolchains-755b28831c43 错误更改为原因:库版本不兼容:PaytmNativeSDK需要版本1.0.0或更高版本,但libswiftCore.dylib提供版本0.0.0
如何设置XCode或库以使其工作。供应商没有机会为Swift 5.0更新该库并使其在POD上可用。
答案 0 :(得分:8)
对于迦太基用户::升级到Xcode 10.2后,我遇到了我以前使用迦太基导入的相同问题。
我通过重建框架来解决它:
carthage update --no-use-binaries --platform iOS
答案 1 :(得分:4)
正确的解决方案是下载Xcode 10.1,然后等待Apple补丁程序修复错误。
不要在修复第三方错误上浪费时间。
我的项目的问题是我们正在使用Alamofire,但迦太基无法对其进行更新。
答案 2 :(得分:2)
我想使用Swift 4.2(Xcode 10.2仍应支持,我已经在Swift语言版本中对其进行了设置),但是它仍然给我关于Swift 5.0编译器的错误。因此,在尝试清除了诸如构建文件夹,派生数据之类的所有内容之后,我得出的结论是它不适用于Xcode 10.2。
我恢复到Xcode 10.1,可以下载here。这可行。因此,在Apple修复此错误之前,我不得不继续使用Xcode 10.1。
答案 3 :(得分:1)
如果您的项目中仍然有使用4.2编译器构建的外部库,而新的Xcode会尝试在5.0编译器中构建项目,则会发生这种情况。
就我而言,我很少使用Carthage导入库。幸运的是,过去几天,我使用的库已经发布了更新,使其与Swift 5.0编译器兼容。如果那些外部库尚未对其进行更新以支持Swift 5.0,那么您可能暂时不走运。
在途中,您可能仍然会遇到一些问题,下面是一些避免其他问题的最佳做法。
希望它能起作用。
答案 4 :(得分:1)
框架的开发人员需要提供一个更新,该更新内置于Xcode 10.2中。
针对框架开发人员的说明:
即使您使用Xcode 10.2或CI使用的默认版本创建了框架,您的用户仍可能会遇到这样的错误。您应该确保Xcode 10.2是您的默认命令行工具。您可以使用命令xcodebuild -version
在终端中对其进行检查。
可以在Xcode -> Preferences -> Locations -> Command Line Tools
中调整默认版本。
答案 5 :(得分:0)
我的迦太基问题与xcode阶段有关,该阶段将二进制文件复制到 “迦太基复制框架”阶段。
对于https://stackoverflow.com/a/55362536/721929中评论的解决方案,我有一个稍微不同的解决方案,因为该解决方案在某些情况下还会更新依赖项版本。
因此,我刚刚执行了“迦太基构建”。我还为Carthage提供了一个缓存清理工具,以修复子任务中可能出现的错误(在我的情况下, git clone带有“退出代码1” 失败)
rm -rf ~/Library/Caches/org.carthage.CarthageKit
carthage build --no-use-binaries --platform iOS --verbose
答案 6 :(得分:0)
此库的提供者应使用BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
(在 Build Settings-> Build Options 中的Xcode 11.3中提供)进行重建。已经要求这样做in the corresponding GitHub issue。之后, PaytmNativeSDK 将与每个下一个Swift版本兼容。
答案 7 :(得分:0)