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

相关推荐
黑心的奥利奥1 天前
WeeX跨平台框架,自定义安卓平台MarkDown文本渲染组件高度跟随内容自适应实现思路探索
android
KIHU快狐1 天前
快狐KIHU|110寸壁挂触控一体机G+G电容屏安卓系统汽车展厅查询展示
android·python·汽车
困惑阿三1 天前
Nginx 域名绑定与 HTTPS 配置指南
运维·nginx·https·ssl
云起SAAS1 天前
小智笔记APP源码 | 8大广告联盟聚合(穿山甲/优量汇/快手/百度) | 应用市场过审极速版 | uni-app全栈商用项目
笔记·uni-app·广告联盟·笔记app
~央千澈~1 天前
以cocos3.8.8开发的游戏为例商业实战项目举例cocos打包ios苹果安装包ipa完整详细教程-优雅草卓伊凡
ios
Fate_I_C1 天前
Android DataBinding数据绑定表达式、双向绑定
android·kotlin·databinding
csj501 天前
安卓基础之《(29)—消息机制与异步任务》
android
张风捷特烈1 天前
状态管理大乱斗#02 | Bloc 源码全面评析
android·前端·flutter
untE EADO1 天前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
android·sql·mysql
诸神黄昏EX1 天前
Android Google EDLA
android