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 原生发布的流程。

相关推荐
Android系统攻城狮7 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
传奇开心果编程11 小时前
【Compose Multiplatform 跨端开发学与练】第7课 平台适配与互操作
android·windows·学习·ui·ios·kotlin·composer
mmsx11 小时前
Android 地图数据链路:从 GDAL、KML 到多引擎适配
android·kotlin
2601_9689007711 小时前
大模型版本回归评估实战:从能力指标到额度口径的完整链路
android·数据挖掘·回归
Lsetea12 小时前
OpenSSL verify报unable to get issuer certificate:error 2与partial_chain排查
linux·https·ssl证书·openssl·证书链
ao-weilai13 小时前
MySQL数据库:基本查询
android·数据库·mysql
事圆则缓14 小时前
Kotlin 泛型方差实战:out、in、星投影与类型擦除
android·开发语言·kotlin
传奇开心果编程16 小时前
【Compose Multiplatform 跨端开发学与练】第5课 网络与数据层
android·网络·学习·ui·ios·kotlin·composer
天天进步201516 小时前
Caddy 实战:5 分钟给域名开启 HTTPS,自动申请 SSL 证书并反向代理
网络协议·https·ssl
茶底世界之下17 小时前
视频预览切换为何会闪回旧帧:用 generation + mode identity 管住异步回调
ios·swift