Pod更新后编译Swift 3.0.1项目时出错

时间:2017-05-13 17:38:39

标签: ios xcode swift3 frameworks alamofire

我最近使用XCode Swift Migrator将我的Swift 2.3 SDK项目迁移到Swift 3。执行此操作后,我更新了我的pod依赖项( AlamoFire - 4.4.0 SwiftyJSON - 3.1.4 )以使用它们各自的Swift 3版本。

不幸的是,在此之后,我的项目没有建立。我收到以下错误:

  

使用Swift 2.3编译的模块无法在Swift 3.0.2中导入:   ... / Alamofire.framework /模块/ Alamofire.swiftmodule / x86_64.swiftmodule

我已经设置了所有" 使用Legacy Swift语言版本"到" "但仍然没有。

我"清洁&建立"项目和"关闭&重新打开"工作空间无济于事。

我还有什么可能遗失的?我该如何解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:1)

  1. 从pod文件中删除pod。
  2. 退出Xcode。
  3. 尝试使用 func parseJSONFromData(_ jsonData: Data?) -> [String : AnyObject]? { if let data = jsonData { do { let jsonDictionary = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String : AnyObject]//Parses data into a dictionary return jsonDictionary } catch let error as NSError { print("error processing json data: \(error.localizedDescription)") } } return nil } } 命令卸载它们。这将更新您的项目并正确删除所有现有的pod。
  4. 打开Xcode并清理你的项目(并最终尝试构建一次)并确保pod已经消失。
  5. 再次将广告连播添加到您的广告连播文件并再次运行pod install

    这是可以做到的一般修复。它对我有用了好几次。

答案 1 :(得分:0)

尝试在所有pod之后在pod文件中添加此内容并再次运行pod install ...

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '3.0'
        end
    end
end