Je crée une application Mac C ++ avec Xcode. Je l’ai déjà fait auparavant sans problème, mais j’ai démarré un nouveau projet il y a quelques semaines et celui-ci a des problèmes.
Lorsque je lance l’application, ce message apparaît dans la console après l’appel de SDL_GL_CreateContext
bootstrap_check_in(): (os/kern) unknown error code (44c)
Je n’ai jamais vu cela auparavant et je ne sais pas ce que cela signifie. L’application est toujours lancée.
osascript
ne fonctionne plus. Lorsque cette commande est appelée,
osascript -e 'try' -e 'POSIX path of ( choose file name with prompt "Save screenshot" default name "Screenshot.png" )' -e 'on error number -128' -e 'end try'
ce message apparaît dans la console:
2017-11-25 10:50:19.837159+1030 osascript[7910:487965] +[NSXPCSharedListener endpointForReply:withListenerName:]: an error occurred while attempting to obtain endpoint for listener 'com.apple.view-bridge': Connection interrupted 2017-11-25 10:50:19.838056+1030 osascript[7910:487963] *** Assertion failure in +[NSXPCSharedListener connectionForListenerNamed:fromServiceNamed:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/ViewBridge/ViewBridge-341.1/NSXPCSharedListener.m:421 2017-11-25 10:50:19.838724+1030 osascript[7910:487963] *** Assertion failure in -[NSVBSavePanel viewWillInvalidate:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1561.10.101/Nav.subproj/OpenAndSavePanelRemote/NSVBOpenAndSavePanels.m:387 2017-11-25 10:50:19.879032+1030 osascript[7910:487963] -[NSVBSavePanel init] caught non-fatal NSInternalInconsistencyException 'bridge absent' with backtrace
J’ai exclu la trace de la stack. Commentez si vous voulez que j’inclus la trace de la stack.
Parfois, un autre message apparaît dans la console.
2017-11-26 11:09:14.994459+1030 Buttons[28532:1663094] [User Defaults] Couldn't read values in CFPrefsPlistSource (Domain: com.apple.PowerManagement, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): accessing preferences outside an application's container requires user-preference-read or file-read-data sandbox access, detaching from cfprefsd
Les appels à SDL_GetPrefPath
des chemins différents dans cette application.
Cette application
SDL_GetPrefPath("company", "my app") -> "/Users/indikernick/Library/Containers/company.my-app/Data/Library/Application Support/company/my app/"
Une autre application qui n’est pas cassée
SDL_GetPrefPath("company", "my app") -> "/Users/indikernick/Library/Application Support/company/my app/"
Je suis à peu près sûr que tous ces problèmes sont liés. Le projet est sur Github, donc si vous avez déjà vu ce problème, vous pouvez vérifier les parameters du projet. Si cela compte, j’utilise Xcode 9.0 et MacOS 10.13.1.
Merci d’avance pour toute aide.
Il semble que votre application soit (en quelque sorte) en mode bac à sable. Ceci est vu à partir du chemin renvoyé par SDL_GetPrefPath, qui commence par ~/Library/Containers
, et à partir du message ‘random’, qui indique clairement:
l’access aux préférences en dehors du conteneur d’une application nécessite un access au bac à sable selon la préférence de l’utilisateur ou la lecture du fichier
Le message d’erreur contextuel est également très suspect: il semblerait que votre application ne soit pas autorisée à accéder à une ressource système.
Vous devez vérifier dans xcode si le sandboxing est activé pour votre application (c.-à-d. Vérifier si un fichier de liste de propriétés appelé .entitlements est affiché dans le navigateur de projet).
Plus d’informations sur le sandboxing: https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html