#50067·expo

[expo-modules-jsi] SDK 57 本地 iOS 版本在 Swift 6.2+ 版本上无法运行: RuntimeScheduler 构造函数中的 SWIFT_RETURNS_RETAINED

作者: thiago-slb创建于 2026年9月11日更新于 2026年9月17日
标签needs reviewcontributor: external

最小可复制的例子

https://GitHub.com/thiago-slb/expo-modules-jsi-swift62-repro 互联网档案馆的存檔,存档日期2014-12-22.

页:1

空白的 SDK 57 应用程序( " 创建- expo- app -- template blain " , 没有更改应用程序代码) 无法为 iOS 构建 。 expo-moules-jsi''的Runtime Scheduler.h'中有两个构件被注解为`SWIFT RETURNS Researched',Swift 6.2+拒绝:

node modules/expo-modules-jsi/apple/ sources/ExpoModulesJSI-Cxx/Including/Runtime Scheduler.h:53:26: :
错误: “ RuntimeScheduler” 无法附加 SWIFT RETURNS  已保存 或
SWIFT RETNS UNRIED 因为它没有返回 SWIFT SHED REFENCE 类型
SWIFT RETURNS 被保存的运行时定时器( void * 调度器, 调度Fn fn) 除外

节点/expo-modules-jsi/apple/ sources/ExpoModulesJSI-Cxx/Including/Runtime Scheduler.h:61:26: :
错误 : (相同)
SWIFT RETURNS 已包含运行时排行器( )                      

** BUILD 故障

失败阶段:`[CP-用户]建立ExpoModulesJSI x框架'。

does级搭载了"SWIFT SHARED-Refence",但只在收尾架上(90行),而附加说明的构造器则在53行和61行上. Swift 6.2+ 拒绝使用**进口-参考 ' 类型的构件**返回-保留'。

expo-modules-jsi'不是直接依赖——它通过expo-expo-expo-Modules-core-expo-modules-jsi'运出,因此,这影响到每个SDK 57项目在使用Swift 6.2+(即目前的Xcode)的机器上制造本地iOS。

  • 复制步骤

平台:iOS,独立/本地建设,软件包管理器npm.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? git Clone https://GitHub.com/thiago-slb/expo-modules-jsi-swift62-repro 互联网档案馆的存檔,存档日期2013-12-22. cd expo-modules-jsi-swift62-repro npm 安装 npx expo 预建 -p ios -- no- install cd ios && sock 安装 xcodebuilding - 工作空间 reprojsi.xcworkspace - scheme reprojsi \

  • 配置 释放 - sdk iphoneos - 目的地 '基因/平台=iOS'
    代码( I)

** 预期:** 建筑成功。
** 实际:** 与上述两个错误相符合。

已经排除了

- ** 不存在 " node modules/expo-modules-jsi/apple/Products " ;xcramework是从零开始建造的。 还转载于`rm-rf ios'后,并清除了` /图书馆/开发商/Xcode/DerivedData'。
- ** 在下一个主要部分没有固定。 ** `npm back [email protected]', diffed at 57.1.0:标题的字节完全相同,说明和后面的`SWIFT-SHARED-REFENCE'均包括在内。
- ** 非声明令。 ** 将“SWIFT SHARED REFENCE”移到类声明(保留/释放功能的前置声明)上,使标题在“clang++”下独立编译 -fslax-只使用语法 , 但是 xcramework 构建失败 。
-** 未经更新的X码固定。 ** 也转载于Xcode 26.6 / Apple Swift 6.3.3 ( " swiftlang-6.3.3.1.3 clang-2100.1.1.101 " ). 新斯威夫特更严格,而不是松散.

宏来自活动工具链中的 QQSwift/ bridging QQ, 包含 QQC INTEROP  HAS  ATTRIBUTE( swift  attr) 真实的—— 这些是真实的属性定义, 而不是空的
. . . . . . .