¿Por qué no se inician las aplicaciones de App Store transferidas a ~/Applications en otra máquina?

Compré algunas aplicaciones de la tienda de aplicaciones de Mac y las instalé en mi computadora personal. Me gustaría instalarlos en una computadora de trabajo compartida. Desafortunadamente, no tengo acceso de administrador a la computadora del trabajo, por lo que no puedo hacer esto de la manera habitual.

Copié las aplicaciones de la computadora de mi casa al ~/Applicationsdirectorio de la computadora del trabajo e intenté ejecutarlas, con un éxito mixto:

  • Algunas aplicaciones, cuando las ejecuta por primera vez, abren un cuadro de diálogo que dice "Iniciar sesión para usar esta aplicación en esta computadora" y le solicitan su ID y contraseña de Apple, después de lo cual funcionan bien. (Ejemplo: DayOne y la mayoría de las aplicaciones gratuitas)
  • La mayoría de las aplicaciones aún le mostrarán este cuadro de diálogo, pero por alguna razón no funcionará, incluso después de que ingrese su ID y contraseña. (Ejemplo: BBEdit, Soulver, Twitterrific)

Las preguntas):

  • ¿Hay algo que pueda hacer para que la aplicación funcione?
  • Si no, ¿qué es lo que hace que la aplicación se niegue a iniciarse?

Editar : cuando la aplicación falla, muestra un mensaje de consola "Salió con el código de salida: 173". Si entiendo correctamente, esto significa que la aplicación no es válida (lo cual es de esperar cuando la copio de una computadora a otra). Sin embargo, el proceso mediante el cual App Store valida la aplicación parece no funcionar cuando la aplicación no está en la ubicación adecuada. Además, parece probable que las aplicaciones que sí funcionan, como DayOne o las aplicaciones gratuitas, funcionen solo porque no verifican que la aplicación se haya comprado correctamente y, de hecho, funcionaría en cualquier computadora sin ningún tipo de validación.

La pregunta sigue siendo, ¿hay alguna solución?

Editar de nuevo: no tengo problemas para copiar una aplicación en ~/Applicationsla computadora de mi casa, incluso para un usuario diferente. Debido a que investigar (sin mencionar resolver) este problema requiere mucha molestia (incluyendo dos computadoras o al menos una máquina virtual), ofrezco una recompensa.

¿Estás en león o leopardo de las nieves?
La computadora de trabajo es el leopardo de las nieves. El hogar es León. mmm.
Es mejor iniciar sesión en la computadora del trabajo y descargar y luego mover los archivos una vez que se descargan, ¿no?
Cuando descarga archivos de la tienda de aplicaciones, los coloca /Applicationsy, por lo tanto, requiere una contraseña de administrador.
Realicé algunas pruebas y reescribí completamente mi respuesta a continuación. No hay solución, me temo decir, pero al menos una explicación de lo que sucede.

Respuestas (1)

Parece que ha encontrado un error interesante (léase: muy molesto) en el proceso de validación de la App Store:

Para empezar, la ubicación en la que copia sus aplicaciones, de hecho, no entra en ella, ni tampoco su estado como administrador/usuario no administrador. A pesar de que Apple afirma que esto debería ser posible , en mis dos máquinas, no puedo hacer que una aplicación se copie manualmente para que se ejecute como usuario estándar, usuario administrador, en /Applicationso en ~/Applications. Tampoco ayuda chowning y chmoding el paquete para que se ajuste a las instalaciones regulares. Aparece la hoja de inicio de sesión de la App Store (una vez), pero la aplicación continúa cerrando con el código de salida 173 después de eso.

De acuerdo con la documentación para desarrolladores de Apple para la validación de los recibos de la App Store , parte del recibo que valida el uso de una aplicación es un GUID específico de la máquina. Cuando copia una aplicación en otra máquina, el GUID ya no coincide, lo que invalida el recibo (por el contrario, en su propia máquina, siempre coincide, independientemente del usuario para el que instale la aplicación; por lo tanto, no tiene ningún problema con eso) . Las aplicaciones están destinadas a señalar un recibo no válido al salir con el código de salida 173, y el storeagentproceso de la tienda de aplicaciones está destinado a tomar el control después de eso, solicitando credenciales y generando un nuevo recibo, luego reiniciando la aplicación en caso de éxito:

Si el sistema obtiene con éxito un recibo válido, vuelve a iniciar la aplicación. De lo contrario, muestra un mensaje de error al usuario explicando el problema.

No muestre ningún mensaje de error al usuario si falla la validación. El sistema se encarga de intentar obtener un recibo válido o informar al usuario que el recibo no es válido.

Lo que sucede en su caso (y en el mío) es que la validación falla silenciosamente , como lo indica el hecho de que el recibo nunca se actualiza, pero tampoco se muestra ningún mensaje de error. Los registros muestran storeagentdevoluciones:

promptResponse: <CKSignInPromptResponse:0x1080c4fb0 returnCode:1>

Este código no está documentado por Apple, y todo lo que he encontrado son discusiones de desarrolladores sobre este problema en un contexto de prueba, donde parece estar relacionado con que los datos de iTunes Connect están incompletos (Geoff Pado tiene un resumen conciso aquí ).

Sea como sea, la imagen en su conjunto muestra claramente que la validación está fallando en el camino , lo que deja las aplicaciones copiadas manualmente con un recibo no válido incluso después de ingresar las credenciales correctas en la App Store. Solo se ejecutarán aquellas aplicaciones que no verifiquen su propia validez, como notó.

No es muy útil en su caso, Apple solo recomienda eliminar y volver a descargar desde la App Store para solucionar el problema.

TL; DR: no puede copiar manualmente las aplicaciones compradas en la App Store de una computadora a otra hasta que Apple corrija el proceso de validación de recibo necesario para ello. La ubicación de instalación y el privilegio de usuario no se incluyen.

Aparentemente, el error se ha solucionado (consulte apple.stackexchange.com/questions/46874/… ). También funciona para mí, a pesar de no haber actualizado la máquina Snow Leopard desde que hice la pregunta originalmente.