正在转换为 Xcode 9 - pod 框架未出现以进行转换?

Converting to Xcode 9 - pod framework not showing up for conversion?

好的,在 Xcode 9 中让特定的 pod 工作有一些困难。这是一个大问题,我不知道该怎么办 - 问题是 https://github.com/tinypass/piano-sdk-for-ios 是最后一个写在 Swift 3.1 和 Xcode 9 只导入 Swift 3.2.

将其他所有内容转换为 Swift 4 -

后出现此错误

因此,在查看其他答案后,我再次在 Xcode 8 中打开了该项目,因为根据我的理解,它可以转换为 Swift 3.2。然而,在去那里之后,当我去 "Convert to current Swift syntax" 时,它不会在框架/你可以在菜单中检查的东西下拉出这个特定的 pod。 Piano OAuth 不存在。

我试图找到 .swiftmodule 错误直接引用但是 "Modules folder" 在我的项目中不可见 - 只有使用 finder 才能打开它,它是一堆随机字符。

我需要帮助。我如何将此 pod 转换为 3.2,然后再转换为 4?我尝试了 pod deintegrate,然后是 pod install,然后我在 Xcode 8 中进行了清理,然后才转到 9,但是这个 3.1 pod 没有任何工作。

POD 文件:

   # Uncomment this line to define a global platform for your project
# platform :ios, '9.0'

target 'Adventures In Design' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Adventures In Design

pod 'PianoOAuth', '~>2.0.1'
pod 'AudioPlayerManager'
pod 'FontAwesome.swift'
pod 'Parse'
pod 'ParseUI'

  target 'Adventures In DesignTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == 'Adventures In Design'
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '3.2'
            end
        end
    end

end

现在在另一个 pod 上获取这个:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.

虽然是Swift3

pod 本身需要支持 Swift 4 以便您能够将其编译为 Swift 4。至于 Swift 3.2,有一个编译的解决方法pods 在 Xcode 9 beta 中使用 Swift 3.2(从关于该主题的 GitHub issue 复制的代码):

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == '<insert target name of your pod here>'
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '3.2'
            end
        end
    end
end

但是,如果 pod 包含一些使用 Swift 3.1 编译的预构建二进制文件,则您无法对 pod 进行任何更新,您需要等待项目的开发人员将其更新为 Swift 3.2.