iOS 跨平台开发,代码编写和应用上架的完整方案与工具组合

0 阅读3分钟

跨平台开发在讨论时容易停留在框架选择,比如 Flutter、React Native、uni-app。但项目真正开始的时候,问题一般在后面才出现,比如:

  • iOS 签名怎么处理
  • 没有 Mac 怎么打包
  • IPA 怎么上传

跨平台框架只是入口

先确定一个基础,跨平台框架解决的是 UI 和业务逻辑复用,不解决 iOS 发布的问题

常见选择:

框架运行方式
FlutterDart 编译
React NativeJS Bridge
uni-appWebView / 原生

无论选哪个,最终都会生成一个 iOS 工程(或可构建 iOS 工程)


示例(Flutter)

flutter build ios

示例(uni-app)

  • 使用 HBuilderX 云打包生成 iOS 包

构建的时候跨平台≠脱离 Xcode

即使使用跨平台框架,构建 iOS 时仍然需要:

  • 证书
  • 描述文件

例如 Flutter:

flutter build ipa

底层依然调用 Xcode。

如果签名配置错误,会直接失败。


签名准备:跨平台项目的关键分水岭

这里是很多项目卡住的地方。

在 macOS 上,可以用 Xcode 自动管理,但在跨平台环境(Windows / Linux)中,需要手动准备。

可以用 AppUploader(开心上架) 来生成签名文件。


操作流程

1. 创建证书
  • 打开 AppUploader
  • 进入证书管理
  • 点击新增
  • 选择 distribution
  • 设置名称与密码
  • 下载 .p12

创建证书


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

描述文件


3. 导入到构建环境
  • macOS → 导入钥匙串
  • CI → 脚本导入

构建 IPA 有多种方式

跨平台项目可以选择不同构建方式:


方式一:本地 Mac 构建

适用于:

  • 有 Mac 设备
  • 调试阶段

方式二:云构建

例如:

  • HBuilderX 云打包
  • CI(Mac Runner)

hb打包


方式三:自动化构建(Fastlane)

build_app(
  export_method: "app-store"
)

构建结果统一为:

  • .ipa 文件

上传 IPA 可以摆脱对 macOS 的依赖

上传环节可以完全独立出来。

在 Windows 或 Linux 上,可以直接上传。


使用 AppUploader 上传

步骤如下:

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

如果遇到:

  • 上传卡住
  • 进度不动

可以切换通道重新上传。


审核与发布跨平台项目没有区别

上传完成后:

进入 App Store Connect: asc

My Apps → 选择应用 → TestFlight → 构建 → 提交审核

需要准备:

  • 应用截图
  • 隐私政策
  • 测试账号

八、跨平台开发中一个容易忽略的问题

当修改 Bundle ID 时:

  • 描述文件不会自动更新

表现为:

  • 构建成功
  • 上传后没有构建

解决方式:

  • 重新创建描述文件
  • 确认 Bundle ID 一致

跨平台开发解决的是写一次代码的问题,但发布流程仍然遵循 iOS 规则,可以把签名、构建、上传拆开,跨平台项目在 iOS 上架上不会比原生复杂。