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
9:41
Tu app
Tu appYa en tu bolsillo
App Store · Google Play Aprobada
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 usa
Consérvalo si
Descripción de uso de rastreo (Tracking)
App Tracking Transparency, AdMob
Siempre. La documentación indica que esta clave es obligatoria y que eliminarla hace que la app se cierre. Consérvala incluso sin anuncios.
Cámara
Subida de archivos desde la cámara, escáneres qrcode:// y barcodescanner://, escáner de documentos, linterna
Tu 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ágenes
Los usuarios suben o guardan imágenes en tu app.
Ubicación mientras se usa
Geolocalización HTML5 con permiso nativo
Tu 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 updates
Opción backgroundlocation
Solo con backgroundlocation en true y un caso de uso real en segundo plano. Si no, borra ambos.
Tu app reproduce audio minimizada (radio, pódcasts). Si no, bórralo.
Limpia el proyecto antes de reenviar
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.
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.
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.
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.
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.
Sin Mac, sin Xcode, sin Android Studio: configura en el navegador, compilamos ambas apps en la nube y las entregamos a App Store Connect y a Play Console.
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.
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.