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

iOS模拟器本地传图至Firebase Storage模拟器遇未知错误求助

解决iOS模拟器上传本地Firebase Storage模拟器报错的问题

针对你遇到的iOS模拟器上传报错(Android端正常),结合报错信息和场景,给出以下排查和解决步骤:

  • 严格保证Storage模拟器配置的执行顺序
    报错中的警告明确提示模拟器设置必须在任何Storage操作前完成,务必把配置代码放在最前端,早于runApp执行:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      // 先配置Storage模拟器,再初始化任何Storage实例或执行上传操作
      FirebaseStorage.instance.useStorageEmulator('127.0.0.1', 9199);
      runApp(const MyApp());
    }
    

    注意:热重载后出现该警告可忽略,但冷启动必须严格遵循此顺序。

  • 替换localhost为127.0.0.1或局域网IP
    iOS模拟器对localhost的解析可能存在异常,建议直接用127.0.0.1替代,或使用电脑的局域网IP(如192.168.1.100)。可在模拟器的Safari中访问http://127.0.0.1:9199,若能看到连接响应(即使是404),说明网络通路正常。

  • 配置iOS ATS允许本地HTTP请求
    iOS默认禁止HTTP请求,而本地Storage模拟器使用HTTP协议,需在Info.plist中添加ATS配置:

    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSExceptionDomains</key>
      <dict>
        <key>127.0.0.1</key>
        <dict>
          <key>NSIncludesSubdomains</key>
          <true/>
          <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
          <true/>
        </dict>
      </dict>
    </dict>
    

    开发环境下也可临时用NSAllowsArbitraryLoads允许所有HTTP请求。

  • 升级Firebase CLI并重启模拟器
    旧版本Firebase模拟器可能存在iOS兼容性问题,执行命令升级CLI:

    npm install -g firebase-tools
    

    完全关闭所有Firebase模拟器后重新启动,查看模拟器控制台日志是否有来自iOS模拟器的连接请求。

  • 冷启动测试,规避热重载干扰
    热重载可能导致模拟器配置未正确生效,每次修改配置后,停止iOS模拟器中的App,重新运行项目测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:48:16