¿Múltiples instalaciones de la misma aplicación?

3

¿Hay alguna forma de tener varias instalaciones de la misma aplicación (en la misma cuenta de usuario)?

Básicamente, tengo varias cuentas de Google Reader y quiero poder tener varias instancias de Reeder . Tal como está, el cambio de cuentas en este momento implica reiniciar la aplicación y escribir manualmente la información de las diferentes cuentas. En ese momento, solo tiene acceso a una de las cuentas, y cambiar de nuevo implica todo el rigamarole nuevamente.

¿Hay alguna manera de que pueda tener algo así como una caja de arena para cada instancia, con su propio llavero?

Xcode está instalado, y me imagino que hay un mecanismo en Xcode para permitir que los programas tengan un llavero / información independiente, para cuando esté probando una aplicación que haya compilado. ¿Hay algo como esto y / o cómo lo usas?

    
pregunta Fake Name 13.08.2012 - 10:18

7 respuestas

1

La única forma de lograr esto con las aplicaciones que no tienen soporte nativo de múltiples cuentas sería parchear el identificador de CFBundle, que también es utilizado por la aplicación para encontrar contraseñas en los llaveros. Puede cambiar eso editando el archivo Info.plist en el paquete de la aplicación. Este romperá la firma digital de la aplicación, así que siempre trabaje en una copia.

Al ser Reeder una aplicación de la Mac AppStore, se romperá la firma digital de la aplicación, lo que hace que no se pueda iniciar. Por lo tanto, también tendrás que eliminar todos los signos de Contents/_CodeSignature/CodeResources . Entonces este podría funcionar, a menos que la aplicación realice una verificación de paquetes adicional que impida esto. (Lo que es algo que no sé en el caso de Reeder). Cuando esto realmente funcione, deberá iniciar la aplicación con un clic secundario (clic derecho, clic con el dedo o ctrl-clic) y luego seleccionar "Abrir ”En el menú contextual y confirmando la siguiente advertencia de Gatekeeper. (Definitivamente no puedo recomendar que desactive el Gatekeeper por completo).

Por supuesto, deberá realizar todos estos pasos para cada copia después de cada actualización de Reeder nuevamente. (Con el riesgo de que Reeder pueda agregar verificaciones adicionales en cualquier momento, este proceso ya no funciona).

Otras soluciones pueden ser el uso de diferentes clientes RSS para sus múltiples cuentas y la solicitud de soporte de múltiples cuentas de los desarrolladores.

    
respondido por el MacLemon 29.09.2012 - 20:12
5

Puedes hacer esto con Reeder.

  • Necesitará tantas cuentas de usuario como cuentas de Google.
  • Suponiendo que tiene 2 cuentas de Google, obviamente puede ejecutar su cuenta principal de Google como usuario predeterminado. Simplemente haga clic en Reeder desde Launcher o Dock y estará listo.
  • Vaya a Preferencias del sistema, Usuarios & Grupos, y crea un nuevo usuario. Llámalo TestUser. Asegúrese de establecer una contraseña. Una cuenta de usuario estándar bastaría.
  • Abrir Terminal.
  • ejecuta esto: echo "contraseña" | sudo -S -u TestUser /Applications/Reeder.app/Contents/MacOS/Reeder &

voila! ¡Ahora puedes ver una ventana del segundo Reeder!

    
respondido por el user30988 29.09.2012 - 21:46
2

Cree un nuevo usuario de escritorio para cada cuenta diferente de Google Reader. Luego, puede usar el cambio rápido entre cuentas para cambiar al usuario deseado (hay una barra de menú disponible para eso).

También puede utilizar un comando de shell para iniciar un proceso bajo el mismo administrador de ventanas de otro usuario. Di su other_user -c 'open /Applications/Reeder.app' . He hecho esto para lanzar aplicaciones GUI como root. Jugué con abrir Chrome usando ese enfoque, pero parece que el llavero no se inicializó correctamente en ese caso, podría estar intentando leer el llavero del usuario anfitrión. Es posible que pueda resolverlo iniciando sesión como usuario, creando el llavero y luego ejecutando el script.

