簡體   English   中英

具有 Swift 4 依賴項的 Swift 3 Cocoapod

[英]Swift 3 Cocoapod with a Swift 4 dependency

我正在嘗試更新我的 Swift 3 pod 之一中的依賴項。 有問題的依賴項是Socket.IO-Client-Swift 我想將它從 Swift 3 版本升級到最新的 Swift 4 版本。

如果我將 Socket.IO-Client pod 的“Swift Language Version”設置為 4.1,它在 Xcode 中工作正常。 它構建沒有問題。

當我嘗試 lint podspec 或推送 podspec 時,我收到錯誤,因為它看起來像是在嘗試使用 Swift 3 編譯 Socket.IO。

錯誤 | [iOS] xcodebuild: Socket.IO-Client-Swift/Source/SocketIO/Client/SocketIOClient.swift:111:39: 錯誤:無法調用非函數類型“Bool”的值

...

錯誤 | [iOS] xcodebuild: Socket.IO-Client-Swift/Source/SocketIO/Client/SocketIOClient.swift:471:39: 錯誤:無法調用非函數類型“Bool”的值

有沒有辦法讓 cocoapods 使用 Swift 4 編譯依賴項(Socket.IO-Client-Swift),同時將 Swift 3 用於其他需要它的東西?

在您的 pod 文件中添加以下行,指定您的 pod-name

post_install do |installer|
installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
        if target.name == 'Your-Pod-Name'
            config.build_settings['SWIFT_VERSION'] = '4.0' //use required pod version here
        end            
    end
end 

結尾

完成后,運行命令“pod install”

s.swift_version = "4.0"添加到您的 podspec 文件中。

如果您沒有說明您的 pod 使用的是哪個 swift 版本,Cocoapods 會將其設置為您在項目中使用的版本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM