ios - 如何在最新的 iOS 项目中使用旧的二进制库 TinyCrayon?
问题描述
我尝试在我的新 iOS 项目中使用TinyCrayon 。
该库由一个二进制库框架组成。TinyCrayon 自述文件中的框架链接已失效,但可以在此处找到。
当我将框架添加到我的项目并编译它时,会显示以下错误消息:
(使用真正的 iPhone 设备编译时:)
The following binaries use incompatible versions of Swift:
/…/TCMask.framework/TCMask
/…/Library/Developer/Xcode/DerivedData/.../Build/Products/Debug-iphoneos/….app/…
(使用模拟器编译时:)
/…/TCMask.framework/TCMask compiled with older version of Swift language (4.1/4.2) than previous files (5 or later) file ‘/…/TCMask.framework/TCMask' for architecture x86_64
我正在使用 Xcode 12.5.1
有人可以成功使用这个框架吗?
如果这个库的作者将它升级为使用 Swift 5 应该可以解决问题,但他似乎还没有维护这个项目。
潜在的根本原因
如果您正在使用的框架/模块的开发人员尚未将他们的代码更新到 swift 5,那么切换回旧 Xcode 版本可能是最简单的。只需重命名当前的 Xcode 应用程序(例如,改名为 XcodeNew)。然后下载并安装旧版本 ( https://developer.apple.com/download/more/ )。它可能不是最好的解决方案,但在您可以更新使用的框架之前它会起作用。
Swift 还没有模块稳定性。这意味着 Swift 5 编译器可以编译为 Swift 4、4.2 和 5 编写的代码;但是,您不能混合和匹配使用旧版本编译器构建的代码。您需要确保使用 Xcode 10.2 中的 Swift 编译器重新构建应用程序的所有依赖项。
(网站谷歌翻译)我还是有从旧文章下载旧版Xcode的经验,先编译成功再推送Git。
这篇文章的主题是关于Swift 4.1,Xcode 9.3 可以在Swift 中编程,我以为只是一个小更新不会有什么大不了的,但没想到我使用的Libray/Framework 出现了问题!!!Swift 的第四个版本提到 Charts 包超级好用。它需要用 Swift 4.0 编译,所以你必须去某个地方选择一个设置。今天更新到 Swift 4.1。
我尝试关注但没有成功
尝试#1
删除DerivedData
Xcode 文件夹中的文件
尝试#2
设置Swift Language Version
为Swift 4.0
_Build Settings
尝试#3
安装最新的工具链(Swift 5.4.3)
并使用Preferences
>中的工具链Components
(并且无法编译应用程序)
(我应该使用旧版本的Swift安装工具链,但我在网站上找不到)(而且Apple App Store应该拒绝Toolchain制作的应用程序?)
从这里安装适用于您的特定 Xcode 版本的 Xcode 工具链。Xcode 工具链包括编译器、lldb 和其他相关工具的副本,这些工具提供了在特定版本的 Swift 中工作所需的内聚开发体验。打开 Xcode 的 Preferences,导航到 Components > Toolchains ,然后选择已安装的 Swift 工具链。这将让您现在编译并运行该应用程序。
尝试#4
在developer.apple.com下载旧的 Xcode 10.3
它无法在我的 macOS 11.4 上运行
显示错误弹出窗口:
Xcode quit unexpectedly while using the libMainThreadChecker.dylib plug-in
尝试#5
下载旧的 Xcode 10.3 后,
我将Preferences
> Locations
>设置Command Line Tools
为Xcode 10.3
尝试#6
将项目格式更改为 Xcode 8.0-compatible
ref
尝试#7
设置Build Libraries for Distribution
为Yes
in Build Settings
(应该由图书馆的作者而不是我来设置吗?)
解决方案
推荐阅读
- oracle - 触发预言机:怎么了?
- sql-server - 在 SQL Server 中,如何让 paymentdate 大于月份和年份而忽略日期部分?
- javascript - Three.js 鼠标滚轮向上/向下移动相机而不是放大/缩小
- arrays - [] 和 null 之间的实际区别
- javascript - 使用按钮将值复制到另一个输入
- python-3.x - 如何使训练神经网络的特征向量大小相等?
- powershell - 从 powershell 中的环境变量获取内置帐户
- timeout - Typescript 虚拟助手的 botbuilder-timeout
- vb6 - 是否有允许 Active Reports 在 Win10 操作系统下运行的解决方法?
- java - 如何在两个 CanvasView 对象上使用 onClickListener?