4 votos

Forzar una aplicación para macOS 10.12 Sierra y posterior a ejecutarse en OS X Yosemite 10.10

Tengo una aplicación que no se iniciaría en OS X Yosemite y arroja el siguiente mensaje

Esta aplicación requiere OS X 10.12 o posterior.

La aplicación en sí es completamente funcional. Puedo ejecutarla fácilmente a través de Terminal

/Applications/My\ App.app/Content/MacOS/My\ App

Se inicia perfectamente bien.

El método antiguo era editar el archivo Info.plist de la aplicación y establecer LSMinimumSystemVersion en la versión de OS X que estás ejecutando. Sin embargo, el Info.plist del paquete de mi aplicación no tiene ningún LSMinimumSystemVersion especificado en absoluto.

Intenté falsificar la versión de OS X editando: /System/Library/CoreServices/SystemVersion.plist y funciona para My App.app pero rompe algunas otras aplicaciones.

De alguna manera, simplemente leyendo el paquete de la aplicación, el Finder sabe que es incompatible y dibuja el signo blanco cruzado sobre el ícono de la aplicación.

¿Cómo sabe que el archivo Info.plist no tiene esta información?

0 votos

¿Puedes nombrar "Mi-App"?

0 votos

¿Qué pasa si cambias el ID de paquete de la aplicación?

0 votos

Mi pensamiento inicial fue que esto suena como la lista negra de aplicaciones incompatibles, ¡pero acabo de darme cuenta de que no puede ser el caso! El usuario está tratando de ejecutar una aplicación más nueva en un macOS más antiguo, no una aplicación más antigua en un macOS más nuevo. Dudo mucho que Apple mantenga retroactivamente listas negras para SO más antiguos.

1voto

Nimesh Neema Puntos 69

Una posible explicación es que las otras aplicaciones están construidas usando el nuevo SDK de macOS y tienen su objetivo de implementación mínima configurado en un nivel superior a OS X Yosemite. En tales casos, editar/agregar la clave LSMinimumSystemVersion no funcionará.

Además, editar manualmente el archivo Info.plist puede romper la integridad de la aplicación y evitar que se ejecute.

Necesitas consultar con los desarrolladores de las aplicaciones y verificar si aún admiten la versión anterior de OS X o si tienen compilaciones dirigidas a versiones antiguas de OS X.

1 votos

Esto no explica por qué MyApp funciona cuando se lanza desde la CLI y cómo Finder/Recomienda obtener su información/instrucción preventiva.

1 votos

@LangLangC Supuse que MyApp se construyó con el SDK anterior y tiene un objetivo de implementación compatible con OS X Yosemite y/o no está firmado.

0 votos

No entiendo estas suposiciones. ¿Las aplicaciones sin firmar no obtienen la señal de prohibido estacionar, pero pueden ejecutarse sin problemas si se selecciona "desde cualquier lugar" en Preferencias del Sistema? Los factores clave son: ¿cómo leería Finder DeploymentTarget; y por qué aún se puede lanzar desde Terminal (obviamente, simplemente utiliza API más antiguas o poco cambiantes), si info-plist rompe la integridad, ¿por qué funciona CLI? El OP tal vez debería dar más información, pero lo anterior no resuelve el problema y en mi opinión no explica probablemente por qué unas cosas fallan y otras no para el escenario dado. ¿Por favor revisar: por ejemplo cómo Finder determina la señal de estacionamiento (ahora)...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X