美文网首页
Unable to determine Swift versio

Unable to determine Swift versio

作者: Superman168 | 来源:发表于2018-10-12 20:49 被阅读0次

    在 OC 项目中使用 Socket.IO-Client-Swift 时,更新或安装 pod 时可能会遇到的这个问题:

    socket.io-client-swift Github 地址

    socket.io-client-swift

    报错信息

    [!] Unable to determine Swift version for the following pods:

    • Socket.IO-Client-Swift does not specify a Swift version and none of the targets (GantangBusDriver) integrating it have the SWIFT_VERSION attribute set. Please contact the author or set the SWIFT_VERSION attribute in at least one of the targets that integrate this pod.\n- StarscreamSocketIO does not specify a Swift version and none of the targets (GantangBusDriver) integrating it have the SWIFT_VERSION attribute set. Please contact the author or set the SWIFT_VERSION attribute in at least one of the targets that integrate this pod.
    image.png

    pod 新库的时候,一直报错,项目也运行不起来,没在意终端这个错误,删掉重新pod也报这个错误,试了 很多次依然有问题,pod install 之后项目中一直就没有要添加的Socket.IO-Client-Swift 库,十分郁闷。

    文件目录中却有:


    image.png

    找了半天,回来仔细看看错误,之前一直认为是 Socket.IO-Client-Swift 11.1.2 这个版本是老版本的问题,更新新的库了,还可能是跟项目现有的 swift 版本不匹配导致的。

    直到昨天在新项目中 使用 Socket.IO-Client-Swift ,又遇到了 这个问题,又弄了半天,依然还是这样

    pod 的时候指定版本号:

    pod 'Socket.IO-Client-Swift','~>11.1.2'

    image.png

    这种方式依然解决不了问题,还是这样:


    image.png

    问题2

    上面这个问题,主要是因为本地的 SWIFT_VERSION 与 socket.io-client-swift 库中的
    SWIFT_VERSION 版本可能不一致,
    如果指定版本还是有这个问题,就选中 socket.io-client-swift 相关的提交文件,还原为提交之前的状态,运行 OK,期初就是试了很多方法之后都无效,就用的这种方式解决的。

    这种方法只适用于本地之前是 OK 的解决方法,如果是期初导入报错或者在其他终端就不能使用这种方法解决了。

    正确彻底的解决方法

    通过昨天在新项目中 使用 Socket.IO-Client-Swift ,又遇到了 这个问题,重新来查找根本的原因,期初都没有太在意 pod 的报错信息,或者是没找到正确修改的地方,给忽略了,目前我就是这样,重新审视下报错信息就会发现:
    Please contact the author or set the SWIFT_VERSION attribute in at least one of the targets that integrate this pod
    Socket.IO-Client-Swift does not specify a Swift version and none of the targets (iOSVehicle) integrating it have the SWIFT_VERSION attribute set.`

    就是 SWIFT_VERSION 的原因,所以仔细查找一下就会发现,

    image.png

    之前这里一直没有设置,这个可以去GitHub 查看一下使用的是 Swift 那个版本,就设置那个版本。

    https://github.com/socketio/socket.io-client-swift/releases?after=v13.1.0

    我用的 11.1.2 的 老版本, 从 12.0.0 开始支持的 swift 4.o , 所以设置 3.o;

    image.png image.png

    设置后然后重新 pod install 就 OK 了,这才是最终的解决方法,之前有小伙伴问我,我也是没有正确的解决,抱歉了,接触 Socket.IO-Client-Swift 时间也不算久,边用边学。

    image.png

    后续

    今天按照之前的设置,添加的第三方库都设置了 SWIFT_VERSION 但是用 pod install 的 时候依然报错,实在是不能理解:

    image.png

    因为根本的问题愿意没找到,找了一番才发现当前项目没有设置SWIFT_VERSION,在项目下搜索SWIFT_VERSION没有这个,可以直接添加一个 SWIFT_VERSION 就OK 了,

    image.png image.png

    这次应该是彻底 OK 了。

    //:configuration = Debug
    SWIFT_VERSION = 3.0
    
    //:configuration = Release
    SWIFT_VERSION = 3.0
    
    //:completeSettings = some
    SWIFT_VERSION
    
    image.png

    Socket.IO-Client-Swift Github 链接
    https://github.com/socketio/socket.io-client-swift

    相关文章

      网友评论

          本文标题:Unable to determine Swift versio

          本文链接:https://www.haomeiwen.com/subject/ibagaftx.html