You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Xcode 13后构建NativeScript iOS应用时出现多类错误的问题求助

解决Xcode 13升级后NativeScript iOS构建的三类错误

针对你升级Xcode 13后遇到的NativeScript iOS构建问题,我整理了几个针对性的解决方案,你可以逐一尝试:

1. 解决./.build_env_vars.sh脚本的UID: readonly variable错误

这个问题是因为UID在bash环境中是只读系统变量,脚本里的declare命令试图重新定义它导致报错。你需要修改脚本的第454行:

  • 找到.build_env_vars.sh中包含declare UID的那一行
  • 将其替换为:
    # 避免重新声明只读的UID变量,直接赋值(如果未设置的话)
    if [ -z "${UID:-}" ]; then
        export UID=$(id -u)
    fi
    

或者直接删除这一行的declare语句,因为UID本身就是系统自动设置的环境变量。

2. 解决Swift桥接头文件*-Swift.h未找到的NSLD错误

这个问题通常和Xcode 13的构建路径变化或NativeScript配置不兼容有关:

  • 清除DerivedData:直接删除你提到的DerivedData目录:
    rm -rf /Users/gaetan.delsaux/Library/Developer/Xcode/DerivedData/mbwsinventoryapp-egjrwafdujqbnuemdmqazirgunfd
    
  • 检查桥接头文件配置:打开Xcode项目,在Build Settings中找到Objective-C Bridging Header,确保路径是相对于项目根目录的正确路径(比如src/YourProject-Bridging-Header.h)
  • 升级NativeScript版本:旧版NativeScript对Xcode 13的支持不完善,执行以下命令更新CLI和项目依赖:
    npm install -g nativescript
    ns update
    

3. 解决Python脚本的KeyError: 'DEPLOYMENT_TARGET_CLANG_FLAG_NAME'错误

这个错误是因为Xcode 13改变了部分环境变量的命名,而NativeScript的构建脚本未适配:

  • 手动设置环境变量:在执行构建命令前,先导出对应的环境变量:
    export DEPLOYMENT_TARGET_CLANG_FLAG_NAME="-mios-version-min"
    
  • 修改Python脚本添加默认值:打开build-step-metadata-generator.py,修改两个地方:
    1. 将env函数修改为支持默认值:
      def env(env_name, default=None):
          if default is not None:
              return os.environ.get(env_name, default)
          return os.environ[env_name]
      
    2. 将第41行的调用改为:
      deployment_target_flag_name = env("DEPLOYMENT_TARGET_CLANG_FLAG_NAME", "-mios-version-min")
      
  • 切换到Python 3:Python 2.7已停止维护,NativeScript新版本支持Python 3,你可以修改构建脚本中调用Python的命令为python3,或者在系统中设置Python 3为默认版本。

如果以上方案都无效,建议尝试创建一个新的NativeScript测试项目,看是否能正常构建,以此排查是否是现有项目的配置问题。

内容的提问来源于stack exchange,提问作者GDelsaux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:54:05