如何从create-react-native-app获取.ipa文件?无法用exp命令行的详细步骤
没问题,我来给你一步步拆解 eject 之后生成 iPhone 可运行 .ipa 文件的完整流程,全程不用 exp 工具,放心跟着做就行:
第一步:执行 eject 并切换到 Bare Workflow
- 先备份你的项目!因为 eject 是不可逆操作,一旦执行就没法回到原来的 Expo Managed Workflow 了
- 在项目根目录运行命令:
npm run eject - 按照提示选择
React Native: Bare workflow,然后输入你的项目名称和 Bundle Identifier(比如com.yourname.yourapp,这个后面还要用到)
第二步:配置 iOS 项目的签名与依赖
- 安装必要工具:确保你已经安装了最新版 Xcode,并且在 Xcode 的
Preferences > Locations里配置好了 Command Line Tools - 打开 iOS 项目:进入项目的
ios文件夹,双击打开YourApp.xcworkspace(一定要用这个,别打开.xcodeproj) - 配置签名:
- 在 Xcode 左侧选中项目根节点,然后在右侧切换到
Signing & Capabilities标签页 - 勾选
Automatically manage signing,然后从Team下拉菜单中选择你的 Apple 开发者账号(必须是付费账号,个人/企业都可以) - 确认
Bundle Identifier和你 eject 时输入的一致,要是需要修改也可以在这里改,但要保证是唯一的
- 在 Xcode 左侧选中项目根节点,然后在右侧切换到
- 安装 CocoaPods 依赖:打开终端,进入
ios目录,运行命令:pod install,等待依赖安装完成(如果没装 CocoaPods,先跑sudo gem install cocoapods安装)
第三步:生成 .ipa 文件(两种方式可选)
方式一:用 Xcode 可视化打包(新手推荐)
- 在 Xcode 顶部的设备选择栏,选择
Any iOS Device (arm64)(别选模拟器,模拟器生成的包不能装在真实设备上) - 点击顶部菜单栏的
Product > Archive,Xcode 会开始编译并归档你的项目 - 归档完成后会自动弹出
Organizer窗口,选中刚才生成的归档,点击右下角的Distribute App - 选择分发方式:
- 如果是给内部测试用,选
Ad Hoc;如果要上传 App Store,选App Store Connect - 按照向导一步步走:选择导出的文件格式(默认是
.ipa)、选择要包含的测试设备(Ad Hoc 模式需要)、设置导出路径
- 如果是给内部测试用,选
- 等待导出完成,在你指定的路径里就能找到生成的
.ipa文件了
方式二:用命令行打包(适合自动化场景)
- 先归档项目,在终端进入项目根目录,运行:
注意把xcodebuild archive -workspace ios/YourApp.xcworkspace -scheme YourApp -archivePath ./build/YourApp.xcarchiveYourApp换成你实际的项目名称 - 准备一个
ExportOptions.plist文件,放在项目根目录,内容根据你的分发方式调整。比如 Ad Hoc 模式的配置:
团队ID可以在 Apple Developer 后台查看,或者在 Xcode 的<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>method</key> <string>ad-hoc</string> <key>teamID</key> <string>你的开发者团队ID</string> <key>uploadSymbols</key> <false/> </dict> </plist>Signing & Capabilities里看 - 执行导出命令:
xcodebuild -exportArchive -archivePath ./build/YourApp.xcarchive -exportPath ./build -exportOptionsPlist ExportOptions.plist - 导出完成后,
./build目录下就会有.ipa文件了
一些关键注意事项
- 必须使用付费的 Apple 开发者账号,免费账号只能在模拟器运行,没法生成可分发的
.ipa - 如果遇到编译错误,先检查
pod install是否成功,Xcode 里的签名配置有没有问题,项目里的原生代码有没有语法错误 - 要是签名时提示“证书无效”或者“设备未注册”,去 Apple Developer 后台检查证书和设备列表,确保测试设备已经添加到账号里
内容的提问来源于stack exchange,提问作者hanzichi
相关产品推荐
相关产品推荐

