Передача застосунку на інший акаунт Apple Developer
Автор: Mehdi Azizi
Опубліковано , 9 хв
Власник акаунта запускає App Transfer, отримувач приймає протягом 60 днів. Застосунок зберігає відгуки й Bundle ID. Умови, кроки, пастки.
Щоб перенести застосунок з одного акаунта Apple Developer на інший, Apple пропонує передачу застосунку (App Transfer) в App Store Connect. Власник акаунта, який передає, запускає передачу, власник акаунта, який отримує, приймає її протягом 60 днів, а потім операція триває до двох робочих днів. Застосунок залишається в продажу, зберігає оцінки, відгуки та Bundle ID, а користувачі й далі отримують оновлення.
Те, що ламається, треба підготувати до натискання кнопки: TestFlight, підписки, Sign in with Apple, push-сповіщення, спільний keychain. Я ще не передавав застосунок сам. Цей гайд спирається на довідкові сторінки Apple, які я перечитав 3 листопада 2026 року, а фінальний список це той, який я застосував би до своїх застосунків, зроблених на Expo і RevenueCat.
Коли передавати застосунок
Згідно з оглядом передачі застосунку, вона потрібна, коли ти продав застосунок іншому розробнику або хочеш перенести його в інший акаунт чи іншу організацію. Типовий приклад для інді-розробника: перейти з особистого акаунта на акаунт своєї компанії. Щоб відкрити такий акаунт, спершу прочитай гайд про номер D-U-N-S.
Передача переносить застосунок, а не твій акаунт. Кожен застосунок передається окремо, і після завершення операції він повністю зникає з твого акаунта.
Дев'ять умов Apple
Сторінка критеріїв передачі перелічує дев'ять умов у такому порядку:
| Критерій Apple | Що ти перевіряєш |
|---|---|
| Жоден з двох акаунтів не перебуває в очікуванні чи процесі змін, і обидва прийняли останню версію платних і безкоштовних угод | Business, вкладка Agreements, з обох боків |
| Застосунок має принаймні одну опубліковану версію в App Store | Застосунок, який ніколи не виходив, передати не можна |
| Застосунок не перебуває в передзамовленні в жодній країні чи регіоні | Передзамовлення завершене або зняте |
| Застосунок не має жодного з цих статусів: Processing for Distribution, Waiting for Review, In Review, Accepted, Pending Developer Release, Pending Apple Release | Твоя остання версія в продажу |
| Вбудовані покупки мають один з цих статусів: Approved, Ready to Submit, Developer Removed from Sale, Rejected | Жодної вбудованої покупки на перевірці чи незавершеної |
| Пакети ресурсів, розміщені в Apple, не мають жодної версії в Waiting for Review чи In Review, у TestFlight чи App Store | Тут нічого не на перевірці |
| Жоден ідентифікатор продукту вбудованої покупки застосунку вже не використовується застосунком отримувача | Порівняй ідентифікатори обох акаунтів |
| Mac-застосунок, який використовував sandbox і ділить свій Application Group Container Directory з іншими Mac-застосунками, передати не можна | Лише деякі Mac-застосунки |
| Застосунок Apple Arcade передати не можна | Стосується небагатьох проєктів |
Дочекайся, поки твоя остання версія з'явиться в продажу, перш ніж запускати передачу.
Підготовка до передачі
Ці пункти треба владнати до натискання кнопки, згідно з довідковими сторінками Apple:
- Збережи все. Застосунок іде з твого акаунта: експортуй метадані, ціни, дати доступності, продажі та завантаження.
- Вимкни TestFlight. Прибери всі білди й усіх тестувальників і очисти поля Test Information для кожної мови. Як працюють групи, описано в гайді по TestFlight.
- Очисти Xcode Cloud і прибери entitlement App Replacement, якщо він є, через опубліковане оновлення.
- Підписки: передай секрет конкретного застосунку. Застосунок, що продає автоподовжувані підписки, має використовувати спільний секрет, прив'язаний саме до нього (app-specific shared secret). Ти генеруєш його, передаєш отримувачу, а потім запускаєш передачу. Отримувач оновлює свої сервери перед прийняттям і генерує новий секрет після завершення передачі.
- Sign in with Apple: розгрупуй і підготуй ідентифікатори. Детальніше нижче.
- Webhooks: виріши. Вони йдуть разом із застосунком. Видали їх заздалегідь, якщо більше не хочеш отримувати події, або дай отримувачу їх перенаправити.
Два наслідки, які варто знати щодо грошей. Згідно зі сторінкою Small Business Program, чистий дохід застосунку за календарний рік зараховується всім акаунтам, які запускають або приймають передачу. Тож поріг в 1 мільйон доларів оцінюється з урахуванням цього застосунку з обох боків: див. комісію 15 %. А після передачі для застосунку більше не можна створити жодного промокоду: наявні коди дійсні чотири тижні після створення.
Кроки з боку того, хто передає
Запустити передачу може лише власник акаунта (Account Holder). Йому потрібен Apple ID власника, який отримує, і Team ID його акаунта. Згідно з довідкою про запуск передачі:
- В Apps вибери застосунок.
- На бічній панелі в розділі General натисни App information і прокрути до Additional Information.
- Натисни Transfer App. Можуть попросити код двофакторної автентифікації.
- Якщо всі критерії виконано, натисни Continue. Якщо ні, Cancel, і владнай те, чого бракує.
- Введи Apple ID власника-отримувача і його Team ID, потім Continue.
- Прочитай умови, постав галочку згоди й натисни Request Transfer.
- Натисни Done.
Застосунок зберігає свій статус, до якого додається позначка Pending App Transfer. У цей час ти не можеш змінювати його метадані, ціну, доступність і вбудовані покупки. Поточні обговорення з App Review закриваються.
Кроки з боку отримувача
Прийняти може лише власник акаунта, що отримує, протягом 60 днів. Згідно з довідкою про прийняття:
- Увійди в App Store Connect: сповіщення повідомить про застосунок до передачі.
- Відкрий Business: сповіщення з'явиться в Agreements.
- У розділі App Transfers натисни Review.
- Вкажи URL підтримки, маркетинговий URL і URL політики конфіденційності, якщо вони були в застосунку, а також контакти для App Review та App Store.
- У User Access вибери, хто з твоєї команди бачить застосунок.
- В App privacy візьми відповіді попереднього власника або заповни їх заново. Якщо відповідей немає, заповниш їх до наступної версії.
- Прочитай умови, постав галочку згоди й натисни Accept.
Передача переходить у статус Processing App Transfer, до двох робочих днів. Якщо застосунку потрібні експортні документи, він проходить через Waiting for Export Compliance. Наприкінці обидва власники отримують сповіщення, а застосунок зникає з акаунта того, хто передав. Далі отримувач створює нові provisioning-профілі, прив'язані до App ID застосунку та його дистрибутивного сертифіката: див. сертифікати й профілі iOS.
Поки статус Waiting for Recipient, будь-хто може скасувати: Cancel Transfer для того, хто передає, Decline для отримувача, у розділі App Transfers в Business.
Що переходить разом із застосунком, а що ламається
| Елемент | Після передачі | Що зробити |
|---|---|---|
| Bundle ID і App ID | Переходять, wildcard App ID стає explicit | Нічого |
| Оцінки, відгуки, оновлення | Переходять, застосунок залишається в продажу | Нічого |
| Автоподовжувані підписки | Потребують спільного секрету конкретного застосунку | Секрет переданий до, перегенерований після |
| iCloud | Дані, контейнери та key-value ідентифікатори переходять | Оновити key-value ідентифікатори в entitlements |
| Service ID Sign in with Apple | Переходить, якщо ти не прибрав прив'язку заздалегідь | Обміняти transfer-ідентифікатори протягом 60 днів |
| Webhooks | Переходять | Видалити до або перенаправити після |
| Push-сповіщення | Сертифікати дійсні до кінця свого терміну | Ключ APNs отримувача, оновлені сервери |
| Спільний keychain | Працює до наступного оновлення | Групу створено заново з Team ID отримувача |
| App Groups | Застосунок залишається доступним | Групу видалено в того, хто передав, і зареєстровано в отримувача |
| Apple Pay | Merchant ID не переходить | Новий merchant ID до наступного оновлення |
| Картки Wallet | Ті, що оновлюються застосунком, треба перевипустити | Новий ідентифікатор |
| Промокоди | Нових кодів більше не буде | Старі коди дійсні чотири тижні |
| Продажі й виплати | Тому, хто передав, лишається все до, отримувач отримує все після | Експортувати до запуску |
| App Analytics | Той, хто передав, втрачає доступ, отримувач отримує історію | Нічого |
| Номінації, історія бандлів | Не переходять | Записати й передати до запуску |
На keychain варто звернути особливу увагу. Apple попереджає: після оновлення застосунок більше не знаходить токен входу, збережений у спільному keychain, і користувачам доведеться один раз увійти знову. Якщо твій застосунок ділить keychain з іншим застосунком чи розширенням, попередь користувачів перед публікацією цього оновлення.
Щодо Game Center: групи, об'єднані таблиці лідерів і правила матчмейкінгу отримувач має налаштувати заново. Застосунки Mac Catalyst передаються у два етапи, спочатку iPad-застосунок.
Sign in with Apple: transfer-ідентифікатори
У Sign in with Apple ідентифікатор кожного користувача прив'язаний до твоєї команди. Отримувач не може використати його як є. Документація Apple про передачу користувачів передбачає три етапи:
- Розгрупуй свої застосунки. Застосунок, згрупований з іншими для Sign in with Apple, передати не можна.
- Згенеруй transfer-ідентифікатор для кожного користувача. З токеном, отриманим зі scope
user.migration, ти викликаєш endpointusermigrationinfoз ідентифікатором користувача і Team ID отримувача. Відповідь міститьtransfer_sub. - Передавай лише transfer-ідентифікатори. Ні ідентифікаторів своєї команди, ні приватних email-адрес.
Ці ідентифікатори можна згенерувати до прийняття або протягом 60 днів після нього. Отримувач має 60 днів після прийняття, щоб обміняти їх на власні ідентифікатори. Сплануй цей обмін до запуску передачі. Ще один наслідок: якщо в користувача немає жодного іншого твого застосунку, після передачі ти вже не зможеш написати йому на приватну адресу. Правила входу описані в guideline 4.8.
Терміни, які треба запам'ятати
| Етап | Термін |
|---|---|
| Прийняття отримувачем | 60 днів після запуску |
| Обробка після прийняття | До двох робочих днів |
| Обмін ідентифікаторів Sign in with Apple | 60 днів після прийняття |
| Наявні промокоди | Чотири тижні після створення |
| Сертифікати APNs з передачі | До дати закінчення терміну дії |
Мій список для застосунку на Expo з RevenueCat
Ось що я перевірив би, по порядку, для одного зі своїх застосунків:
- Експортувати продажі, завантаження й аналітику до запуску.
- Дочекатися, поки остання версія буде в продажу, а вбудовані покупки матимуть дозволений статус.
- Вимкнути TestFlight: білди, тестувальники й Test Information.
- Передати спільний секрет конкретного застосунку, потім запустити передачу.
- З боку отримувача, після прийняття: новий спільний секрет, вписаний у кожен сервіс, що перевіряє підписки, включно з RevenueCat. Ключі вбудованих покупок створюються в Users and Access, вкладка Integrations, і завантажуються лише один раз, згідно з довідкою App Store Connect.
- Перевірити адресу серверних сповіщень у картці застосунку. Сторінка Apple про передачу про неї не згадує: краще перевір, ніж припускай.
- Створити заново профілі і ключ APNs в акаунті отримувача. Для застосунку на Expo інструкція є в статті про push-сертифікат APNs з Expo.
- Опублікувати оновлення, підписане новим акаунтом, і попередити про повторний вхід, якщо keychain спільний.
Публікуй, не втрачаючи того, що працює
iOS & Android Kit бере за основу стартовий код моїх застосунків і веде тебе чотирма кроками до App Store, у твоєму темпі. Увесь процес описано на сторінці опублікувати застосунок в App Store.
Перш ніж щось змінювати, пройди безкоштовну діагностику: вона розставить кроки в правильному порядку й надішле тобі мій чекліст проти відмов Apple.
Поширені запитання
Скільки триває передача застосунку в App Store?
Отримувач має 60 днів, щоб прийняти. Після прийняття Apple заявляє до двох робочих днів обробки. Якщо застосунку потрібні експортні документи, додається етап перевірки.
Чи зникає застосунок з App Store під час передачі?
Ні. Застосунок залишається в продажу під час і після передачі. Він зберігає оцінки, відгуки та Bundle ID, а користувачі й далі отримують оновлення.
Чи зберігають підписники свою підписку після передачі?
Apple не описує жодного переривання для підписників. Єдина вимога стосується спільного секрету конкретного застосунку: той, хто передає, передає його заздалегідь, отримувач оновлює свої сервери, а після передачі генерує новий.
Чи можна передати застосунок, який ніколи не публікувався?
Ні. Застосунок повинен мати принаймні одну опубліковану версію в App Store. Він також не повинен бути в передзамовленні чи на перевірці.
Хто може запустити й прийняти передачу застосунку?
Лише власники акаунтів, які називаються Account Holder. Тому, хто передає, потрібен Apple ID власника-отримувача і Team ID його акаунта.
Чи можна скасувати передачу застосунку?
Так, поки статус Waiting for Recipient. Той, хто передає, натискає Cancel Transfer, а отримувач Decline, у розділі App Transfers в Business. Без відповіді передача спливає через 60 днів.