Anexo: No estoy seguro de si un programa de App Store se iniciará como otro usuario, con una autenticación diferente (aún no he usado App Store). Si ese es el caso, crearía un script para modificar temporalmente el llavero, lanzar Reeder y luego recrear el original. Sin embargo, ese es un enfoque bastante grotesco.

    
respondido por el sapht 27.09.2012 - 19:28
1

Depende de la aplicación, me imagino que esto es perfectamente posible para algunos, y no para otros. Depende de si la aplicación es autónoma en su propio paquete, o si requiere el uso de un archivo auxiliar en su carpeta ~ / library, como plists, etc. El uso de tales archivos plist, etc., es a menudo donde se almacenan sus configuraciones y preferencias. incluyendo la configuración de la cuenta, y tener múltiples instancias de la aplicación aún dará como resultado que todas busquen en la misma ubicación el archivo plist.

Puede incluir el binario de su aplicación en algunas secuencias de comandos para mover el plist correcto antes de comenzar cada instancia, pero, nuevamente, depende de la aplicación, no hay garantía de que una aplicación que ya se está ejecutando continúe ejecutándose si el plist cambia, o si simplemente asumirá la nueva configuración en algún momento.

    
respondido por el stuffe 13.08.2012 - 10:34
1

Si la aplicación proviene de un lugar que no sea App Store, sugeriría que tuviera una posibilidad razonable de buscar dentro del paquete de la aplicación y tal vez cambiar el nombre que consideraba que era su nombre editando un .plist y esperando que El nombre influyó en el uso del llavero.

Sin embargo, como Reeder es una aplicación de App Store, sospecho que estás atascado. Si modifica la aplicación, su firma no será válida y el sistema operativo no le permitirá ejecutarla. A menos que haya algún tipo de pirateo de auto-firma que puedas hacer ...

    
respondido por el Chris 13.08.2012 - 10:45
1

No: el llavero es una interfaz de sistema profundamente integrada donde la asignación está fuertemente vinculada a la carpeta de inicio del usuario (la aplicación no puede elegir a qué llavero del usuario acceder, ya que el sistema le dice a qué carpeta literal se asigna ~) .

Sin embargo, el único caso especial en el que esto funcionará es que las aplicaciones que están programadas con código lean un archivo de configuración (archivo plist, .dotfile u otro mecanismo) y podría usar la automatización para configurar esas variables de tiempo de ejecución. o manipule directamente los archivos .plist antes de iniciar la aplicación en cuestión.

  • Platypus sería mi elección para un script de shell para cambiar las cosas y luego lanzar la aplicación y agrupar las cosas.
  • Secuencias de comandos de llavero también podrían rayar su comezón si pudiera recuperar el nombre de el elemento de llavero que quería pasar a la aplicación para obtener un comportamiento diferente en cada lanzamiento.

El sistema no tiene una vista de sandbox para esta separación de datos que no sea si literalmente inicias una segunda sesión de usuario (que Lion y más tarde permiten) pero la aplicación necesitaría agregar los datos a una tubería o un archivo en lugar de existir en la pantalla como una aplicación en ejecución de un usuario diferente.

A menos que escribas esta herramienta por ti mismo (después de todo, tienes Xcode), Apple no ofrece algo para automatizar el sandbox de llaveros, según entiendo que lo estás describiendo.

    
respondido por el bmike 28.09.2012 - 16:26
0

Estoy apostando aquí, pero algunas aplicaciones no se pueden abrir dos veces y no puedo comprar Reeder para pruebas. Sin embargo, supongo que no se puede abrir dos veces. ¿Qué sucede cuando duplicas el archivo .app e intentas abrir los dos .app diferentes? Si algo así funciona, podría intentar tener un .app duplicado y tal vez encontrar el contenido que desea compartir o que pueda compartir entre ambos como enlaces simbólicos de la copia que hace referencia a la aplicación principal o original.

¿Algo como esto ayuda de alguna manera?

    
respondido por el FernandoH 27.09.2012 - 16:04

Lea otras preguntas en las etiquetas