目前我在Objective-C项目中使用Charts pod,所以我今天必须在Xcode 8.1中打开它,当然,我收到了这条消息:
如果这是我的代码,这不会有问题,但我们在这里谈论的是pods。那么,处理此警告并切换到此pod的Swift 3语法的正确方法是什么?
我尝试过:
我已经运行了pod update命令,并希望将其更新到最新版本......但是,当我打开Xcode时,我收到相同的消息。这是我的Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.2'
pod 'Charts', '~> 3.0'
use_frameworks!
target 'drivingCOACH' do
pod 'Charts', '~> 3.0'
end
答案 0 :(得分:1)
“图表”窗格记录在https://cocoapods.org/pods/Charts上。 当前版本(在提问时)使用的是Swift 3.0。因此,在使用它时,所有依赖项也必须使用Swift 3.0(在使用Frameworks时,不能混合使用不同Swift版本的依赖项,这是当前的强制要求)。
您可以手动更改构建设置,以指定每个pod目标适用于Swift 3.0(通过将“使用传统Swift”值设置为NO)。但是因为您的项目是在Objective-C中,所以每次运行pod install
时最终都可以执行此操作。
为了避免这种麻烦,您可以扩展Podfile的安装脚本以包含这些行,并且它将在下一个pod deintegrate && 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
当您决定将一些Swift代码集成到您的应用程序时,将不再需要这些行,因为CocoaPods将匹配Swift版本的依赖项与您正在使用的内容。
此外,如果您遇到一些缓存问题,则可能需要删除您的Derived Data文件夹(默认情况下为~/Library/Developer/Xcode/DerivedData
),而Xcode会关闭。