当第三方供应商或临时依赖项发布主要版本时,开发工具链总是可能让团队经历一段不稳定的时期。Xcode 就是其中之一,它影响了远超 NativeScript 的广大开发者社区。当您的开发工具开始抱怨神秘的架构并无法构建时,您自然会产生各种各样的情绪,从您第一次看到《Goonies》中树懒时的感受,到《Gremlins》中剧院场景,甚至想到异形寄生在您的体内。
如果这些场景没有让您感到不寒而栗,那么这些控制台输出呢?
链接器命令失败?!😱
/project/path/platforms/ios/internal/NativeScript.framework/NativeScript' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
正在为 iOS 模拟器链接 arm64?😱
ld: in /project/path/Pods/mopub-ios-sdk/MoPubSDK/Viewability/MOAT/MPUBMoatMobileAppKit.framework/MPUBMoatMobileAppKit(MPUBMoatAnalytics.o),
building for iOS Simulator, but linking in object file built for iOS, for architecture arm64
构建失败?!代码 65?这是什么?😱
Error: Command xcodebuild failed with exit code 65
NativeScript 由一个技术指导委员会 (TSC) 驱动,就像您一样,它依赖于这些工具来进行关键的生产场景。TSC 的每个成员每天都会使用这些工具,每天多次,如果不是每天 24/7 的话(看看那些失眠的人!健康提示:请睡觉)。我们是一群充满活力、技术精湛且富有同情心的普通人,我们非常关心这个工具链以及像您一样的社区成员。
NativeScript 之类的工具链的一个优点是,其运行时是对其运行所在的主机平台的纯粹体现。它不会试图重新创建平台,而是通过您喜欢的语言 JavaScript 将该平台呈现在您的指尖。这意味着框架的核心维护归结为它所依赖的工具,例如 Xcode。
Xcode 12 于 2020 年 9 月 16 日发布。整个夏天都发布了几个 Beta 版本,TSC 在其中验证了几套工具。接近 Beta 结束和最终发布时,跟踪了一些架构更改。
构建设置编辑器不再包含“有效架构”构建设置 (VALID_ARCHS),并且不建议使用它。取而代之的是,有一个新的“排除架构”构建设置 (EXCLUDED_ARCHS)。如果项目包含 VALID_ARCHS,则该设置会显示在构建设置编辑器的“用户定义”部分中。(15145028)
这是影响工具链并影响广泛开发社区的关键变化。
TSC 识别并收集了社区报告,以确保从多个角度和不同的情况解决此问题。我们非常感谢整个充满激情的社区提供的反馈。这无疑帮助我们在大约 2 周内解决了这个问题。
这些修复适用于 NativeScript 6 和 NativeScript 7 项目。
安装最新的 cli (v7.0.10
)
npm i -g nativescript
在使用 {N} 7 时更新 devDependencies
中的 ios 运行时,或者在使用 {N} 6 时更新 package.json
中的 nativescript
键
@nativescript/ios
(新的 v8)运行时,您需要更新您的项目以使用:@nativescript/[email protected]
tns-ios
(JavaScriptCore)运行时,您需要更新您的项目以使用:[email protected]
ns clean
- 如果使用 {N} 7,否则手动删除 node_modules
、platforms
、hooks
和 package-lock.json
。
运行并繁荣!
干杯🍻