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

RocketChat RN白标iOS构建报Bugsnag source map上传超时错误

RocketChat RN iOS白标构建Bugsnag上传超时问题解决方案

问题描述

对RocketChat开源React Native仓库做iOS端白标定制,参照官方iOS端白标指南构建项目时失败,核心报错为Command PhaseScriptExecution failed with a nonzero exit code,具体错误为Bugsnag source map上传连接超时。
完整构建日志如下:

> PhaseScriptExecution Upload\ source\ maps\ to\ Bugsnag
> /Users/macbook/Library/Developer/Xcode/DerivedData/RocketChatRN-adkttzebukwzincfwduuaihsdgwi/Build/Intermediates.noindex/RocketChatRN.build/Debug-iphoneos/RocketChatRN.build/Script-88055964DAAE45B1A4886C27.sh
> (in target 'RocketChatRN' from project 'RocketChatRN')
>     cd /Users/macbook/Rocket.Chat.ReactNative-develop/ios
>     /bin/sh -c /Users/macbook/Library/Developer/Xcode/DerivedData/RocketChatRN-adkttzebukwzincfwduuaihsdgwi/Build/Intermediates.noindex/RocketChatRN.build/Debug-iphoneos/RocketChatRN.build/Script-88055964DAAE45B1A4886C27.sh
> 
> ℹ Preparing upload of React Native source map (dev / ios) › Reading
> source map
> "/var/folders/sz/jj5jd6j54kd505vxsyxvlk1h0000gn/T//bcd7e9d7452d009ff844f5acf22fb2f3-main.jsbundle.map"
> › Reading bundle file
> "/Users/macbook/Library/Developer/Xcode/DerivedData/RocketChatRN-adkttzebukwzincfwduuaihsdgwi/Build/Products/Debug-iphoneos/main.jsbundle"
> ℹ Applying transformations to source map › Ensuring sourcesContent
> field is populated › Stripping project root from sources › Initiating
> upload to "https://upload.bugsnag.com/react-native-source-map"

ERROR  The request timed out.

Connection timed out

 at ClientRequest.<anonymous> (/Users/macbook/Rocket.Chat.ReactNative-develop/node_modules/@bugsnag/source-maps/dist/Request.js:190:21)
 at Object.onceWrapper (node:events:641:28)
 at ClientRequest.emit (node:events:527:28)
 at TLSSocket.emitRequestTimeout (node:_http_client:771:9)
 at Object.onceWrapper (node:events:641:28)
 at TLSSocket.emit (node:events:539:35)
 at TLSSocket.Socket._onTimeout (node:net:516:8)
 at listOnTimeout (node:internal/timers:559:17)
 at processTimers (node:internal/timers:502:7)

已尝试在Xcode中禁用Bugsnag source map上传脚本,操作截图:
禁用Bugsnag source map上传
但重新构建仍然出现相同报错,无React Native开发经验,仅做白标定制操作,需要可落地的解决路径。

解决步骤

按优先级依次操作即可:

  • 清理构建缓存后重新校验禁用状态
    手动禁用脚本后必须先清缓存,否则Xcode会沿用旧的构建配置:按住Option键点击Xcode顶部菜单栏Product -> Clean Build Folder,再删除~/Library/Developer/Xcode/DerivedData/下所有RocketChatRN开头的文件夹,重启Xcode后重新构建。
  • 配置环境变量全局关闭Debug阶段source map上传
    打开Xcode中RocketChatRN target的Build Settings tab,点击+号新增自定义配置,添加键为BUGSNAG_UPLOAD_SOURCEMAPS,值为NO的配置项,该配置会直接让Bugsnag的上传脚本跳过执行,不需要手动修改脚本内容。
  • 排查Pod注入的重复上传脚本
    RocketChat的依赖会通过CocoaPods自动注入Bugsnag上传逻辑,仅手动禁用主target下的脚本不会覆盖Pod注入的逻辑。打开ios/Podfile文件,找到post_install钩子部分,添加如下代码移除Pod注入的上传脚本:
    post_install do |installer|
      # 原有代码保留,新增以下内容
      installer.pods_project.targets.each do |target|
        if target.name == 'BugsnagReactNative'
          target.build_phases.each do |phase|
            if phase.respond_to?(:name) && phase.name.include?('Upload source maps')
              target.build_phases.remove(phase)
            end
          end
        end
      end
    end
    
    修改完成后在ios目录下执行pod install,重新打开xcworkspace文件构建即可。
  • 本地调试阶段完全不需要Bugsnag相关能力的话,可以直接在项目的.env配置文件中添加BugsnagKey=(值留空),会直接关闭所有Bugsnag相关的初始化、上报、上传逻辑,不影响应用核心功能使用。

白标定制本地调试阶段不需要上传source map到Bugsnag,关闭该逻辑不会对应用功能、后续正式包发布产生任何影响,正式发布前如果需要使用Bugsnag的崩溃上报能力,再配置对应可用的网络环境和自有Bugsnag Key即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:24:32