不上架App Store把自己的App装到iPhone
作者:Mehdi Azizi
发布于 ,10分钟
有Mac和Xcode就能免费安装,但7天后失效。付费账号、TestFlight、Expo build或Expo Go,按情况选择。
可以,你完全可以不经过 App Store,把自己的 App 装到 iPhone 上,甚至可以免费。你需要一台 Mac、Xcode 和一个普通的 Apple 账号。但用免费账号安装的 App 会在 7 天后失效:你得重新编译、重新安装。想保留更久,或者在没有 Mac 的情况下安装,就需要付费加入 Apple Developer Program,每年 99 美元。
我自己的 App,Solys、TradaZen 和 Nolera,早在上线之前就在我的 iPhone 上测试了。这篇指南对比五种官方途径,依据的是我在 2026 年 11 月 3 日重新核对过的 Apple 和 Expo 官方页面。如果你关心的是做一个 App 的整体成本,建议先看免费开发 iPhone 应用。
五种安装方式对比
| 方式 | 费用 | 是否需要 Mac | 安装有效期 |
|---|---|---|---|
| Xcode,免费账号 | 免费 | 是 | 7 天 |
| Xcode,付费账号 | 每年 99 美元 | 是 | 最长 12 个月 |
| 通过链接安装的 Expo build | 每年 99 美元 | 否 | 最长 12 个月 |
| TestFlight | 每年 99 美元 | 否 | 每个 build 90 天 |
| Expo Go | 免费 | 否 | 依赖你的电脑 |
逐行说明限制:
- 免费账号:3 台设备、10 个 App ID,有效期 7 天,每台设备最多 3 个 App。
- 付费账号,Xcode 或 Expo 链接:每个会员年度最多注册 100 台 iPhone。
- TestFlight:最多 100 名内部测试员和 10000 名外部测试员,外部测试需要 Apple 审核。
- Expo Go:你的项目运行在 Expo Go 这个 App 里面,不能用自定义原生模块。
12 个月的有效期指的是安装描述文件的有效期,来源是 Expo 文档。其他数字来自下文引用的 Apple 页面。
免费方式:Mac 加 Xcode
这是不付会员费、把真正的原生 App 装到 iPhone 上的唯一官方方式。Xcode 在 Mac App Store 免费下载。当前版本要求 macOS 26.6,以及搭载 Apple M1 或更新芯片的 Mac。
根据 Xcode 文档,步骤如下:
- 在 Xcode 中登录你的 Apple 账号,菜单 Settings,然后 Apple Accounts。没有会员资格时,Xcode 会显示为 Personal Team。
- 打开项目的 Signing & Capabilities 标签页。点击 Set Up Signing,选择你的团队,并填写一个唯一的 bundle ID。
- 用 Device Hub 把 iPhone 和 Mac 配对,有线或无线都可以。
- 选择你的 iPhone 作为运行目标,然后点击 Run。Xcode 会注册设备并生成安装描述文件。
用 Expo 的话,npx expo run:ios --device 命令做的是同一件事:它用 Xcode 在本地编译项目,并安装到连接的 iPhone 上。Expo 明确说明:这种本地编译是在没有付费账号的情况下,把开发 build 装到 iPhone 上的唯一方式。
免费账号的限制
Apple 关于开发者账号的帮助页面为 Personal Team 规定了三项限制:
- 最多 10 个 App ID,7 天后过期;
- 最多 3 台设备,同样 7 天后过期;
- 每台设备最多 3 个 App。
安装描述文件在创建 7 天后过期。 过期后,Apple 要求你重新编译 App,并从 Xcode 重新安装。根据同一页面的表格,免费账号无法使用 App Store Connect、TestFlight,也无法进入证书和描述文件管理区。如果是你每周都在改的个人 App,这还能接受。如果是你想每天随手就用的 App,很快就会觉得麻烦。
在 iPhone 上开启开发者模式
由 Xcode 编译的 App,或者从 .ipa 文件安装的 App,在开发者模式关闭时无法打开。Apple 设计这个模式是为了防止用户无意中安装有风险的软件。它不影响从 App Store 或 TestFlight 安装的 App。
开启方法:
- 打开 Settings,然后 Privacy & Security。
- 在 Security 下面,开启 Developer Mode。
- 在弹窗中点击 Restart。
- 重启后,点击 Turn On 确认,再输入你的密码。
根据 Apple 的说明,只有在开始与 Mac 配对之后,或者 iPhone 曾经配对过,这个选项才会出现在设置里。根据 Expo 的说明,通过链接安装的 Expo build 和本地开发 build 也需要开发者模式。没有 Mac 的话,Expo 建议先安装 build,再点它的图标:这时会弹出提示,让你开启这个模式。
付费账号:让 App 一直装着
加入 Apple Developer Program 每个会员年度 99 美元,注册时会以当地货币显示价格。个人和组织怎么选、会员资格包含什么,详见 Apple 开发者账号:价格与注册。
有了会员资格,安装就不再只有 7 天。Expo 指出,安装描述文件在 12 个月后过期。根据 Apple 关于设备的帮助页面,每个会员年度最多可以注册 100 台 iPhone。停用设备并不会腾出名额:计数要到下一个会员年度开始时才会重置为 100。
你可以继续用 Xcode 安装,也可以改用下面两种不需要 Mac 的方式之一。
通过链接安装 Expo build
Expo 把这种方式叫做内部分发。EAS 的服务器编译你的 App,然后给你一个安装链接。这需要付费的 Apple Developer 账号。
- 注册你的 iPhone,用
eas device:create。这个命令会生成一个链接或二维码,在手机上打开即可。 - 在
eas.json中添加一个 profile,设置"distribution": "internal",参照 Expo 教程。 - 用这个 profile 运行 iOS build,然后在 iPhone 上打开安装链接。
之后新增的 iPhone 需要重新 build,或者对现有 build 重新签名。Expo 还提醒,已停用的设备仍然计入 100 台的上限。
对于使用了原生模块的个人 App,这是最理想的方式。我的 App 还在用 Expo SDK 57,而 App Store 上的 Expo Go 跟的是 SDK 58:所以我用自己的 build 测试,而不是在 Expo Go 里。
TestFlight:最省心的方式
TestFlight 会像普通 App 一样安装你的 App,不需要开发者模式,也不需要注册设备。根据 App Store Connect 帮助,每个 build 可用 90 天。你最多可以邀请 100 名内部测试员,也就是有权访问你 App 的 App Store Connect 用户。
这是我日常用的方式。我的 App 的内部测试组设成了自动分发:每次上传的 build 都会自动出现在我 iPhone 上的 TestFlight App 里。Expo 也确认了这一点:build 会被加入开启了自动分发的测试组。
如果测试员不在你的团队里,Apple 要求审核第一个 build。完整细节见 TestFlight:测试你的 iPhone 应用。
Expo Go:一分钱不花先试试
Expo Go 是一个免费 App,从你的电脑加载项目。这是在 iPhone 上看到第一批界面最快的方式,用 PC 也行。从 2026 年 9 月起,Expo 要求登录你的 Expo 账号,终端和 iPhone 上的 App 里都要登录。
有两个限制需要知道:
- 版本。 Expo Go 只支持最新版本的 SDK。它在 App Store 上的版本于 2026 年 10 月 22 日发布,跟的是 SDK 58。但这种跟进并没有保证:根据 Expo 2026 年 5 月 4 日的更新日志,2026 年春天它一直停留在 SDK 54,等待 Apple 审核通过。因此从 SDK 56 开始,
create-expo-app会让你创建一个与 App Store 版本兼容的项目。如果你的项目用的是其他 SDK,eas go可以生成你自己的 Expo Go 副本,通过 TestFlight 分发,但需要付费会员资格。 - 原生模块。 Expo 明说了:Expo Go 是用来学习的试验场,功能有限,不适合要上线的项目。一旦你加入 Expo Go 里没有的原生模块,就需要开发 build。
用 Windows 电脑
Xcode 只有 Mac 版。在 Windows 上,没有任何官方方式能免费把原生 App 装到 iPhone 上。 Expo 的 FAQ 总结得很清楚:在云端编译,用 Expo Go 或开发 build 在真机上测试。你还剩两条路:
- 免费:Expo Go,项目要兼容它在 App Store 上的版本。
- 付费会员:EAS 服务器编译你的 App,然后通过链接或 TestFlight 安装。Expo 说明,它的提交服务在 Windows 和 Linux 上也能用于 iOS。
不用 Mac 的完整流程见没有 Mac 也能发布 iOS 应用。
该选哪种方式
- App 只给自己用,你有 Mac,每周重装一次也无所谓:Xcode 加免费账号。
- 你想每天随手就用:付费会员,然后用 TestFlight。
- 你的 App 用了原生模块,而你没有 Mac:付费会员,然后通过链接安装 Expo build。
- 你刚入门,只想看看界面效果:Expo Go。
- 你想分享给几个亲友:TestFlight,用内部测试员或外部测试组。
打造你要安装的 App
安装只是最后一步。如果你用 AI 开发 App,iOS & Android Kit 以我自己 App 的起步代码为基础,已经为 Expo 配置好,带你按自己的节奏走完四个步骤,直到上架 App Store。AI 在移动项目上常犯的错误,详见用 AI 开发应用。
如果你还不确定该怎么做,免费做个诊断:它会告诉你真正卡住你的是什么,并发给你我的 Apple 防拒审清单。用 Expo 的完整方法见 React Native 和 Expo 移动应用页面。
常见问题
能不能不通过 App Store,免费把自己的 App 装到 iPhone 上?
可以,用 Mac、Xcode 和免费的 Apple 账号。Xcode 会编译 App 并安装到连接的 iPhone 上。安装 7 天后失效,而且最多 3 台设备、每台设备 3 个 App。
为什么用 Xcode 安装的 App 7 天后就打不开了?
使用免费账号时,Apple 会让安装描述文件在创建 7 天后过期。这时重新编译 App,再从 Xcode 重新安装即可。付费会员的描述文件最长可用 12 个月。
怎么在 iPhone 上开启开发者模式?
打开 Settings,然后 Privacy & Security,在 Security 下开启 Developer Mode。点击 Restart,然后点击 Turn On 并输入密码确认。iPhone 与 Mac 配对后这个选项才会出现。没有 Mac 的话,先安装 build,再点它的图标:会弹出提示让你开启这个模式。
能用 Windows 安装自己的 iPhone App 吗?
原生 App 没法免费安装,因为 Xcode 只有 Mac 版。免费的话,你可以在 Expo Go 里运行项目。有付费会员的话,EAS 在云端编译 App,然后你通过链接或 TestFlight 安装。
一个开发者账号能注册多少台 iPhone?
付费账号每个会员年度最多 100 台 iPhone。停用设备不会腾出名额。免费账号上限是 3 台设备,7 天后过期。
用 TestFlight 安装的 App 能用多久?
每个 build 可用 90 天。到期前上传新的 build,然后在 TestFlight App 里安装即可。

