Saltar al contenido
WebViewGold Del vibe coding a la App Store
Español
Consigue WebViewGold

Rechazo en App Store

Directriz 2.5.1 (Software Requirements): limpiar permisos y modos en segundo plano en un proyecto de WebViewGold

El proyecto Xcode de WebViewGold admite docenas de funciones nativas, así que viene con textos de permiso para todas ellas. Apple espera que una app declare solo lo que usa. Quince minutos en Info.plist y en la pestaña Capabilities convierten un rechazo 2.5 en una aprobación.

Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.

  • Garantía de aprobación – o te devolvemos el dinero en 14 días
  • Sin programar
  • Pago único, actualizaciones gratuitas
  • Soporte humano 24/7
  • Hecho en Alemania desde 2014 · ISO 27001

Qué dicen las reglas 2.5

La sección 2.5 cubre los requisitos de software. La 2.5.1 pide a las apps que usen solo APIs públicas y para su propósito previsto; los revisores lo extienden a las capacidades y permisos que una app declara pero nunca utiliza. La 2.5.4 dice que los modos en segundo plano solo pueden activarse para el fin al que están destinados (audio, ubicación, VoIP, etc.). La 2.5.6 exige que las apps que navegan por la web usen WebKit, que es exactamente lo que hace el WKWebView de WebViewGold, así que esa regla está de tu lado.

El rechazo suena como "Your app includes a usage description for Contacts but we could not find a feature that uses it". Tanto las comprobaciones automáticas de Apple como el revisor miran Info.plist y los entitlements; una app de recetas que pide NFC les parece sospechosa a ambos.

Textos de permiso del proyecto y la función de WebViewGold detrás de cada uno

Permiso (texto de propósito en Info.plist)Lo usaConsérvalo si
Descripción de uso de rastreo (Tracking)App Tracking Transparency, AdMobSiempre. La documentación indica que esta clave es obligatoria y que eliminarla hace que la app se cierre. Consérvala incluso sin anuncios.
CámaraSubida de archivos desde la cámara, escáneres qrcode:// y barcodescanner://, escáner de documentos, linternaTu app web tiene subida desde la cámara, un escáner o un botón de linterna.
Fototeca (leer / añadir)Subida de imágenes desde la galería, el descargador de archivos al guardar imágenesLos usuarios suben o guardan imágenes en tu app.
Ubicación mientras se usaGeolocalización HTML5 con permiso nativoTu app web llama a la API de geolocalización. Escribe un texto de propósito que nombre la función ("para encontrar gimnasios cerca de ti").
Ubicación siempre + Background Modes: Location updatesOpción backgroundlocationSolo con backgroundlocation en true y un caso de uso real en segundo plano. Si no, borra ambos.
Face IDenableBioMetricAuth o la API bioauth://Usas inicio de sesión biométrico. La documentación de autenticación biométrica muestra la clave necesaria.
Contactos, Calendarios, NFCAPI de contactos, API de iCal, plugin de NFCActivaste esa API concreta. Si no, bórralo.
Background Modes: AudioAudio HTML en segundo planoTu app reproduce audio minimizada (radio, pódcasts). Si no, bórralo.

Limpia el proyecto antes de reenviar

  1. Borra los textos de propósito que no necesitas

    Abre Info.plist en Xcode, revisa cada entrada "Privacy - ... Usage Description" y elimina las de funciones que no están en tu lista. Conserva la Tracking Usage Description. La documentación de publicación describe este paso.

  2. Reescribe los textos que conservas

    Sustituye el texto de plantilla por el propósito con tus palabras: "Escanea el código QR de tu tarjeta del gimnasio para registrar tu entrada", no "Esta app necesita acceso a la cámara". Un texto concreto también ayuda con la Directriz 5.1.1.

  3. Revisa Signing & Capabilities

    Background Modes solo debe listar lo que usas: Remote notifications para push, Location updates solo con backgroundlocation, Audio solo para reproducción en segundo plano. Elimina las capacidades que añadiste mientras experimentabas.

  4. Silencia los avisos que no necesitas

    Si no usas push, pon askforpushpermissionatfirstrun en false para que no aparezca ningún diálogo de notificaciones. Si usas push pero quieres preguntar más tarde, déjalo en false y llama a registerpush:// después del onboarding.

  5. Recompila, prueba cada diálogo de permiso, sube el número de compilación

    Cada permiso restante debe aparecer en el momento en que se usa la función relacionada y en ningún otro sitio. Después sube la nueva compilación y responde en el Centro de resolución con la lista de claves eliminadas.

Con una buena versión optimizada de su aplicación web, puedes tener una impresionante aplicación móvil en un par de minutos. ¡Además del servicio al cliente es muy agradable y muy útil! ¡Puedo recomendar WebViewgold :-)

Julian Koch · Cofundador de Dueldonkey · CodeCanyon

Otros hallazgos 2.5 que llegan a las apps web empaquetadas

  • APIs privadas (2.5.1): solo es un problema si dejas que Cursor o Claude Code añadan código Swift nativo que llame a métodos no documentados. Limita las ediciones nativas a Config.swift y a los plugins documentados.
  • Inicio de sesión biométrico (2.5.13): la autenticación facial debe pasar por el framework LocalAuthentication del sistema, que es lo que usan bioauth:// y enableBioMetricAuth.
  • Modos en segundo plano (2.5.4): Audio en una app sin audio y Location updates "por si acaso" son los casos clásicos.

Prompt: deja que Claude Code o Cursor auditen el proyecto

Prompt para Claude Code / Cursor abierto en la carpeta del proyecto Xcode de WebViewGold
Audita este proyecto de iOS de WebViewGold en busca de permisos sin usar. 1) Lee Config.swift y enumera cada función nativa activada (push, biometría, geolocalización, escáneres, AdMob, descargas de archivos, contactos, NFC, audio en segundo plano, ubicación en segundo plano). 2) Lee Info.plist y enumera cada clave Privacy de descripción de uso. 3) Para cada clave, dime si alguna función activada la necesita. 4) Genera el Info.plist editado sin las claves innecesarias, pero conserva NSUserTrackingUsageDescription en todos los casos. 5) Reescribe los textos de propósito restantes para que cada uno nombre la función concreta de mi app: [describe tu app]. 6) Dime qué entradas de Background Modes en Signing and Capabilities debo eliminar. No cambies nada más del proyecto.

Preguntas frecuentes

¿Eliminar claves de permiso romperá funciones de WebViewGold más adelante?

Solo la función ligada a esa clave. Si activas el escáner QR en una actualización futura, vuelve a añadir la descripción de uso de la cámara en esa misma actualización. Eliminar la clave de rastreo es el único cambio que rompe la app en sí.

Apple citó la 2.5.4 pero nunca toqué los modos en segundo plano. ¿De dónde salen?

Revisa Signing and Capabilities en Xcode. Puede que se activara un modo en segundo plano al seguir un tutorial de push o de ubicación. Elimínalo ahí, recompila y reenvía.

¿El Cloud Builder tiene este problema?

El Cloud Builder genera la app a partir de las funciones que activas en el navegador, así que no editas Info.plist tú mismo. Activa solo las funciones que usas y escribe textos de propósito para ellas.

Tres formas de llevar tu app a las tiendas

El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.

Hazlo tú mismo

$109 por plataforma, pago único

La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.

Ver planes en la página principal

Full Service

$698 por plataforma $798

Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.

Detalles del Full Service Con tecnología de WeSetupYourWebViewApp

Precios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.

¿Listo para lanzar tu app?

Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días

¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.

Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.