Технический гид

2026: StoreKit 2 и App Store Server API
матрица sandbox на Mac vuzcloud · Гонконг/Сингапур vs US West · пороги RTT и аренды

Команды с подписками и внутриигровыми покупками арендуют Mac mini M4 vuzcloud, чтобы прогнать StoreKit 2 sandbox и проверку JWS через App Store Server API без покупки железа. Ниже — матрица RTT узлов, сравнение 16 и 24 ГБ, параллельный split и пороги дневной против недельной аренды.

Бюджетной iOS-команде нужен удалённый Mac sandbox на Mac mini M4 vuzcloud, который выдерживает покупки StoreKit 2 и проверку JWS через App Store Server API без покупки железа. Ниже — матрица RTT Гонконг/Сингапур против US West, сравнение 16 и 24 ГБ, параллельный split и пороги стоимости аренды. Сверьтесь с матрицей квитанций и sandbox и матрицей RTT и срока аренды. Навигация: главная, тарифы, помощь, блог.

Три боли повторяются на каждом спайке: транстихоокеанская задержка sandbox, хост 16 ГБ с двумя симуляторами и пропуск порога «день → неделя» после пятого оплачиваемого дня.

01RTT узла: Гонконг и Сингапур против US West для StoreKit 2 sandbox

Замеряйте с арендованного Mac, а не с ноутбука в гостиничном Wi‑Fi. Снимите медианный RTT к sandbox.itunes.apple.com, региону webhook и git remote, из которого пушите во время спайка. Строки таблицы — полевые эвристики на vuzcloud, не SLA вендора.

Профиль команды Узел Гонконг / Сингапур Узел US West Сигнал RTT / аренды
Ревьюеры в Восточной Азии Медиана <80 мс к Apple sandbox Часто 140–200 мс через океан Default HK/SG для UI StoreKit
Webhook в us-east-1 Доп. hop к US webhook Ниже RTT к AWS East Split: Mac на West, ledger на East
Только Server API (headless) HTTPS глобальный; RTT к Mac Те же endpoint API Оптимизируйте SSH + Xcode, не миф «регион API»
Порог стоимости аренды Любой регион: неделя выгоднее дня после ~5 оплачиваемых дней Матрица день → неделя

Логируйте p50 и p95 RTT плюс долю неуспешных транзакций StoreKit в час: если p95 удваивается при стабильном p50 — смените узел, а не переписывайте клиент.

02Mac mini M4 16 ГБ против 24 ГБ: StoreKit 2, Xcode и локальный верификатор JWS

StoreKit 2 снимает часть on-device разбора legacy-квитанций, но Xcode, Simulator и скрипт проверки JWS всё ещё делят унифицированную память. Шестнадцать гигабайт — одна схема, один симулятор и headless-опрос Server API в коротком спайке.

Нагрузка M4 16 ГБ M4 24 ГБ
Одна подписка + опрос Server API Комфортно Избыточно без тяжёлого кэша
Два симулятора + Fastlane upload Swap; пауза при RSS >12 ГБ Рекомендуется
Consumption IAP + Offer Codes UI OK при закрытом VNC Безопаснее с GUI

Пауза при заполнении SSD выше 65% на 256 ГБ во время повторных sandbox-покупок — иначе «успешный» Xcode маскирует нехватку диска.

03Параллельный split: Xcode sandbox на Mac, Server API в headless-контуре

Бюджетная команда выигрывает, когда не гонит всё в одной GUI-сессии. Разделите дорожки: продления подписки остаются интерактивными, пакетная проверка JWS — headless.

  • Дорожка A (Mac): StoreKit Testing Configuration, sandbox Apple ID, лог Transaction.updates
  • Дорожка B (тот же Mac, SSH): curl или Swift к App Store Server API с JWT, подписанным ES256
  • Дорожка C (опционально): CI на Linux только для JWS; секреты остаются на Mac vuzcloud
  • Не параллелить: два VNC и два симулятора на 16 ГБ — для B используйте SSH
Гигиена аренды: ротируйте sandbox Apple ID на спайк; перед возвратом хоста удалите записи Keychain, созданные на аренде vuzcloud.

04App Store Server API и проверка JWS: шесть шагов на арендованном Mac

Выполняйте по порядку на leased Mac. Остановитесь при падении JWS — не смешивайте production-ключ с sandbox-транзакциями.

  • Шаг 1: Создайте ключ API в App Store Connect с доступом In-App Purchase; .p8 скачайте один раз в vault, не в домашний каталог аренды надолго.
  • Шаг 2: Подпишите JWT ES256 (issuer ID, key ID, bundle ID); для sandbox-транзакций используйте sandbox base URL Server API.
  • Шаг 3: Совершите покупку StoreKit 2 в Xcode; скопируйте transactionId из консоли или логгера приложения.
  • Шаг 4: GET /inApps/v1/transactions/{transactionId} — сохраните JWS signedTransactionInfo для ledger.
  • Шаг 5: Проверьте цепочку JWS корневыми и промежуточными сертификатами Apple; отклоняйте просроченные payload до записи прав.
  • Шаг 6: При webhook — отправьте Server Notifications V2 sandbox и убедитесь, что endpoint логирует продление.

05Три узких места, сжигающих бюджет sandbox-аренды

  • Несовпадение среды: production-ключ API против sandbox-транзакций даёт непрозрачные 401 — согласуйте тип ключа с sandbox Apple ID.
  • Сдвиг часов: ошибки JWT notBefore на свежей аренде — включите NTP до ES256.
  • «Гордость» за US West: Mac на западе для ревьюеров APAC порождает retry-штормы, похожие на баги StoreKit.
80 мс
Цель p50 RTT к sandbox endpoint в APAC
Типичное окно порога день → неделя
16 ГБ
RAM по умолчанию для одного симулятора StoreKit

Цитируемо: Гонконг/Сингапур, если доминируют ревьюеры Восточной Азии; US West — когда webhook и CI в Северной Америке. RAM: 24 ГБ до dual simulator + пакетной JWS на одном хосте. Аренда: после пяти дней сверьте тарифы по матрице срока.

06FAQ: StoreKit 2 sandbox и App Store Server API на арендованном Mac

Нужна ли ещё validateReceipt? StoreKit 2 опирается на подписанные транзакции и JWS Server API; legacy receipt — для миграции. Бюджетным командам стоит стандартизировать Server API + Transaction on-device.

Один Mac vuzcloud на EU и US тестеров? Выберите узел с минимальным RTT для большинства; split аренды — только если разрыв p95 превышает ~50 мс у половины команды.

JWS локально OK, в CI падает? Нет промежуточных сертификатов в образе или дрейф часов — скопируйте bundle с Mac, не тяните ad hoc в CI без pin.

Нужен ли US West только для Server API? Нет: API глобальный HTTPS; оптимизируйте RTT от Mac к sandbox UI и к региону webhook, как в матрице квитанций.

Связанные материалы: пороги аренды — матрица день → неделя; RTT и регион — матрица APAC/US West; квитанции — кроссбордер sandbox.
Пороги RTT и аренды отражают типичную практику на арендованных Apple Silicon; итоговые цены и SKU — только на публичных страницах покупки и тарифов vuzcloud.
StoreKit sandbox на облачном Mac

Арендуйте Mac mini M4 и пройдите StoreKit 2 + Server API сегодня

Читайте матрицу квитанций sandbox или матрицу RTT и аренды, затем тарифы и покупку узла sandbox на vuzcloud.

Арендовать Mac под sandbox Тарифы и узлы