Sandbox-аккаунт не показывает ожидаемую групповую покупку, а команда не понимает, блокирует ли это выпуск.
Сначала проверьте, доступна ли функция в Sandbox Apple Account и App Store Connect: организации уже получили возможность покупать подписки для нескольких участников, но это само по себе не означает, что App Store Group Purchases уже запущена. Если тестовая возможность доступна, проверяйте цепочку от покупки до приглашения, доступа участника и актуального состояния подписки; пока она не появилась, пометьте соответствующие сценарии как ожидающие подтверждения, а не как пройденные.
Кому пригодится: iOS-разработчикам, которые реализуют автоматическое продление подписок и готовят StoreKit к групповым сценариям.
Для инженеров серверной проверки транзакций: как связать события App Store с решением о доступе участника.
Для владельцев продукта и QA: как описать воспроизводимые сценарии и определить, что выпуск действительно проверен.
Последнее обновление: 5 ноября 2026 года. Сроки и этапы сверены с официальным сообщением Apple о групповых покупках и документацией App Store Connect о вариантах покупки подписки. Плановый месяц не следует считать точной датой открытия функции.
Временная шкала: разные этапы нельзя считать одним запуском
Для приемки важен не только результат теста, но и его статус в календаре Apple. Здесь есть отдельные этапы: покупки подписок для организаций с несколькими местами, возможность тестировать групповые покупки через Sandbox и запланированное появление Group Purchases в App Store. У них разные сроки и разный смысл.
Apple сообщила, что подписки с покупкой нескольких мест для организаций и образовательных учреждений стали доступны 22 октября 2026 года. Отдельно компания объявила, что настройка и тестирование групповых покупок в App Store Connect Sandbox начнут открываться в ноябре 2026 года. Появление App Store Group Purchases заявлено на зиму 2026 года. Эти даты и статусы следует сверять с объявлением Apple: оно не устанавливает конкретный день открытия Sandbox-тестирования и не превращает план запуска в подтверждение доступности для конкретной учётной записи.
Отсюда следует практическое правило: проверка покупки подписки организацией с несколькими местами не доказывает, что участники App Store Group Purchases могут пройти нужный вам путь. Аналогично, наличие плана тестирования не доказывает, что соответствующий пункт уже отображается в вашей учётной записи.
Проверяйте состояние непосредственно в App Store Connect и в используемом Sandbox Apple Account. Фиксируйте дату проверки, доступный интерфейс и выполненные действия. Если функция пока не предлагается в вашем аккаунте, оформляйте сценарий как «ожидает официальной доступности», а не как ошибку StoreKit или успешный тест.
Когда можно начинать тест групповых покупок в App Store Connect Sandbox?
Ориентир — не обещанный месяц, а фактическое появление нужной настройки и доступного тестового пути в App Store Connect. Apple указала ноябрь 2026 года как начало открытия конфигурации и тестового плана, но не назвала точный день. Поэтому проверяйте официальный статус и собственную учётную запись перед каждой тестовой сессией. Если элементы настройки недоступны, команда может подготовить продуктовые сценарии и тестовую матрицу, но не должна выдавать их за проверенные в Sandbox.
Подготовка: приложение, подписка и тестовые учётные записи
До запуска теста зафиксируйте, какой именно продукт проверяется. Проверьте, что нужная автоматически возобновляемая подписка заведена в App Store Connect, и изучите доступные для неё варианты покупки в официальной справке Apple по настройке вариантов покупки. Не переносите настройки одного продукта или сценария покупки на другой без проверки: объект приёмки — та подписка и тот путь, которые действительно должны использовать покупатель и приглашённые участники.
Затем проверьте Sandbox Apple Account. Убедитесь, что тестировщик вошёл именно в предназначенную для тестирования учётную запись и что его роль в сценарии документирована. Заранее разделите роли покупателя, приглашённого участника и проверяющего. Не используйте реальные платёжные данные и не смешивайте наблюдения из рабочей учётной записи с результатами тестовой среды. Порядок тестирования покупок в разных средах описан в руководстве Apple по проверкам StoreKit на этапах разработки.
Выбор среды зависит от проверяемого утверждения. Локальный тест StoreKit удобен для ранней проверки логики приложения и предсказуемых сценариев. Sandbox нужен, когда требуется проверить взаимодействие с тестовой средой App Store. Это не взаимозаменяемые результаты: успешная локальная симуляция не подтверждает, что доступна новая функция групповой покупки на стороне App Store Connect. Не полагайтесь и на предположение, что локальная конфигурация покрывает все серверные и учётные поведения Sandbox.
| Среда | Что можно проверять | Что результат не доказывает | Оценка пригодности |
|---|---|---|---|
| StoreKit Testing в Xcode | Логику приложения, реакцию интерфейса на выбранные состояния покупки и обработку сценариев, настроенных для локального теста | Что групповой сценарий доступен для вашей учётной записи App Store Connect или что прошёл реальный путь Sandbox | Высокая для ранней проверки логики; ограниченная для подтверждения доступности Group Purchases |
| App Store Sandbox | Покупки и взаимодействие с тестовой инфраструктурой App Store в доступных вашей учётной записи сценариях | Что планируемый сценарий можно выполнить, если Apple ещё не открыла для него настройку или тестовый путь | Высокая, если соответствующая возможность фактически доступна |
| Рабочая среда App Store | Поведение опубликованного приложения и покупки реальных пользователей | Не заменяет безопасную подготовительную проверку тестовых сценариев и не должна использоваться как обход отсутствия Sandbox-функции | Не выбирать для экспериментов с неподтверждёнными сценариями |
Таблица помогает не смешать критерии: локальная проверка отвечает на вопрос о логике приложения, а проверка через Sandbox — о доступном тестовом взаимодействии с App Store. Не записывайте «групповая покупка проверена» по одному лишь факту, что StoreKit Testing вернул ожидаемый для локального сценария результат.
Чем StoreKit Testing отличается от Sandbox для группового сценария?
StoreKit Testing подходит, чтобы раньше проверить реакцию приложения на заданные покупки и состояния. Sandbox нужна для проверки доступного взаимодействия с тестовой средой App Store, но только если нужная функция действительно открыта конкретной учётной записи. Если задача — выяснить, работает ли новый путь Group Purchases, локальная конфигурация сама по себе не заменяет тест в Sandbox.
Проверка покупки и приглашения: фиксируйте наблюдаемое
После подготовки среды запускайте сценарий так, чтобы каждый переход можно было восстановить по записи. Сначала покупатель должен пройти доступный путь приобретения групповой подписки. Затем проверяйте приглашение участника и принятие приглашения — только если соответствующий тестовый путь уже доступен. Для каждого действия сохраняйте роль учётной записи, экран или системный ответ, фактический результат и состояние, наблюдаемое приложением.
Если интерфейс предлагает несколько путей покупки, записывайте выбранный путь отдельно. Не делайте вывод о групповом сценарии по успешной покупке подписки без приглашения: в таком результате ещё не проверены принятие приглашения и выдача доступа другому участнику. Обратное тоже верно: доступный экран приглашения не подтверждает, что серверная логика корректно обновляет права после изменения состояния подписки.
На этом этапе полезно разделить подтверждённые и ещё не подтверждённые наблюдения:
- Подтверждено официальными материалами: запланированные этапы и доступные настройки, описанные Apple.
- Подтверждено фактическим тестом: действия, которые команда действительно выполнила в доступной Sandbox-среде и может повторить.
- Ожидает проверки: шаги, для которых у команды пока нет доступного тестового пути, например принятие приглашения, если функция ещё не появилась в конкретном аккаунте.
- Заблокировано: сценарий не удаётся пройти по причине, которую можно воспроизвести и связать с доступной настройкой, тестовой конфигурацией или ошибкой приложения.
Не записывайте ожидаемое поведение как правило Apple, если оно не подтверждено официальной документацией или доступным воспроизводимым тестом. Для нового группового сценария отдельно указывайте, что известно из объявления, а что команда установила самостоятельно.
Для покупок вне приложения не придумывайте интерфейсные состояния и коды ошибок. Сверяйте только ту логику, которая документирована и реально наблюдается. Apple отдельно описывает тестирование покупок, совершённых вне приложения; эта документация может быть полезна для сопоставления поведения, но не служит подтверждением конкретного поведения Group Purchases.
Проверка доступа и серверного состояния
После покупки проверьте, на каком основании приложение предоставляет контент покупателю и участнику. Сопоставьте состояние подписки, доступные приложению транзакционные данные и серверное решение о правах. Для текущих прав пользователя учитывайте назначение StoreKit-представления current entitlements, но не предполагайте без проверки, что групповой сценарий имеет особые поля или отдельный API.
На серверной стороне заранее определите, какие события и доказательства нужны для решения о доступе. Если приложение опирается на уведомления App Store Server, проверьте адреса для их доставки в настройках App Store Connect и зафиксируйте получение и обработку уведомлений. Apple описывает настройку адресов в руководстве по URL уведомлений App Store Server, а ожидаемую обработку — в документации об ответах на уведомления App Store Server. Не подменяйте ими проверку конкретного группового сценария: свяжите документированное поведение с теми событиями, которые действительно получены.
| Участок проверки | Что фиксировать | Признак неполной приёмки |
|---|---|---|
| Покупатель | Выполненное действие, отображённый результат покупки, состояние приложения и доступные сведения о транзакции | Успех интерфейса записан, но подтверждение состояния покупки не проверено |
| Приглашение | Кто инициировал приглашение, какой ответ получил отправитель и что увидел участник | Приглашение отправлено, но принятие участником не выполнено или не подтверждено |
| Доступ участника | Условие, по которому контент стал доступен, и проверяемый источник состояния | Доступ выдан по предположению, без сопоставления со статусом или транзакционными данными |
| Серверная обработка | Полученные уведомления, результат обработки и повторное применение события | Пропущенное или повторное событие приводит к неясному итоговому доступу |
| Изменение состояния | Что приложение делает при изменившемся или неподтверждённом статусе | Нет правила для обновления либо отзыва доступа |
При проверке участников не переносите на App Store Group Purchases правила управления устройствами организации. Покупка подписки организацией на несколько мест и предоставление доступа через групповой сценарий App Store — не одно и то же. Проверяйте пользовательские роли, приглашения и права приложения по фактическому сценарию App Store, а не по модели администрирования корпоративных устройств.
Для личных данных Sandbox-аккаунта ограничьте доступ и не помещайте пароли или чувствительные сведения в общие отчёты. Если при подготовке удалённой тестовой среды требуется определить правила работы с данными, используйте информацию о конфиденциальности OrbVPS и внутренние требования команды. Документируйте результат и идентификатор тестового сценария, а не секреты учётной записи.
Чек-лист приёмки и решение о готовности
Перед завершением теста пройдите пункты ниже. Отмечайте только то, что реально проверено. Пункты, зависящие от ещё не открытой функции, оставляйте без отметки и добавляйте статус «ожидает официальной доступности».
- [ ] Зафиксирована дата проверки статуса Group Purchases и ссылка на актуальный материал Apple.
- [ ] Проверено, доступна ли конфигурация группового теста именно используемой Sandbox Apple Account.
- [ ] В App Store Connect выбрана и проверена целевая автоматически возобновляемая подписка.
- [ ] Покупатель, приглашённый участник и проверяющий обозначены как отдельные роли сценария.
- [ ] Для StoreKit Testing и Sandbox заведены раздельные ожидаемые результаты.
- [ ] Записаны фактически выполненные действия покупки, отправки приглашения и его принятия.
- [ ] Для каждого шага сохранены наблюдаемый результат, состояние приложения и причина ошибки, если она возникла.
- [ ] Доступ к контенту сопоставлен с проверяемым состоянием подписки или транзакции.
- [ ] Обработка уведомлений, повторного события и изменения состояния проверена на доступных тестовых сценариях.
- [ ] Непроверенные из-за недоступности функции случаи помечены как ожидание, а не как успешная приёмка.
- [ ] В отчёте указаны система, версия Xcode, используемая среда и шаги воспроизведения без учётных секретов.
Для итогового решения используйте три статуса. Пройдено — команда выполнила сценарий в соответствующей среде, записала наблюдения и проверила ожидаемую выдачу доступа. Ожидает проверки — тестовый путь зависит от функции, доступность которой ещё не подтверждена для аккаунта, или от поведения, которое предстоит проверить после открытия. Блокирует выпуск — подтверждённая ошибка приложения или серверной обработки создаёт неправильный доступ, а сценарий воспроизводится в доступной среде.
Эти статусы не заменяют продуктовые критерии. Команда должна заранее определить, какое поведение требуется для покупателя и участника, когда доступ должен обновляться и какое решение принимается при неподтверждённом состоянии. Если политика доступа пока неизвестна, это отдельный вопрос к продукту и документации Apple, а не основание заполнять пробел догадками.
Организация Xcode-среды для повторной проверки
Для повторяемой приёмки важны не только тестовые учётные записи. В отчёте должны быть указаны macOS и версия Xcode, используемый проект, выбранная среда StoreKit и шаги, при которых проявился результат. Если проверку выполняют разные инженеры, зафиксируйте, какая часть сценария выполнялась локально, а какая — через Sandbox. Это позволяет отличить регрессию приложения от различий тестовой среды.
Если у команды нет Mac с Xcode, сначала оцените, можно ли выполнить нужную проверку на уже имеющемся оборудовании или в подходящей удалённой среде. Руководство Apple по тестированию StoreKit в Xcode и Sandbox помогает определить границу между этими проверками. Для организации удалённого окружения без покупки отдельного компьютера можно изучить варианты аренды Mac для разработки, а перед выбором — сверить доступные условия в справочном разделе OrbVPS.
Удалённый Mac может закрыть задачу доступа к macOS и Xcode, но не откроет функцию App Store, которая ещё не доступна тестовой учётной записи. Он также не отменяет необходимости проверять роли, состояние транзакций и серверные уведомления. Если тесты проводятся постоянно и требуют физического подключения оборудования либо длительной интенсивной нагрузки, собственный Mac может быть рациональнее аренды. Если же команде нужна временная среда для подготовки Xcode-проекта и повторения тестовых шагов, аренда Mac у OrbVPS позволяет начать без предварительной покупки оборудования; решение стоит принимать после проверки инструментов и требований проекта, а не вместо проверки доступности Group Purchases.
Читайте также
Подготовьте отдельный Mac для проверки iOS-сборок
OrbVPS предоставляет выделенный физический Mac на Apple Silicon для сборок Xcode и тестирования iOS-приложений.
