ИИ-инструменты и скрипты
Проверка манифеста конфиденциальности Apple
Проверьте проект iOS перед загрузкой: API с обязательной причиной без указанной причины, манифесты конфиденциальности, которые отклоняет App Store Connect, опечатки в кодах причин, неверные домены отслеживания, устаревшие SDK из списка Apple и манифесты, которые target так и не включает в сборку.
Что вы получите: 1 файл · 62.62 KB · ZIP
Варианты покупкиОписание товара
UserDefaults.standard в вашем коде на Swift без записи NSPrivacyAccessedAPICategoryUserDefaults или код причины, набранный как c617.1 вместо C617.1, достаточны, чтобы App Store Connect отклонил сборку, а полный URL там, где Apple ожидает просто домен отслеживания, делает манифест недействительным. Этот навык находит эти и другие ошибки в манифесте конфиденциальности до загрузки и объясняет, как исправить каждую.
Ваш агент запускает сканер по вашему проекту: файлы PrivacyInfo.xcprivacy, манифесты, которые Cordova (config.xml) и Expo (app.json, app.config.json) записывают во время сборки, Info.plist и другие plist, код на Swift, Objective-C и C/C++, файлы проекта Xcode (классические группы и синхронизированные папки Xcode 16), Package.swift, Podfile, Podfile.lock, Package.resolved и pubspec.lock от Flutter. Он сверяет каждый ключ и значение со списками категорий, кодов причин, типов данных и целей от Apple, определяет, какой манифест покрывает какой код (приложение, расширение, пакет Swift), и пропускает комментарии, строки, тесты и сторонний код (Pods, плагины и платформы Cordova). Манифесты внутри Pods проверяются только на то, из-за чего App Store Connect их отклоняет, а манифест в бандле ресурсов библиотеки покрывает код этой библиотеки. Он никогда не собирает и не запускает проект. Результат: BLOCK, REVIEW или NOT FLAGGED, с указанием файла, строки, причины и более безопасного подхода, и каждое правило ссылается на соответствующую документацию Apple. Секреты никогда не выводятся.
Что проверяется
BLOCK (исправить до выпуска)
- P01: API с обязательной причиной, используемые в вашем коде (UserDefaults, @AppStorage, временные метки файлов, stat, systemUptime, mach_absolute_time, ключи свободного места на диске, statfs, activeInputModes), без манифеста, объявляющего категорию (проекты iOS, iPadOS, tvOS, visionOS и watchOS)
- P02: манифесты (файлы, config.xml Cordova или конфигурация Expo), которые не являются корректными списками свойств или содержат ключи, не относящиеся к манифесту конфиденциальности
- P03: недопустимые записи NSPrivacyAccessedAPITypes (неизвестная категория или категория с неверным регистром, неодобренный код причины, код с неверным регистром или из другой категории, пустой список причин, отсутствующий или лишний ключ)
- P04: недопустимые ключи отслеживания (неверные типы, tracking true с пустым списком доменов, tracking false с доменами, записи, которые не являются просто доменом: URL, путь, строка запроса или завершающая косая черта)
- P05: недопустимые записи NSPrivacyCollectedDataTypes (неизвестный тип данных или цель, отсутствующий или лишний ключ, Linked или Tracking не логического типа)
REVIEW (проверить перед релизом)
- P11: противоречия в отслеживании (true без списка доменов, домены без NSPrivacyTracking, тип данных, используемый для отслеживания, когда отслеживание не объявлено, запрос App Tracking Transparency без манифеста, в котором сказано, что приложение отслеживает)
- P12: ключи манифеста конфиденциальности в Info.plist или другом plist, либо файл .xcprivacy с неверным именем
- P13: SDK из списка Apple, зафиксированные на версиях без манифеста конфиденциальности (Alamofire, Kingfisher, SDWebImage, SnapKit, Lottie, SwiftyJSON, Starscream, Firebase, RxSwift, SVProgressHUD, RealmSwift, Charts, Facebook SDK, AFNetworking, MBProgressHUD), и снятые с поддержки плагины Flutter (path_provider_ios, shared_preferences_ios, package_info, wakelock)
- P14: PrivacyInfo.xcprivacy, который target приложения не копирует, или target пакета Swift, который не объявляет его как ресурс
- P15: код, читающий рекламный идентификатор, identifierForVendor, местоположение, контакты или данные о здоровье, без соответствующего типа собираемых данных
- P16: API с обязательной причиной, объявленный в манифесте другого target, но не в том, что рядом с кодом (расширения приложений, фреймворки)
- P17: собственный манифест приложения, объявляющий 0A2A.1 или C56D.1, причины, зарезервированные для сторонних SDK
- P18: использование API с обязательной причиной в проекте Expo, манифест которого берётся из app.config.js или app.config.ts, где категория не названа (конфигурацию нельзя выполнить, поэтому это пункт для проверки)
Что входит в комплект
- Сканер (Python 3.9+, только стандартная библиотека)
- Руководство по правилам с причиной, более безопасным подходом и ссылкой на документацию Apple для каждого правила
- Рискованный и безопасный примеры проектов (приложение для заметок с виджетом, пакет Swift, CocoaPods и небольшое приложение Expo) и реальный отчёт сканера по рискованному
Ограничения
Сканер читает файлы проекта, а не собранное приложение: манифесты внутри бинарных SDK, API, вызываемые только скомпилированными SDK, и код на Kotlin, C# или JavaScript не проверяются. Манифесты, создаваемые при сборке, читаются из config.xml Cordova и app.json или app.config.json Expo; в app.config.js или app.config.ts Expo ищутся только названия категорий, а манифесты, добавленные плагинами конфигурации, не видны. Какой манифест покрывает какой код, определяется по папкам, пакетам Swift и проекту Xcode, а не по полному графу сборки. Таблица версий SDK охватывает перечисленные выше SDK; о других SDK из списка Apple не сообщается. Соответствует ли объявленная причина тому, что код делает на самом деле, и покидают ли данные устройство, по тексту определить нельзя. NOT FLAGGED не является гарантией.
Содержимое
Один ZIP-файл с 45 файлами: SKILL.md, сканер в scripts/ (8 файлов Python), references/rules.md (каждое правило с причиной и более безопасным подходом) и examples/ (34 файла примеров плюс report.md, реальный вывод сканера для рискованного примера).
Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами на Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте архив в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно с Python 3.9 или новее, ничего не нужно устанавливать. Они только читают ваши файлы: без доступа к сети, ничего никуда не отправляется.
Что вы получите
1 файл · 62.62 KB
- apple-privacy-manifest-check-1.0.0.zipZIP · 62.62 KB
ИИ-инструменты и скрипты
Проверка манифеста конфиденциальности Apple
Проверьте проект iOS перед загрузкой: API с обязательной причиной без указанной причины, манифесты конфиденциальности, которые отклоняет App Store Connect, опечатки в кодах причин, неверные домены отслеживания, устаревшие SDK из списка Apple и манифесты, которые target так и не включает в сборку.
Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.
Теги
Частые вопросы
Доступ открывается сразу?
Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.
Можно ли использовать в коммерческих проектах?
Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.
Какие условия возврата?
Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.
Какие форматы и размеры файлов я получу?
Вы скачаете 1 файл - ZIP - всего 62.62 KB.
Обновления бесплатны?
Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.
Цена
$5.00



