将 BUILD_LIBRARY_FOR_DISTRIBUTION 设置为 YES 时使用 @inlinable init 的问题

问题描述

我在框架项目中有一个带有 @inlinable init 的类。 它编译正常,直到我在 XCode 构建设置中设置 BUILD_LIBRARY_FOR_disTRIBUTION = YES 以构建 XCFramework。

如果我删除@inlinable 标记,编译器错误就会消失。

在这种情况下有没有办法保持@inlinable?谢谢!

enter image description here

更新

我发现这个 article 说明了为什么编译器对 @inlinable 不满意

另一方面,根据您正在构建的内容,@inlinable 可能是一个大问题。如果@inlinable 方法的实现发生更改,导入它的模块将无法使用修改,除非重新编译它们。通常,您可以通过简单地替换二进制文件来更新框架,但是由于某些方法的实现被内联,即使您链接到新版本,应用程序也会继续运行旧行为。因此,启用了库演化设置的应用可能会发现自己无法使用 @inlinable,因为这会破坏框架的 ABI 稳定性。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)