Saltar al contenido principal

Menú de comandos

Ve a una página o busca en el catálogo

Herramientas y scripts de IA

Verificación del manifiesto de privacidad de Apple

Revisa un proyecto de iOS antes de subirlo: API de motivo obligatorio sin motivo declarado, manifiestos de privacidad que App Store Connect rechaza, códigos de motivo mal escritos, dominios de rastreo incorrectos, SDK desactualizados de la lista de Apple y manifiestos que el target nunca incluye.

$5.00

Qué recibes: 1 archivo · 62.62 KB · ZIP

Ver opciones de compra

Descripción del producto

UserDefaults.standard en tu código Swift sin una entrada NSPrivacyAccessedAPICategoryUserDefaults, o un código de motivo escrito como c617.1 en lugar de C617.1, basta para que App Store Connect rechace una compilación, y una URL completa donde Apple espera un dominio de rastreo sin más invalida el manifiesto. Esta skill detecta esos y los demás errores del manifiesto de privacidad antes de subir la app, y te explica cómo corregir cada uno.

Tu agente ejecuta un escáner sobre tu proyecto: archivos PrivacyInfo.xcprivacy, los manifiestos que Cordova (config.xml) y Expo (app.json, app.config.json) escriben en tiempo de compilación, Info.plist y otros plists, código Swift, Objective-C y C/C++, archivos de proyecto de Xcode (grupos clásicos y carpetas sincronizadas de Xcode 16), Package.swift, Podfile, Podfile.lock, Package.resolved y el pubspec.lock de Flutter. Compara cada clave y valor con las listas de Apple de categorías, códigos de motivo, tipos de datos y finalidades, determina qué manifiesto cubre qué código (app, extensión, paquete Swift) y omite comentarios, cadenas, tests y código de terceros incluido en el proyecto (Pods, plugins y plataformas de Cordova). Los manifiestos dentro de Pods solo se revisan en busca de lo que hace que App Store Connect los rechace, y un manifiesto en el bundle de recursos de una biblioteca cubre el código de esa biblioteca. Nunca compila ni ejecuta el proyecto. Devuelve BLOCK, REVIEW o NOT FLAGGED, con el archivo, la línea, el motivo y un enfoque más seguro, y cada regla enlaza la documentación de Apple en la que se basa. Los secretos nunca se muestran.

Qué revisa

BLOCK (corregir antes de publicar)

  • P01: API de motivo obligatorio usadas en tu código (UserDefaults, @AppStorage, marcas de tiempo de archivos, stat, systemUptime, mach_absolute_time, claves de espacio en disco, statfs, activeInputModes) sin ningún manifiesto que declare la categoría (proyectos de iOS, iPadOS, tvOS, visionOS y watchOS)
  • P02: manifiestos (archivos, config.xml de Cordova o configuración de Expo) que no son listas de propiedades válidas o contienen claves que no son del manifiesto de privacidad
  • P03: entradas NSPrivacyAccessedAPITypes no válidas (categoría desconocida o con mayúsculas incorrectas, código de motivo no aprobado, con mayúsculas incorrectas o de otra categoría, lista de motivos vacía, clave ausente o sobrante)
  • P04: claves de rastreo no válidas (tipos incorrectos, tracking true con una lista de dominios vacía, tracking false con dominios, entradas que no son un dominio sin más: una URL, una ruta, una consulta o una barra final)
  • P05: entradas NSPrivacyCollectedDataTypes no válidas (tipo de datos o finalidad desconocidos, clave ausente o sobrante, Linked o Tracking que no son booleanos)

REVIEW (revisar antes del lanzamiento)

  • P11: rastreo incoherente (true sin lista de dominios, dominios sin NSPrivacyTracking, un tipo de datos usado para rastreo sin que el rastreo esté declarado, una solicitud de App Tracking Transparency sin un manifiesto que diga que la app rastrea)
  • P12: claves del manifiesto de privacidad en Info.plist u otro plist, o un archivo .xcprivacy con el nombre incorrecto
  • P13: SDK de la lista de Apple fijados en versiones sin manifiesto de privacidad (Alamofire, Kingfisher, SDWebImage, SnapKit, Lottie, SwiftyJSON, Starscream, Firebase, RxSwift, SVProgressHUD, RealmSwift, Charts, Facebook SDK, AFNetworking, MBProgressHUD) y plugins de Flutter descontinuados (path_provider_ios, shared_preferences_ios, package_info, wakelock)
  • P14: un PrivacyInfo.xcprivacy que el target de la app no copia, o un target de paquete Swift que no lo declara como recurso
  • P15: código que lee el identificador de publicidad, identifierForVendor, la ubicación, los contactos o datos de salud sin el tipo de datos recopilados correspondiente
  • P16: una API de motivo obligatorio declarada en el manifiesto de otro target pero no en el que está junto al código (extensiones de app, frameworks)
  • P17: un manifiesto propio de la app que declara 0A2A.1 o C56D.1, motivos reservados para SDK de terceros
  • P18: uso de API de motivo obligatorio en un proyecto de Expo cuyo manifiesto proviene de un app.config.js o app.config.ts que no nombra la categoría (la configuración no se puede ejecutar, así que es un punto a revisar)

