Chuyển app sang tài khoản Apple Developer khác
Bởi Mehdi Azizi
Đăng ngày , 9 phút
Chuyển app: chủ tài khoản khởi tạo App Transfer, bên nhận chấp nhận trong 60 ngày. App giữ đánh giá và Bundle ID. Điều kiện, các bước, cạm bẫy.
Để chuyển một app từ tài khoản Apple Developer này sang tài khoản khác, Apple có tính năng chuyển app (app transfer) trong App Store Connect. Chủ tài khoản bên chuyển khởi tạo việc chuyển, chủ tài khoản bên nhận chấp nhận trong vòng 60 ngày, sau đó quá trình xử lý mất tối đa hai ngày làm việc. App vẫn được bán, giữ nguyên điểm xếp hạng, đánh giá và Bundle ID, người dùng vẫn tiếp tục nhận bản cập nhật.
Những thứ sẽ hỏng thì phải chuẩn bị trước khi bấm nút: TestFlight, gói đăng ký, Sign in with Apple, thông báo đẩy, keychain dùng chung. Mình chưa tự chuyển app nào cả. Hướng dẫn này dựa trên các trang trợ giúp của Apple, đọc lại ngày 3 tháng 11 năm 2026, và danh sách cuối bài là danh sách mình sẽ áp dụng cho các app của mình, xây bằng Expo và RevenueCat.
Khi nào nên chuyển app
Theo phần giới thiệu về chuyển app, tính năng này dùng khi bạn đã bán app cho một developer khác, hoặc khi bạn muốn chuyển app sang một tài khoản hay một tổ chức khác. Ví dụ điển hình với dev độc lập: chuyển từ tài khoản cá nhân sang tài khoản công ty. Để mở tài khoản đó, hãy đọc trước hướng dẫn về số D-U-N-S.
Việc chuyển chỉ di chuyển app, không di chuyển tài khoản của bạn. Mỗi app được chuyển riêng, và app rời hẳn khỏi tài khoản của bạn khi quá trình hoàn tất.
Chín điều kiện của Apple
Trang tiêu chí chuyển app liệt kê chín điều kiện, theo thứ tự này:
| Tiêu chí của Apple | Bạn cần kiểm tra |
|---|---|
| Không tài khoản nào đang chờ hoặc đang trong quá trình thay đổi, và cả hai đã chấp nhận phiên bản mới nhất của hợp đồng trả phí và miễn phí | Business, tab Agreements, ở cả hai bên |
| App có ít nhất một phiên bản đã phát hành trên App Store | App chưa từng phát hành thì không chuyển được |
| App không ở trạng thái đặt trước (pre-order) ở bất kỳ quốc gia hay khu vực nào | Đợt đặt trước đã kết thúc hoặc đã gỡ |
| App không có trạng thái nào trong số: Processing for Distribution, Waiting for Review, In Review, Accepted, Pending Developer Release, Pending Apple Release | Phiên bản mới nhất của bạn đang được bán |
| Các mua hàng trong app có một trong các trạng thái: Approved, Ready to Submit, Developer Removed from Sale, Rejected | Không có mua hàng trong app nào đang review hoặc chưa hoàn thiện |
| Các gói tài nguyên do Apple lưu trữ không có phiên bản nào ở Waiting for Review hoặc In Review, trên TestFlight hay App Store | Không có gì đang review ở phần này |
| Không mã sản phẩm mua hàng trong app nào của app đã được một app của bên nhận sử dụng | So sánh các mã sản phẩm của hai tài khoản |
| App Mac từng dùng sandbox và chia sẻ Application Group Container Directory với các app Mac khác thì không chuyển được | Chỉ một số app Mac |
| App Apple Arcade không chuyển được | Ít dự án bị ảnh hưởng |
Hãy đợi phiên bản mới nhất được bán rồi mới khởi tạo việc chuyển.
Chuẩn bị chuyển app
Những điểm sau cần xử lý trước khi bấm nút, theo các trang trợ giúp của Apple:
- Sao lưu mọi thứ. App sẽ rời tài khoản của bạn: hãy xuất metadata, giá, ngày phát hành, doanh số và lượt tải.
- Tắt TestFlight. Gỡ mọi build và mọi tester, và xóa trống các trường Test Information ở mọi ngôn ngữ. Cách hoạt động của các nhóm có trong hướng dẫn TestFlight.
- Dọn sạch Xcode Cloud và gỡ entitlement App Replacement nếu có, bằng một bản cập nhật đã phát hành.
- Gói đăng ký: chia sẻ shared secret riêng của app. App bán gói đăng ký tự gia hạn phải dùng shared secret riêng của app. Bạn tạo nó, gửi cho bên nhận, rồi khởi tạo việc chuyển. Bên nhận cập nhật server trước khi chấp nhận, và tạo secret mới sau khi chuyển xong.
- Sign in with Apple: tách nhóm và chuẩn bị mã định danh. Chi tiết ở bên dưới.
- Webhook: quyết định. Chúng đi theo app. Hãy xóa trước nếu bạn không muốn nhận sự kiện nữa, hoặc để bên nhận chuyển hướng chúng.
Hai ảnh hưởng về tiền cần biết. Theo trang Small Business Program, doanh thu ròng của app trong năm dương lịch được tính cho mọi tài khoản khởi tạo hoặc chấp nhận việc chuyển. Vì vậy ngưỡng 1 triệu đô la được tính có cả app này, ở cả hai bên: xem mức hoa hồng 15 %. Và sau khi chuyển, không thể tạo mã khuyến mãi mới nào cho app nữa: các mã đã có vẫn dùng được bốn tuần kể từ khi tạo.
Các bước phía bên chuyển
Chỉ chủ tài khoản (Account Holder) mới khởi tạo được việc chuyển. Người đó cần Apple ID của chủ tài khoản bên nhận và Team ID của tài khoản đó. Theo trợ giúp về khởi tạo chuyển app:
- Trong Apps, chọn app.
- Ở thanh bên, dưới General, bấm App information, rồi kéo xuống Additional Information.
- Bấm Transfer App. Bạn có thể được yêu cầu nhập mã xác thực hai yếu tố.
- Nếu đủ mọi tiêu chí, bấm Continue. Nếu không, bấm Cancel và xử lý phần còn thiếu.
- Nhập Apple ID của chủ tài khoản bên nhận và Team ID, rồi bấm Continue.
- Đọc điều khoản, tích ô đồng ý, rồi bấm Request Transfer.
- Bấm Done.
App giữ nguyên trạng thái, kèm thêm nhãn Pending App Transfer. Trong thời gian này, bạn không thể sửa metadata, giá, tình trạng phát hành hay mua hàng trong app. Các trao đổi đang mở với App Review sẽ bị đóng.
Các bước phía bên nhận
Chỉ chủ tài khoản bên nhận mới chấp nhận được, trong vòng 60 ngày. Theo trợ giúp về chấp nhận chuyển app:
- Đăng nhập App Store Connect: một cảnh báo thông báo có app đang chờ chuyển.
- Mở Business: cảnh báo hiện trong Agreements.
- Dưới App Transfers, bấm Review.
- Điền URL hỗ trợ, URL marketing và URL chính sách quyền riêng tư nếu app có, cùng thông tin liên hệ cho App Review và App Store.
- Trong User Access, chọn ai trong team được thấy app.
- Trong App privacy, giữ lại hoặc làm lại câu trả lời của chủ cũ. Nếu chưa có câu trả lời, bạn phải điền trước phiên bản tiếp theo.
- Đọc điều khoản, tích ô đồng ý, rồi bấm Accept.
Việc chuyển chuyển sang Processing App Transfer, mất tối đa hai ngày làm việc. Nếu app cần tài liệu xuất khẩu, nó sẽ qua trạng thái Waiting for Export Compliance. Khi xong, cả hai chủ tài khoản đều được thông báo, và app biến mất khỏi tài khoản bên chuyển. Sau đó bên nhận tạo provisioning profile mới, gắn với App ID của app và chứng chỉ phân phối: xem chứng chỉ và profile iOS.
Chừng nào trạng thái còn là Waiting for Recipient, mỗi bên đều có thể hủy: Cancel Transfer với bên chuyển, Decline với bên nhận, trong mục App Transfers của Business.
Thứ gì đi theo app và thứ gì hỏng
| Thành phần | Sau khi chuyển | Cần làm |
|---|---|---|
| Bundle ID và App ID | Đi theo, App ID wildcard trở thành App ID explicit | Không gì cả |
| Điểm xếp hạng, đánh giá, cập nhật | Đi theo, app vẫn được bán | Không gì cả |
| Gói đăng ký tự gia hạn | Yêu cầu shared secret riêng của app | Gửi secret trước, tạo lại sau |
| iCloud | Dữ liệu, container và mã key-value đi theo | Cập nhật mã key-value trong entitlements |
| Service ID của Sign in with Apple | Đi theo, trừ khi bạn gỡ liên kết trước | Đổi mã chuyển giao trong 60 ngày |
| Webhook | Đi theo | Xóa trước, hoặc chuyển hướng sau |
| Thông báo đẩy | Chứng chỉ vẫn hợp lệ đến khi hết hạn | Khóa APNs của bên nhận, cập nhật server |
| Keychain dùng chung | Hoạt động đến bản cập nhật tiếp theo | Tạo lại nhóm với Team ID của bên nhận |
| App Groups | App vẫn khả dụng | Xóa nhóm ở bên chuyển, đăng ký ở bên nhận |
| Apple Pay | Merchant ID không đi theo | Merchant ID mới trước bản cập nhật tiếp theo |
| Thẻ Wallet | Thẻ do app cập nhật phải phát hành lại | Mã định danh mới |
| Mã khuyến mãi | Không tạo được mã mới | Mã cũ dùng được bốn tuần |
| Doanh số và thanh toán | Bên chuyển giữ phần trước, bên nhận nhận phần sau | Xuất dữ liệu trước khi khởi tạo |
| App Analytics | Bên chuyển mất quyền truy cập, bên nhận nhận lịch sử | Không gì cả |
| Đề cử, lịch sử bundle | Không đi theo | Ghi lại và gửi trước khi khởi tạo |
Keychain cần đặc biệt chú ý. Apple cảnh báo: sau bản cập nhật, app không còn tìm thấy token đăng nhập lưu trong keychain dùng chung, và người dùng phải đăng nhập lại một lần. Nếu app của bạn chia sẻ keychain với app khác hoặc extension, hãy báo trước cho người dùng trước khi phát hành bản cập nhật đó.
Với Game Center, các nhóm, bảng xếp hạng gộp và quy tắc matchmaking phải được bên nhận làm lại. App Mac Catalyst được chuyển theo hai bước, app iPad trước.
Sign in with Apple: mã chuyển giao
Với Sign in with Apple, mã định danh của mỗi người dùng là riêng cho team của bạn. Bên nhận không thể dùng lại nguyên như vậy. Tài liệu của Apple về chuyển người dùng gồm ba bước:
- Tách nhóm các app. App đang được nhóm với app khác cho Sign in with Apple thì không chuyển được.
- Tạo một mã chuyển giao cho mỗi người dùng. Với token lấy theo scope
user.migration, bạn gọi endpointusermigrationinfovới mã định danh người dùng và Team ID của bên nhận. Phản hồi chứa mộttransfer_sub. - Chỉ gửi các mã chuyển giao. Không gửi mã định danh của team bạn, cũng không gửi địa chỉ email riêng tư.
Bạn có thể tạo các mã này trước khi bên nhận chấp nhận, hoặc đến 60 ngày sau đó. Bên nhận có 60 ngày sau khi chấp nhận để đổi chúng lấy mã định danh của riêng mình. Hãy lên kế hoạch cho việc đổi này trước khi khởi tạo chuyển. Một ảnh hưởng khác: nếu người dùng không dùng app nào khác của bạn, bạn không thể gửi email đến địa chỉ riêng tư của họ sau khi chuyển. Quy tắc đăng nhập có trong guideline 4.8.
Các mốc thời gian cần nhớ
| Bước | Thời hạn |
|---|---|
| Bên nhận chấp nhận | 60 ngày sau khi khởi tạo |
| Xử lý sau khi chấp nhận | Tối đa hai ngày làm việc |
| Đổi mã Sign in with Apple | 60 ngày sau khi chấp nhận |
| Mã khuyến mãi đã có | Bốn tuần sau khi tạo |
| Chứng chỉ APNs của app được chuyển | Đến ngày hết hạn |
Danh sách của mình cho app Expo dùng RevenueCat
Đây là những gì mình sẽ kiểm tra, theo thứ tự, cho một app của mình:
- Xuất doanh số, lượt tải và analytics trước khi khởi tạo.
- Đợi phiên bản mới nhất được bán, và các mua hàng trong app có trạng thái hợp lệ.
- Tắt TestFlight: build, tester và Test Information.
- Gửi shared secret riêng của app, rồi khởi tạo việc chuyển.
- Phía bên nhận, sau khi chấp nhận: tạo shared secret mới, điền vào mọi dịch vụ kiểm tra gói đăng ký, kể cả RevenueCat. Khóa mua hàng trong app được tạo trong Users and Access, tab Integrations, và chỉ tải xuống được một lần, theo trợ giúp của App Store Connect.
- Kiểm tra địa chỉ server notification trong trang thông tin app. Trang của Apple về chuyển app không nhắc đến: hãy kiểm tra thay vì đoán.
- Tạo lại profile và khóa APNs trong tài khoản bên nhận. Với app Expo, cách làm có trong chứng chỉ push APNs với Expo.
- Phát hành một bản cập nhật ký bằng tài khoản mới, kèm thông báo đăng nhập lại nếu keychain được dùng chung.
Phát hành mà không mất những gì đang chạy tốt
iOS & Android Kit xuất phát từ code khởi đầu của các app của mình và đi qua bốn bước đến App Store, theo nhịp của bạn. Toàn bộ quy trình có ở trang phát hành ứng dụng lên App Store.
Trước khi thay đổi bất cứ điều gì, làm bài chẩn đoán miễn phí: nó sắp xếp lại các bước theo đúng thứ tự và gửi bạn checklist chống bị Apple từ chối của mình.
Câu hỏi thường gặp
Chuyển app trên App Store mất bao lâu?
Bên nhận có 60 ngày để chấp nhận. Sau khi chấp nhận, Apple cho biết thời gian xử lý tối đa hai ngày làm việc. Nếu app cần tài liệu xuất khẩu, sẽ có thêm một bước kiểm tra.
App có biến mất khỏi App Store trong lúc chuyển không?
Không. App vẫn được bán trong và sau khi chuyển. App giữ điểm xếp hạng, đánh giá và Bundle ID, người dùng vẫn tiếp tục nhận bản cập nhật.
Người đăng ký có giữ gói đăng ký sau khi chuyển không?
Apple không mô tả việc gián đoạn nào với người đăng ký. Yêu cầu duy nhất là shared secret riêng của app: bên chuyển gửi trước, bên nhận cập nhật server, rồi tạo secret mới sau khi chuyển.
Có chuyển được app chưa từng phát hành không?
Không. App phải có ít nhất một phiên bản đã phát hành trên App Store. App cũng không được ở trạng thái đặt trước hay đang review.
Ai có thể khởi tạo và chấp nhận việc chuyển app?
Chỉ chủ tài khoản, gọi là Account Holder. Bên chuyển cần Apple ID của chủ tài khoản bên nhận và Team ID của tài khoản đó.
Có hủy được việc chuyển app không?
Có, chừng nào trạng thái còn là Waiting for Recipient. Bên chuyển bấm Cancel Transfer, bên nhận bấm Decline, trong mục App Transfers của Business. Nếu không có phản hồi, việc chuyển hết hạn sau 60 ngày.

