2026 Экспортный комплаенс App Store: анкета и ITSAppUsesNonExemptEncryption на посуточном Mac
Если архивы собираются, но ответы Connect расходятся с бинарными метаданными, работа над Privacy Manifest не заменяет экспортно-шифровую аргументацию. Здесь — сходимость за 24–72 часа на нативном арендованном macOS: три кластера рисков, матрица, семь шагов, три метрики. Ссылки: Privacy Manifest, Passkeys, SSH/VNC FAQ.
01. Кластеры проблем
1) В анкете «только exempt», а ITS=true: конфликт метаданных и plist провоцирует повторные проверки.
2) TLS как самодостаточный exempt: нужен инвентарь SDK и локального шифрования.
3) Параллельная смена Version/Build и анкеты: без номера билда и UTC-скриншотов нельзя откатить причину.
02. Матрица
| Connect | Сигнал | Действие на аренде |
|---|---|---|
| только exempt | ITS false/отсутствует + аудит | логи grep в тикет |
| не exempt | true + покрытие модулей | текст UX/TLS/SDK |
03. Семь шагов
- Заморозить Version/Build.
- Разделить TLS и локальное/SDK-шифрование.
- Скриншоты до/после сохранения анкеты.
- Синхронизировать ITS, проверить overrides target.
- Удалить DerivedData, Clean Archive.
- Зафиксировать ID загрузки.
- Zip-доказательства: скрины, diff, при необходимости entitlements.
/usr/libexec/PlistBuddy -c "Print :ITSAppUsesNonExemptEncryption" path/to/YourApp.app/Info.plist
04. Метрики
- M1: 22–38 % «экспортных» итераций сходятся к конфликту ITS/анкета (внутренняя выборка).
- M2: Ворота Clean+Archive+доказательства снижают медиану кругов на 0,7–1,4.
- M3: <20 ГБ свободно ⇒ +9–21 % ретраев экспорта IPA.
04b. Эксплуатация и цепочка доказательств
Несколько инженеров на одном арендованном хосте: требуйте каталоги UTC+сборка, только добавление, чтобы вложения в Slack не перезаписывались. Юристы спрашивают «что изменилось с прошлого одобрения?»—отвечайте диапазоном git, diff plist и хэшем скриншотов без повторного Xcode на другой машине. Разделяйте iOS и Android повествования, чтобы не копировать в Catalyst.
Сквозная таблица REST/GraphQL/WebSocket/VoIP/аналитика/краши: для каждого слоя фиксируйте кто шифрует, кто держит ключи, был ли plaintext на диске. Минидампы с памятью без договора вендора часто требуют non-exempt описания. On-device ML: разделяйте статические веса и рантайм-тензоры.
Безголовый CI и GUI Organizer: прикладывайте xcodebuild -showBuildSettings с обеих сторон. Смесь Apple Silicon / Intel — фиксируйте архитектуру. OSS-крипто: лицензии и закреплённые версии в zip.
Пятничный вечер + маркетинг параллельно = дрейф анкеты: двухчасовой freeze вокруг Archive. Ответы письмом нумеруйте; zip с 01_questionnaire/ и т.д. Откат: сначала решите, откатывать нарратив или бинарник. VNC может искажать булевы — сначала SSH.
05. Linux vs посуточный Mac
Linux дёшев для скриптов, но Organizer/codesign/plist требуют нативной согласованности macOS. Посуточная аренда укладывает затраты в пик. FAQ, гид Mac mini M4.
Расширения с отдельными bundle id включайте в тот же тикет. Для cloud-managed signing фиксируйте distribution vs development — дрейф entitlements снова открывает вопросы. Таблица «Розетта» для безопасности/юридического/инженерного языка; VNC может искажать мелкие булевы в plist — смотреть по SSH.