traba sesion seguro quitar prueba modo mini macbook mac iniciar inicia imac fallos comandos arranque arrancar objective-c macos

objective-c - seguro - no inicia sesion mi mac



Error al habilitar el inicio de sesión automático de la aplicación mac os utilizando un ayudante (7)

Como ya se indicó, si hay más de una copia del paquete de servicios en la máquina, launchd no puede resolver cuál debe iniciarse por el identificador del paquete.

Lo que le recomendaría es que encuentre todas las copias de su servicio y luego elimine las que no desee.

Para esto necesitas ejecutar el siguiente código Swift (funciona incluso en Swift Playground):

import Cocoa let bundleId = "com.your.bundleId" let paths = LSCopyApplicationURLsForBundleIdentifier(bundleId as CFString, nil) print("Available service instances by bundle id: /(paths)")

En mi caso produce:

Available service instances by bundle id: Optional(Swift.Unmanaged<__ObjC.CFArray>(_value: <__NSArrayI 0x6000002234a0>( file:///Applications/MyApp.app/Contents/Library/LoginItems/MyService.app/, file:///Users/igor/Library/Developer/Xcode/Archives/2017-12-27/MyApp%2027-12-2017,%2016.06.xcarchive/Products/Applications/MyService.app/ ) ))

Así que identifiqué fácilmente la copia a eliminar:

file:///Users/igor/Library/Developer/Xcode/Archives/2017-12-27/MyApp%2027-12-2017,%2016.06.xcarchive/Products/Applications/MyService.app/

Espero que te ayude.

Estoy intentando que mi aplicación se inicie automáticamente al iniciar sesión siguiendo el tutorial de Tim: http://blog.timschroeder.net/2012/07/03/the-launch-at-login-sandbox-project/

Seguí las instrucciones de la carta pero recibo un error cuando vuelvo a iniciar sesión en mi computadora de la siguiente manera:

Jan 10 12:55:01 pc61 com.apple.xpc.launchd[1] (com.myApp.macgap.helper[25725]): Could not resolve CFBundleIdentifier specified by service: -10814: com.myApp.macgap.helper Jan 10 12:55:01 pc61 com.apple.xpc.launchd[1] (com.myApp.macgap.helper): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.

Al esquema:

  • Tengo mi aplicación principal llamada "myApp" (ID: com.myApp.macgap)
  • En esa aplicación tengo una aplicación de ayuda con ID: com.myApp.macgap.helper
  • Cuando inicia la aplicación principal y va a las preferencias, tiene una opción para habilitar el inicio de sesión automático (para ajustarse a las reglas de cumplimiento de Apple)
  • Me desconecto de mi computadora, vuelvo a iniciar sesión y miro la consola para ver qué sucede (así es como obtengo el código de arriba)

Otro punto que vale la pena mencionar es que cuando hago "Mostrar contenido del paquete" en la aplicación y hago doble clic en la aplicación auxiliar, se ejecuta la aplicación principal ...


Estuve luchando con esto por horas. Tuve muchas aplicaciones con inicio de sesión automático, pero una nueva simplemente no quería trabajar. Extrañamente tis trabajó en la máquina de desarrollo:

1: Build App as normal 2: Move it to Application directory 3. Clean Xcode (CMD+k)!! 4. Enable auto login in the app. 5. Logout Login

Accidentalmente noté que el sistema inició la aplicación (lo intenta cada 10 segundos) cuando limpio Xcode :)


No puedo encontrar la copia duplicada pero encontré que puedes eliminar el servicio:

En una ventana de terminal:

launchctl remove com.annoying.service


Suponiendo que siguió la receta de Tim Schroeder en: http://blog.timschroeder.net/2012/07/03/the-launch-at-login-sandbox-project/ :

Lo que realmente funcionó para mí fue, en Xcode, cambiar el número de compilación de mi proyecto principal de 1 a 2. También probé un número de compilación de 1000 y eso también funcionó bien.

En Xcode, seleccione su objetivo principal del proyecto. Luego, seleccione la pestaña ''General''. Si ve que su Compilación está establecida en 1, cámbiela a 2 y luego reconstruya, vuelva a desplegar y vea si eso resuelve el problema por usted.

Este fue probablemente uno de los errores más atrevidos con los que me he encontrado, en mucho tiempo.


Todo se reduce a cómo funcionan launchd y launchctl, como ya se respondió, el caso de uso regular a menudo se puede resolver al reinstalar la aplicación y asegurarse de que esté dentro de la carpeta de aplicaciones. Pero hay otro caso al que se refiere @byb, cuando esto sucede en su máquina de desarrollo, esto puede deberse a una configuración no válida de launchd.

Cuando ejecuta SMLoginItemSetEnabled , registra su identificador de paquete junto con otra información en el servicio launchd. En algún momento más tarde, cuando su aplicación cambie, se limpie o le suceda algo más, que se retire con launchd, launchd puede desactivar ese elemento de inicio de sesión en particular. Aparentemente, a veces esto no funciona correctamente y las llamadas consecutivas con SMLoginItemSetEnabled no funcionarán como se esperaba o la aplicación de agente / ayudante simplemente no se iniciará.

Lo primero que debe intentar es simplemente cambiar el identificador de paquete para su lanzador. Si esto resuelve el problema, intente averiguar qué está mal con el original. Ejecute launchctl print-disabled "user/$(id -u)" para mostrar servicios deshabilitados y asociaciones de elementos de inicio de sesión. Si la salida contiene su identificador de paquete problemático, está de suerte.

No encontré una forma de eliminar los servicios deshabilitados por nombre usando launchctl y tuve que hacerlo editando manualmente los archivos de configuración. Debido a que son propiedad del sistema, no podrá simplemente hacer clic y editar, en su lugar iniciar Xcode como root y eliminar las referencias necesarias.

sudo /Applications/Xcode.app/Contents/MacOS/Xcode "/private/var/db/com.apple.xpc.launchd/loginitems.$(id -u).plist" sudo /Applications/Xcode.app/Contents/MacOS/Xcode "/private/var/db/com.apple.xpc.launchd/disabled.$(id -u).plist"

Reinicie, ejecute launchctl print-disabled "user/$(id -u)" para confirmar que los elementos eliminados ya no están en la lista. Intente SMLoginItemSetEnabled nuevo, con suerte ahora funcionará como se esperaba.


Tuve el mismo problema exacto en este momento, y mientras buscaba una solución, encontré esta pregunta (sin respuesta).

Al menos en mi caso, esta funcionalidad deseada de la multa funcionó cuando copié la aplicación (exportada desde Xcode como un .app con firma .app) a una nueva instalación / cuenta de OS X sin todos mis elementos de desarrollo. Por supuesto, también debe estar en / Aplicaciones, como se indica en el tutorial al que se hace referencia en la pregunta.

No estoy seguro de por qué esta función de la aplicación no funcionó en mi máquina de desarrollo. Quizás el problema podría deberse a algún tipo de conflicto con todas las otras copias casi idénticas de mi aplicación que tengo en el disco (tengo un archivo de diferentes versiones de la aplicación, más las copias que Xcode almacena), todas con el mismo ID de paquete, por supuesto.

Espero que esto ayude de una manera u otra!


Tuve el mismo problema, eliminar otras copias de la aplicación, excepto una en / Aplicaciones, resolvió el problema por mí. Para eliminar los archivos .app generados por Xcode, puede ejecutar Producto-> Limpiar.