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

在Xcode中运行React Native项目时出现"No Script Url Provided"错误

解决React Native无框架模式下"No Script Url Provided"错误

问题原因

直接点击Xcode运行按钮仅完成了iOS原生代码的构建,但无框架React Native不会自动启动Metro JS打包服务,也没有默认配置JS代码的加载地址,导致App找不到要运行的JS代码,从而抛出该错误。

分步解决方案

  1. 启动Metro服务

    • 打开终端,导航到你的项目根目录
    • 运行命令:npx react-native start(无需全局安装react-native,npx会自动调用项目依赖的版本)
    • 看到终端输出"Metro is running"类提示,说明服务启动成功
  2. 给App配置脚本URL
    方法一:通过开发者菜单手动配置(简单快捷)

    • 在iPhone模拟器中按下Cmd + D弹出开发者菜单(或摇一摇模拟器)
    • 选择「Configure Bundler」选项
    • 输入地址:http://localhost:8081/index.bundle?platform=ios,点击保存
    • 选择「Reload」,App即可加载JS代码

    方法二:在Xcode中永久配置(避免重复手动输入)

    • 打开项目内的Info.plist文件
    • 添加NSAppTransportSecurity字典,在其中新增NSAllowsArbitraryLoads并设置为YES(仅用于调试,发布前需修改)
    • 打开AppDelegate.m(或AppDelegate.swift),找到获取JS代码地址的部分,替换为固定的Metro地址:
      // Objective-C示例
      NSURL *jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.bundle?platform=ios&dev=true"];
      
      // Swift示例
      let jsCodeLocation = URL(string: "http://localhost:8081/index.bundle?platform=ios&dev=true")!
      

你遗漏的指南步骤

官方无框架指南中明确提到必须手动启动Metro服务才能运行JS代码,只是新手容易忽略——不同于RN初始化的项目,无框架模式下原生端与JS端是分离的,Xcode运行不会自动触发Metro启动,需要手动启动服务让App能获取打包后的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:09:56