# App Store 转移 App 到另一个开发者账号：步骤与条件

> 由账号持有人在 App Store Connect 发起 App 转移，接收方需在 60 天内接受。App 保留评分、评论和 Bundle ID。

原始页面：[App Store 转移 App 到另一个开发者账号：步骤与条件](https://devoria.fr/zh-hans/blog/transfer-app-another-apple-developer-account)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-11-04
内容最后修订：2026-11-04


想把一个 App 从一个 Apple Developer 账号转到另一个账号，Apple 在 App Store Connect 里提供了 App 转移功能。**转出账号的持有人发起转移，接收账号的持有人在 60 天内接受，之后整个过程最多需要两个工作日。** App 在此期间照常销售，保留评分、评论和 Bundle ID，用户也会继续收到更新。

会出问题的地方要在点按钮之前准备好：TestFlight、订阅、Sign in with Apple、推送通知、共享钥匙串。我自己还没转移过 App。这篇指南依据的是 Apple 的帮助页面（2026 年 11 月 3 日重新核对过），最后那份清单是我会用在自己 App 上的，我的 App 都是用 Expo 和 RevenueCat 做的。

## 什么时候需要转移 App

根据 [App 转移概述](https://developer.apple.com/help/app-store-connect/transfer-an-app/overview-of-app-transfer)，这个功能适用于你把 App 卖给了另一位开发者，或者想把它挪到另一个账号、另一个组织。独立开发者最典型的情况：从个人账号转到自己公司的账号。要开公司账号，先看看 [D-U-N-S 编号](https://devoria.fr/zh-hans/blog/apple-duns-number-free-request) 这篇指南。

**转移的是 App，不是你的账号。** 每个 App 单独转移，转移完成后它会彻底离开你的账号。

## Apple 的九项条件

[转移条件](https://developer.apple.com/help/app-store-connect/transfer-an-app/app-transfer-criteria) 页面按顺序列了九项：

| Apple 的条件                                                                                                                                   | 你要检查什么                           |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
| 两个账号都没有处于待处理或变更中的状态，且双方都已接受最新版本的付费和免费协议                                                                 | 双方都看 Business 里的 Agreements 标签 |
| App 至少有一个版本已在 App Store 上架                                                                                                          | 从未上架的 App 不能转移                |
| App 在任何国家或地区都没有处于预订状态                                                                                                         | 预订已结束或已撤下                     |
| App 不处于以下任一状态：Processing for Distribution、Waiting for Review、In Review、Accepted、Pending Developer Release、Pending Apple Release | 你的最新版本正在销售                   |
| App 内购买项目处于以下状态之一：Approved、Ready to Submit、Developer Removed from Sale、Rejected                                               | 没有在审核中或未完成的 App 内购买项目  |
| Apple 托管的资源包在 TestFlight 或 App Store 上没有处于 Waiting for Review 或 In Review 的版本                                                 | 这方面没有任何东西在审核中             |
| App 的 App 内购买产品 ID 没有被接收方的 App 使用                                                                                               | 对比两个账号的产品 ID                  |
| 使用过沙盒、并与其他 Mac App 共享 Application Group Container Directory 的 Mac App 不能转移                                                    | 只涉及部分 Mac App                     |
| Apple Arcade 的 App 不能转移                                                                                                                   | 涉及的项目很少                         |

**等你的最新版本正式上架销售后，再发起转移。**

## 转移前的准备

根据 Apple 的帮助页面，下面这些要在点按钮之前处理好：

- **全部备份。** App 会离开你的账号：导出元数据、价格、上架日期、销售和下载数据。
- **清空 TestFlight。** 移除所有构建版本和所有测试员，并清空每种语言下 Test Information 的字段。分组的用法见 [TestFlight 指南](https://devoria.fr/zh-hans/blog/testflight-guide-test-iphone-app)。
- **清空 Xcode Cloud**，如果有 App Replacement entitlement，就通过发布一次更新把它去掉。
- **订阅：共享 App 专用密钥。** 销售自动续期订阅的 App 必须使用 App 专用共享密钥。你生成它，交给接收方，然后再发起转移。接收方在接受前更新自己的服务器，转移完成后再生成一个新密钥。
- **Sign in with Apple：解除分组并准备好标识符。** 下文详细说明。
- **Webhook：做个决定。** 它们会跟着 App 走。如果你不想再收到事件，就提前删掉，或者让接收方去改指向。

钱方面有两个影响要知道。根据 [Small Business Program 页面](https://developer.apple.com/app-store/small-business-program/)，这个 App 在该自然年内的净收入会计入所有发起或接受转移的账号。所以 100 万美元的门槛，双方都要把这个 App 算进去：见 [15% 佣金](https://devoria.fr/zh-hans/blog/apple-small-business-program-15-percent-commission)。另外，转移之后就不能再为这个 App 创建新的促销代码：已有的代码在创建后四周内仍然有效。

## 转出方的步骤

只有账号持有人（Account Holder）可以发起转移。他需要接收方账号持有人的 Apple ID，以及该账号的 Team ID。根据 [发起转移的帮助页面](https://developer.apple.com/help/app-store-connect/transfer-an-app/initiate-an-app-transfer)：

1. 在 Apps 中选择这个 App。
2. 在侧边栏 General 下点击 App information，然后往下滚到 Additional Information。
3. 点击 Transfer App。可能会要求你输入双重认证验证码。
4. 如果所有条件都满足，点击 Continue。否则点 Cancel，把缺的补上。
5. 输入接收方账号持有人的 Apple ID 和 Team ID，然后点 Continue。
6. 阅读条款，勾选同意，然后点击 Request Transfer。
7. 点击 Done。

App 保持原有状态，另外加上 Pending App Transfer 标记。在此期间，你不能再修改它的元数据、价格、上架范围和 App 内购买项目。与 App Review 正在进行的沟通会被关闭。

## 接收方的步骤

只有接收账号的持有人可以接受，期限 60 天。根据 [接受转移的帮助页面](https://developer.apple.com/help/app-store-connect/transfer-an-app/accept-an-app-transfer)：

1. 登录 App Store Connect：会有提醒告诉你有 App 待转移。
2. 打开 Business：提醒出现在 Agreements 里。
3. 在 App Transfers 下点击 Review。
4. 填写支持 URL、营销 URL，如果 App 原来有隐私政策 URL 也一并填写，再填好 App Review 和 App Store 的联系人。
5. 在 User Access 中选择团队里谁能看到这个 App。
6. 在 App privacy 中沿用或重新填写原所有者的回答。如果没有回答，要在下一个版本之前补全。
7. 阅读条款，勾选同意，然后点击 Accept。

转移进入 Processing App Transfer 状态，最多两个工作日。如果 App 需要出口合规文件，会经过 Waiting for Export Compliance。完成后双方持有人都会收到通知，App 从转出方账号中消失。**接收方随后要创建新的描述文件**，与 App 的 App ID 和分发证书关联：见 [iOS 证书和描述文件](https://devoria.fr/zh-hans/blog/ios-certificate-provisioning-profile-expo)。

只要状态还是 Waiting for Recipient，双方都可以取消：转出方在 Business 的 App Transfers 区域点 Cancel Transfer，接收方点 Decline。

## 哪些会跟着走，哪些会出问题

| 项目                             | 转移之后                                | 要做什么                         |
| -------------------------------- | --------------------------------------- | -------------------------------- |
| Bundle ID 和 App ID              | 跟着走，通配符 App ID 会变成显式 App ID | 无                               |
| 评分、评论、更新                 | 跟着走，App 照常销售                    | 无                               |
| 自动续期订阅                     | 要求使用 App 专用共享密钥               | 转移前交出密钥，转移后重新生成   |
| iCloud                           | 数据、容器和键值标识符都跟着走          | 更新 entitlements 中的键值标识符 |
| Sign in with Apple 的 Service ID | 跟着走，除非你事先解除关联              | 60 天内兑换转移标识符            |
| Webhook                          | 跟着走                                  | 事先删除，或之后改指向           |
| 推送通知                         | 证书在到期前仍然有效                    | 接收方的 APNs 密钥，更新服务器   |
| 共享钥匙串                       | 在下一次更新前仍能用                    | 用接收方的 Team ID 重建分组      |
| App Groups                       | App 仍可使用                            | 转出方删除分组，接收方重新注册   |
| Apple Pay                        | merchant ID 不跟着走                    | 下次更新前申请新的 merchant ID   |
| Wallet 卡券                      | 由 App 更新的卡券需要重新签发           | 新的标识符                       |
| 促销代码                         | 不能再创建新代码                        | 旧代码有效期四周                 |
| 销售和付款                       | 转出方保留转移前的，接收方获得转移后的  | 发起前导出                       |
| App Analytics                    | 转出方失去访问权，接收方获得历史数据    | 无                               |
| 推荐提名、构建包历史             | 不跟着走                                | 发起前记下来并交给对方           |

钥匙串要特别注意。Apple 提醒：更新之后，App 找不到存放在共享钥匙串里的登录令牌，**用户需要重新登录一次**。如果你的 App 和另一个 App 或扩展共享钥匙串，发布这个更新前要提前告知用户。

Game Center 方面，分组、合并排行榜和配对规则都要由接收方重新设置。Mac Catalyst App 分两步转移，先转 iPad App。

## Sign in with Apple：转移标识符

使用 Sign in with Apple 时，每个用户的标识符都是你团队专属的。接收方不能直接拿来用。[Apple 关于转移用户的文档](https://developer.apple.com/documentation/signinwithapple/transferring-your-apps-and-users-to-another-team) 分三步：

1. **解除 App 分组。** 在 Sign in with Apple 中与其他 App 分在一组的 App 不能转移。
2. **为每个用户生成一个转移标识符。** 用通过 `user.migration` scope 获取的令牌，调用 `usermigrationinfo` 端点，传入用户标识符和接收方的 Team ID。响应中包含一个 `transfer_sub`。
3. **只交出转移标识符。** 不要交出你团队的标识符，也不要交出私密邮箱地址。

这些标识符可以在接受之前生成，也可以在接受后 60 天内生成。**接收方在接受后有 60 天时间把它们兑换成自己的标识符。** 发起转移前就要把这次兑换安排好。还有一个影响：如果某个用户没有使用你的其他 App，转移后你就不能再通过他的私密地址给他发邮件。登录相关规则见 [4.8 条准则](https://devoria.fr/zh-hans/blog/guideline-4-8-sign-in-with-apple)。

## 要记住的期限

| 步骤                           | 期限           |
| ------------------------------ | -------------- |
| 接收方接受                     | 发起后 60 天   |
| 接受后的处理                   | 最多两个工作日 |
| 兑换 Sign in with Apple 标识符 | 接受后 60 天   |
| 已有促销代码                   | 创建后四周     |
| 转移的 APNs 证书               | 直到到期日     |

## 我给 Expo + RevenueCat App 准备的清单

如果是我的 App，我会按这个顺序检查：

1. **导出**销售、下载和分析数据，再发起转移。
2. **等待**最新版本上架销售，且 App 内购买项目处于允许的状态。
3. **清空 TestFlight**：构建版本、测试员和 Test Information。
4. **交出 App 专用共享密钥**，然后发起转移。
5. **接收方在接受之后**：生成新的共享密钥，填到所有校验订阅的服务里，包括 RevenueCat。App 内购买密钥在 Users and Access 的 Integrations 标签里创建，而且只能下载一次，见 [App Store Connect 帮助](https://developer.apple.com/help/app-store-connect/configure-in-app-purchase-settings/generate-keys-for-in-app-purchases)。
6. **检查 App 信息页里的服务器通知地址。** Apple 关于转移的页面没提到这一点：去确认一下，别想当然。
7. **在接收方账号里重新创建**描述文件和 APNs 密钥。Expo App 的操作方法见 [在 Expo 中配置 APNs 推送证书](https://devoria.fr/zh-hans/blog/apple-push-notification-certificate-p8-p12-expo)。
8. **用新账号签名并发布一次更新**，如果钥匙串是共享的，提前告知用户需要重新登录。

## 发布时别丢掉已经能用的东西

[iOS Kit](https://devoria.fr/zh-hans/kits/ios) 基于我自己 App 的起步代码，分四个步骤带你走到 App Store，节奏由你掌握。完整流程见 [把 App 发布到 App Store](https://devoria.fr/zh-hans/expertise/publish-an-app-on-the-app-store) 这一页。

在改动任何东西之前，[先做免费诊断](https://devoria.fr/zh-hans/diagnostic)：它会帮你理清步骤顺序，并把我的 Apple 防拒审清单发给你。

## 常见问题

### App Store 上的 App 转移需要多长时间？

接收方有 60 天时间接受。接受之后，Apple 表示处理最多需要两个工作日。如果 App 需要出口合规文件，还会多一个核查步骤。

### 转移期间 App 会从 App Store 下架吗？

不会。App 在转移期间和之后都照常销售。它保留评分、评论和 Bundle ID，用户也会继续收到更新。

### 转移后订阅用户还能保留订阅吗？

Apple 没有提到订阅用户会有任何中断。它唯一的要求是 App 专用共享密钥：转出方事先交出，接收方更新服务器，转移完成后再生成一个新的。

### 从未上架过的 App 能转移吗？

不能。App 至少要有一个版本已在 App Store 上架。它也不能处于预订或审核中的状态。

### 谁可以发起和接受 App 转移？

只有账号持有人，也就是 Account Holder。转出方需要接收方账号持有人的 Apple ID 和该账号的 Team ID。

### App 转移可以取消吗？

可以，只要状态还是 Waiting for Recipient。转出方在 Business 的 App Transfers 区域点 Cancel Transfer，接收方点 Decline。如果一直没有回应，转移会在 60 天后过期。


## 你的项目

[Review Kit](https://devoria.fr/zh-hans/kits/app-review)：我的 App Store 审核清单、我被 Apple 拒审后的修正方案、Google Play 审核清单，以及三个 Claude Code skill。¥369。

[iOS & Android Kit](https://devoria.fr/zh-hans/kits/ios)：用 Claude Code 打造你的 iPhone 和 Android 应用：我自己应用的起步代码、上架商店的完整流程，以及全部工具包。¥739。

[诊断：你离自己的 iPhone 应用还差什么](https://devoria.fr/zh-hans/diagnostic)：7 个问题，60 秒：看清真正阻碍你发布 iPhone 应用的原因，拿到你的 4 步路线和适合你的套件。
