Блокування Apple Developer Account може зупинити публікацію нового застосунку, випуск оновлень і роботу команди з App Store Connect. Водночас розробники часто намагаються знайти одну універсальну причину бану: конкретний реджект, вхід із нового пристрою, помилку в налаштуваннях акаунта або проблему із самим застосунком.
На практиці такі ситуації рідко зводяться до однієї очевидної дії. Apple не розкриває повний набір сигналів, за якими оцінює акаунти, застосунки та зв'язки між ними. Тому важливо не видавати припущення за офіційні правила, а аналізувати повторювані сценарії та етап, на якому виникає блокування.
У цій статті ми розберемо статистику SmartShop, зібрану на основі власних кейсів за останні три місяці. Це не офіційні дані Apple. Вибірка показує, на яких етапах ризик проявляється найчастіше та які фактори регулярно зустрічаються в наших випадках.
Близько 80% банів відбуваються протягом 48 годин після завантаження білда
Найважливіше спостереження: приблизно 80% блокувань у розглянутих нами кейсах відбувалися протягом перших 48 годин після завантаження білда в App Store Connect.
Це означає, що основний ризик часто проявляється ще до фінального рішення App Review. Акаунт може зіткнутися з блокуванням невдовзі після появи в системі повноцінної збірки застосунку, навіть якщо розробник ще не отримав звичайний реджект із детальним поясненням зауважень.
У таких ситуаціях ми найчастіше бачимо зв'язок із двома групами факторів:
- кодом застосунку та його технічними сигнатурами;
- пристроєм і середовищем Xcode, використаними під час збірки або завантаження.
Важливо правильно розуміти слово «зв'язок». Ми не можемо стверджувати, що конкретний елемент коду або конкретний Mac автоматично стає причиною блокування. Apple не публікує внутрішню механіку антифрод-перевірок. Ідеться про повторювані ознаки, які зустрічалися в наших кейсах безпосередньо перед баном.
Що можуть означати технічні сигнатури коду
Після завантаження білда Apple отримує не лише назву застосунку та його опис. До App Store Connect передається сама збірка зі структурою проєкту, підключеними бібліотеками, ресурсами, налаштуваннями, ідентифікаторами та іншими технічними характеристиками.
Під технічними сигнатурами можна розуміти сукупність ознак, за якими різні застосунки або збірки можуть виглядати пов'язаними. Це не обов'язково один файл або один рядок коду. Значення може мати комбінація повторюваних компонентів та особливостей проєкту.
Особливої уваги потребують ситуації, коли:
- використовується проєкт, походження якого неможливо перевірити;
- застосунок зібрано на основі шаблону, який застосовувався в багатьох інших публікаціях;
- у проєкті залишилися чужі ресурси, конфігурації або ідентифікатори;
- підключено неперевірені SDK та готові модулі;
- нова збірка майже повністю повторює інший застосунок;
- частина коду раніше використовувалася в проєктах, пов'язаних із заблокованими акаунтами.
Це не означає, що будь-який спільний модуль або повторно використана бібліотека заборонені. Повторне використання власного коду — нормальна практика розробки. Ризик виникає тоді, коли проєкт містить сумнівні компоненти, виглядає як масово тиражована копія або має технічний зв'язок із проблемною історією, яку команда не перевірила до завантаження.
Тому перед першою публікацією важливо провести аудит не лише інтерфейсу, а й походження самого проєкту. Особливо це актуально, якщо застосунок купували у стороннього розробника, передавали між командами або збирали на основі готового рішення.
Чому важливе середовище Xcode
Друга група факторів пов'язана з пристроєм і робочим середовищем, через яке збирався або завантажувався білд.
Під час роботи з iOS-застосунком використовуються Xcode, сертифікати, provisioning profiles, ключі підпису та доступи учасників команди. У реальному процесі ці елементи пов'язані між собою, тому неконтрольована передача проєкту між великою кількістю виконавців ускладнює аналіз ризиків.
У нашій практиці питання частіше виникали у випадках, коли один пристрій або одне середовище використовувалися для роботи з великою кількістю не пов'язаних між собою Apple Developer Accounts, зокрема з акаунтами, які раніше були заблоковані. Це не доводить, що сам пристрій є причиною бану, але робить історію середовища важливим фактором під час аналізу ситуації.
Перед завантаженням білда корисно розуміти:
- хто саме збирав застосунок;
- на якому пристрої виконувалася збірка;
- які акаунти раніше використовувалися в цьому середовищі;
- звідки були отримані сертифікати та ключі;
- хто мав доступ до проєкту;
- чи не використовувався той самий білд в інших акаунтах.
Що прозоріший процес збірки, то простіше виключити невідомі зв'язки та визначити джерело проблеми, якщо блокування все ж станеться.
Близько 10% банів відбуваються після реджектів
Приблизно 10% блокувань у нашій вибірці відбулися після того, як застосунок отримав реджект.
За спостереженнями SmartShop, раніше відхилення могли мати більшу вагу в загальній картині. Зараз потенційні технічні зв'язки частіше проявляються вже на етапі завантаження білда. Саме тому частка кейсів, у яких акаунт спочатку проходить завантаження, потім отримує реджект і лише після цього блокується, стала меншою.
Водночас реджект і бан Apple Developer Account не можна вважати однією й тією самою подією.
Реджект зазвичай стосується конкретної версії застосунку. Розробник отримує зауваження, вносить зміни та може повторно надіслати збірку. Бан уже зачіпає сам акаунт і може обмежити подальшу роботу з усіма пов'язаними проєктами.
Звичайне відхилення застосунку не означає автоматичного блокування. Однак після реджекту важливо не завантажувати той самий білд повторно без реальних виправлень.
Практично це означає таке:
- Не надсилайте повторно ідентичний білд, якщо причину відхилення не усунуто.
- Зіставляйте повідомлення рев'юера з фактичною поведінкою застосунку.
- Перевіряйте не лише зазначений екран, а й пов'язану з ним функціональність.
- Зберігайте історію змін між версіями.
- Не намагайтеся приховати від рев'юера можливості, доступні звичайному користувачеві.
Головний висновок зі статистики полягає не в тому, що реджекти більше не важливі. Він у тому, що значна частина блокувань тепер проявляється раніше — уже невдовзі після завантаження збірки.
Близько 5% банів пов'язані з пристроями та користувачами з негативною історією
Ще приблизно 5% розглянутих випадків були пов'язані з авторизацією на пристроях із негативною історією або з додаванням користувачів, які раніше мали стосунок до заблокованих акаунтів.
Такий сценарій відрізняється від проблем самого білда. Акаунт може виглядати новим і не мати власної історії публікацій, але водночас отримати зв'язок через пристрій, учасника команди або робочий процес.
Особливо уважно слід ставитися до додавання сторонніх розробників, адміністраторів і підрядників. Перед наданням доступу потрібно розуміти, для якого завдання він потрібен і які дії виконуватиме людина.
Без необхідності не варто:
- надавати всім учасникам максимальні ролі;
- додавати невідомих користувачів одразу після отримання акаунта;
- передавати повний контроль над акаунтом підряднику;
- використовувати один і той самий обліковий запис Apple для роботи різних людей;
- залишати доступ співробітникам після завершення проєкту.
Сам факт роботи користувача з іншим акаунтом не доводить наявності ризику. Проблема виникає, коли його попередня історія невідома або він був безпосередньо пов'язаний з акаунтами, які вже отримали блокування.
Рекомендується надавати лише необхідні права, фіксувати список учасників і видаляти доступи, які більше не використовуються.
Інші випадки можуть бути пов'язані з підготовкою та реєстрацією акаунта
Решта кейсів не була безпосередньо пов'язана із завантаженим білдом, реджектом або доданим користувачем. У таких ситуаціях можлива причина могла знаходитися на етапі підготовки та реєстрації самого Apple Developer Account.
Тут важливо не робити категоричних висновків. Якщо блокування сталося до початку повноцінної роботи, це ще не означає, що відома точна помилка реєстрації. Причина може потребувати окремої перевірки даних акаунта, послідовності дій та обставин його створення.
Саме тому потрібно розділяти два сценарії:
- акаунт заблоковано до додавання користувачів, прив'язки пристроїв і завантаження білда;
- блокування сталося вже після початку роботи з проєктом.
У другому випадку з'являється значно більше можливих факторів: код, середовище збірки, пристрої, сертифікати, користувачі та дії команди. У першому коло причин помітно вужче та може стосуватися підготовки самого акаунта.
Як знизити ризики перед завантаженням білда
Статистика показує, що перевірку потрібно починати не після реджекту, а до першого завантаження в App Store Connect.
Перед роботою з акаунтом рекомендується:
- перевірити походження проєкту та його компонентів;
- переконатися, що білд не використовувався в інших проблемних акаунтах;
- видалити чужі ідентифікатори, тимчасові конфігурації та непотрібні SDK;
- використовувати зрозуміле й контрольоване середовище Xcode;
- обмежити кількість людей із доступом до акаунта;
- заздалегідь визначити ролі учасників команди;
- не авторизуватися без необхідності на невідомих пристроях;
- фіксувати, хто збирав і завантажував кожну версію;
- після реджекту спочатку усунути зауваження, а потім надсилати нову збірку.
Жоден чекліст не може гарантувати відсутність блокування. Але такий підхід зменшує кількість невідомих змінних і допомагає не створювати додаткові зв'язки через неорганізований робочий процес.
Переглянути короткий розбір статистики можна на нашому каналі.
Що діє в межах гарантії SmartShop
Окремо важливо зафіксувати умову, озвучену в ролику.
Якщо ви нічого не додавали в акаунт, не прив'язували пристрої та не завантажували білд, а акаунт отримав блокування, SmartShop безкоштовно замінить його в межах гарантії.
Ця умова принципова, оскільки після додавання користувачів, підключення пристроїв або завантаження застосунку на ситуацію вже можуть впливати дії з боку клієнта, код проєкту та робоче середовище.
Тому після отримання акаунта рекомендується спочатку перевірити базові доступи та заздалегідь підготувати безпечний робочий процес. Не слід додавати випадкових користувачів або завантажувати неперевірену збірку лише для тесту.
Висновок
За статистикою SmartShop за останні три місяці близько 80% банів Apple Developer Account відбувалися протягом 48 годин після завантаження білда в App Store Connect. У таких кейсах найчастіше простежувався зв'язок із кодом та його технічними сигнатурами або з пристроєм і середовищем Xcode, використаними під час збірки.
Близько 10% блокувань відбувалися після реджектів. Їхня частка знизилася, оскільки потенційні зв'язки зараз частіше виявляються вже на етапі завантаження білда. Ще приблизно 5% випадків були пов'язані з пристроями з негативною історією або користувачами, які раніше мали зв'язок із заблокованими акаунтами. Решта ситуацій могла стосуватися особливостей підготовки та реєстрації самого акаунта.
Головний практичний висновок: ризик потрібно оцінювати до завантаження застосунку. Перевіряйте походження коду, контролюйте середовище Xcode, не додавайте невідомих користувачів і не використовуйте пристрої з непрозорою історією. А якщо акаунт було заблоковано до будь-яких дій із вашого боку — без додавання користувачів, прив'язки пристроїв і завантаження білда — SmartShop безкоштовно замінить його в межах гарантії.
Individual $350 · Company $650 · Renewal $200. Постачаємо Web Made та Device Made акаунти. Зв'яжіться — підберемо потрібний варіант.
Написати в Telegram