React Native 上架 App Store:项目运行与审核构建的流程

很多 React Native 项目在开发阶段没有问题,但一到上架环节就开始卡住了

比如 Xcode 可以运行,但 Archive 失败、IPA 能生成,但是上传后没有构建了,TestFlight 也一直不出现版本

这些问题其实不是 React Native 的问题,而是 iOS 发布流程还没有搞明白


先确认项目已经具备 iOS 构建条件

先在本地执行:

复制代码
npx react-native run-ios

如果可以正常运行,再进入下一步。


检查 ios 目录

React Native 项目中:

  • /ios 目录是完整 iOS 工程
  • 实际打包由 Xcode 完成

进入目录:

复制代码
cd ios
pod install

在 Xcode 中完成必要配置

打开:

复制代码
open ios/YourProject.xcworkspace

配置 Bundle ID

路径:

  • Targets → General → Bundle Identifier

确保:

  • 与 App Store Connect 中一致

配置版本号

复制代码
Version(CFBundleShortVersionString)
Build(CFBundleVersion)

每次上传:

  • Build 必须递增

签名准备 React Native 不会自己做这一步

RN 项目构建失败,大多数情况是签名问题。

需要准备:

  • 发布证书(distribution)
  • App Store 描述文件

使用 AppUploader 生成签名文件

使用 AppUploader(开心上架) 可以直接生成:


创建证书

  1. 打开证书管理
  2. 点击新增
  3. 选择 distribution
  4. 设置名称
  5. 设置 P12 密码
  6. 下载 .p12

创建描述文件

  1. 进入描述文件管理
  2. 新建 App Store 类型
  3. 选择 Bundle ID
  4. 绑定证书
  5. 下载 .mobileprovision

导入到 Xcode

  • 双击 .p12 导入钥匙串
  • 双击 .mobileprovision 安装

Archive 构建 IPA

在 Xcode 中:

  1. 选择设备为 Any iOS Device
  2. 点击 Product → Archive

构建完成后:

  • 打开 Organizer
  • 选择刚生成的 Archive

导出 IPA

选择:

复制代码
Distribute App → App Store Connect → Export

导出 .ipa 文件。


上传 IPA(可以不依赖 Xcode)

IPA 生成后,上传可以脱离 macOS。

可以使用 AppUploader 上传

步骤:

  1. 打开提交上传页面
  2. 输入 Apple ID
  3. 设置专用密码(App-specific password)
  4. 选择 IPA 文件
  5. 选择上传通道(1 或 2)
  6. 点击上传

上传后验证

进入:

复制代码
App Store Connect → TestFlight

等待 Processing 完成。


有可能会碰到一个问题,上传成功但没有构建

在 RN 项目中比较常见。

检查 Build 号,是否递增

检查 Bundle ID,是否和后台一致

检查签名类型,是否使用 App Store 描述文件

检查描述文件,是否绑定正确证书


React Native 特有的一个坑

如果使用了第三方库(如推送、登录),需要注意:

Capabilities 是否开启

在 Xcode 中:

  • Signing & Capabilities
  • 开启对应能力(Push / Associated Domains 等)

与 App ID 一致

在 Apple Developer 中:

  • 同步开启对应能力

否则:

  • 编译通过
  • 审核或运行失败

React Native 项目上架 App Store,其实还是完成 iOS 原生发布的流程。

相关推荐
Soujer2 小时前
支持微信4.0的小程序注入调试工具(WMPFDebugger)
微信·小程序
jinanwuhuaguo2 小时前
最新更新版本,OpenClaw v2026.4.2 深度解读剖析:Task Flow 重磅回归与安全架构的全面硬化
android·开发语言·人工智能·回归·kotlin·安全架构·openclaw
匆忙拥挤repeat2 小时前
Android Compose 状态:核心api,状态恢复,状态提升,状态容器
android
李庆政3702 小时前
uniapp+unicloud打包部署微信小程序
微信小程序·小程序·uni-app
Swift社区2 小时前
鸿蒙游戏和小程序游戏的本质区别
游戏·小程序·harmonyos
千里马学框架3 小时前
干货分享:车载音频audio调试开发之dumpsys CarAudioService剖析
android·音视频·面试题·audio·系统开发·车载audio·framework工程师
私人珍藏库3 小时前
[Android] Bilibili音乐播放器Biu安卓版,适配手机-平板-汽车
android·智能手机·电脑
lzhdim3 小时前
开启iphone的墙纸玻璃效果
macos·ios·objective-c·cocoa·iphone
z9209810233 小时前
安卓16 手机系统 super 分区挂载读写 解锁安卓动态分区RW 逻辑分区读写 自由读写 修改分区system vendor、product
android·智能手机·安卓动态分区·解锁动态分区·分区挂载读写