从Intel Mac迁移到M2 Mac后,NativeScript真机运行报错求助
解决NativeScript迁移到M2 Mac后iOS真机运行NSURLSessionConfiguration未定义错误
问题场景
将旧Intel Mac的数据迁移到新M2 Mac后,NativeScript应用在iOS真机执行ns run ios --device 0000000000时抛出致命错误:
NativeScript encountered a fatal error: Error calling module function ReferenceError: NSURLSessionConfiguration is not defined File: (file: app/webpack:/redacted-app/webpack/bootstrap:27:0) StackTrace: ./node_modules/@nativescript/core/http/http-request/index.ios.js(file: app/webpack:/redacted-app/node_modules/@nativescript/core/http/http-request/index.ios.js:15:0) at __webpack_require__(file: app/webpack:/redacted-app/webpack/bootstrap:24:0) ...(省略部分栈信息)
应用在模拟器运行正常,旧Mac环境下无异常,直接通过Xcode运行也出现相同错误。
解决方案
1. 彻底清理缓存
- 清理NativeScript项目缓存:
ns clean - 清理Xcode衍生数据:
打开Xcode → 顶部菜单Xcode→Settings→Locations→ 点击Derived Data右侧箭头,删除当前项目对应的文件夹 - 清理npm缓存:
npm cache clean --force
2. 更新NativeScript核心依赖
确保核心依赖适配arm64架构,执行:
npm install @nativescript/core@latest
同时检查package.json中所有NativeScript相关插件(如@nativescript/ios等),更新至最新稳定版本。
3. 修正Xcode架构配置
打开项目的iOS工程文件(路径:platforms/ios/[你的应用名称].xcodeproj):
- 选中项目Target →
Build Settings→ 搜索Architectures,设置为Standard Architectures (arm64, x86_64) - 搜索
Excluded Architectures,确保真机配置(Any iOS Device (arm64))下未排除arm64
4. 重建iOS平台
先移除现有iOS平台,再重新添加构建:
ns platform remove ios ns platform add ios ns run ios --device 0000000000
5. 排查第三方插件兼容性
如果项目使用了第三方NativeScript插件,检查插件是否支持arm64架构:
- 查看插件的npm页面或代码仓库,确认是否有适配M2 Mac的更新
- 若插件未更新,尝试替换为兼容的替代插件,或向插件仓库提交适配需求
原因说明
迁移到M2 Mac后,原Intel环境下的缓存文件、编译产物与arm64架构不兼容,导致NativeScript无法正确映射iOS原生API(如NSURLSessionConfiguration);部分旧版本依赖未适配arm64,也会引发此类原生API未定义错误。
内容的提问来源于stack exchange,提问作者Swissdude
相关产品推荐
相关产品推荐