Qué incluye

  • El escáner (Python 3.9+, solo biblioteca estándar)
  • Una guía de reglas con el motivo, el enfoque más seguro y el enlace a la documentación de Apple para cada regla
  • Un proyecto de ejemplo arriesgado y uno seguro (una app de notas con un widget, un paquete Swift, CocoaPods y una pequeña app de Expo), y el informe real que genera el escáner sobre el arriesgado

Limitaciones

Lee los archivos del proyecto, no la app compilada: no se revisan los manifiestos dentro de SDK binarios, las API llamadas solo por SDK compilados ni el código en Kotlin, C# o JavaScript. Los manifiestos generados en compilación se leen del config.xml de Cordova y del app.json o app.config.json de Expo; en un app.config.js o app.config.ts de Expo solo se buscan nombres de categorías, y los manifiestos añadidos por config plugins no se ven. Qué manifiesto cubre qué código se deduce de las carpetas, los paquetes Swift y el proyecto de Xcode, no de un grafo de compilación completo. La tabla de versiones de SDK cubre los SDK mencionados arriba; otros SDK de la lista de Apple no se informan. Si un motivo declarado corresponde a lo que el código hace realmente, y si los datos salen del dispositivo, no se puede decidir a partir del texto. NOT FLAGGED no es una garantía.

Contenido

Un archivo ZIP con 45 archivos: SKILL.md, el escáner en scripts/ (8 archivos de Python), references/rules.md (cada regla con su motivo y el enfoque más seguro) y examples/ (34 archivos de ejemplo más report.md, la salida real del escáner sobre el ejemplo arriesgado).

Cómo usarlo: Es una skill para agentes: una carpeta con un archivo SKILL.md y scripts de Python que puede ejecutar un agente de programación con IA como Claude Code, Cursor o Codex CLI. Descomprímela en la carpeta de skills de tu agente (para Claude Code: ~/.claude/skills/) y pide a tu agente que revise tu proyecto. Los scripts también funcionan por sí solos con Python 3.9 o posterior, sin instalar nada. Solo leen tus archivos: sin acceso a la red, y no se envía nada a ningún sitio.

Qué recibes

1 archivo · 62.62 KB

  • apple-privacy-manifest-check-1.0.0.zipZIP · 62.62 KB
LicenciaUso comercial permitido
Revisión del paqueteSuperada

Getly abrió los archivos subidos y no encontró nada que impida abrirlos. No es un análisis antivirus ni una valoración de calidad.

Publicado12 nov 2026
Tamaño del archivo62.62 KB
Formato de archivoZIP
Versiónv1.0

Etiquetas

iosprivacy-manifestapp-storexcodeswiftai agent skill
R
RR HH

Preguntas frecuentes

¿Tengo acceso al instante?

Sí. Es un producto digital: puedes descargarlo justo después del pago, directamente desde tu biblioteca.

¿Puedo usarlo en proyectos comerciales?

Sí. Se permite el uso comercial: úsalo en tu propio negocio y en cosas que vendas. No puedes revender ni redistribuir el archivo en sí.

¿Cuál es vuestra política de reembolso?

Puedes pedir un reembolso dentro de 30 días. Si algo no va bien, solicítalo desde tu pedido y el equipo de Getly lo revisa.

¿Qué formatos y tamaños de archivo recibiré?

Descargarás 1 archivo - ZIP - 62.62 KB en total.

¿Recibo actualizaciones gratis?

Sí: cuando el vendedor publica una versión nueva, puedes volver a descargar los archivos más recientes desde tu biblioteca sin coste extra. Mira el registro de cambios para ver las últimas actualizaciones.

Precio

$5.00