gpt4 book ai didi

ios - ld : SDK. 使用旧版本的 Swift 语言 (XX) 编译的框架比以前的 ObjC 框架文件(未知 ABI 版本 YYY)

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:12 25 4
gpt4 key购买 nike

简介

我正在处理 SDK.framework,我需要将其作为闭源 软件进行分发。为了涵盖 objective-c 和 swift 项目,我决定在 objective-c 上编写它

在本地环境中我有两个项目:

  • SDK(框架源代码)
  • DemoApp(链接到 SDK.framework 的应用)

*这些项目在单独的工作空间中

问题

当我在本地编译 SDK.framework 时,它运行完美。

一旦我从 CI 获得一个(它有不同的 iOS SDK 版本)并尝试将它与 DemoApp 链接我得到这个错误:

ld: SDK.framework compiled with older version of Swift language (4.0) than previous files (unknown ABI version 0x06)

问题

  1. 因为我的 SDK 100% objective-c 框架,我不知道为什么它声称是 swift 版本
  2. 我的 SDK 依赖于其他框架,其中之一是 SocketIO-Client-Swift .据我所知,这应该与上面的错误无关,因为我用 DemoApp 编译了 SocketIO-Client-Swift,所以它与 DemoApp 具有相同的 swift 版本> 应用

我做了什么

  1. 使用 otool -l SDK.framework 我检查了所有元信息,没有任何对 swift 的引用
  2. 我曾尝试将其作为静态库分发,但在这种情况下,我将无法支持Carthage 依赖管理器

最佳答案

这很可能是因为您与 Swift 框架相关联。即使您的代码是 100% Obj-C,它也包含对作为 SDK ABI 一部分的 Swift 调用的引用。

改为考虑 C++ 版本的 SocketIO。

https://github.com/socketio/socket.io-client-cpp

关于ios - ld : SDK. 使用旧版本的 Swift 语言 (XX) 编译的框架比以前的 ObjC 框架文件(未知 ABI 版本 YYY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com