Crash NSOpenPanel/NSSavePanel avec Yosemite

MalaMala Membre, Modérateur

Depuis quelques temps, mon outil de crash reporting hockeyapp me remonte des crashs utilisateurs pour le moins étranges...


«1

Réponses

  • LarmeLarme Membre

    J'ai pas eu le crash via la version de démo sur ton lien.


    iMac (21.5-inch, Late 2013)


    Mac OS X.10.2

  • CéroceCéroce Membre, Modérateur
    Pas de souci sous 10.10.3 pour moi.
  • MalaMala Membre, Modérateur

    Merci! J'ai l'impression qu'il est bien sournois celui là . :( Espérons que la 10.10.3 apporte la solution car comme bug c'est radical.


     


    Sur les reports que j'ai pour l'instant, il touche des iMacs génération 14,1 et 12,2 sous 10.10.2.


  • DrakenDraken Membre
    mars 2015 modifié #5

    ça marche bien sur mon MBPr 13 pouces (OSX Yosemite 10.10.2). Et je le regrette sincèrement. Une application dont le logo est l'oeil de Sauron ça me fiche la frousse, moi .. Vade Retro Mala !


  • MalaMala Membre, Modérateur
    mars 2015 modifié #6

    Pour ma défense, mon oeil de chat existait avant les films! :)


     


    A l'origine, j'avais créé cet icône pour un logiciel de prise de vue destiné à  piloter une caméra Andor Luca R (EMCCD) dans le cadre d'une étude pour un projet d'hyper télescope spatial mené par le laboratoire d'astrophysique de Toulouse.


  • DrakenDraken Membre
    mars 2015 modifié #7

    Bouh la mauvaise excuse. L'oeil de Sauron date de 1954. Personne du forum n'était né à  cette époque, sauf Tablier. Je sais que c'est difficile à  croire, mais la trilogie du Seigneur des Anneaux étaient des livres (papier) avec des illustrations, bien avant de devenir des films.


  • Ok avec un MB pro 15" 10.10.2. Ca marche nickel. Et j'ai pu tester l'appli, cool les brush! Ca donne envie de prendre pleins de photos à  contre-jour!


  • MalaMala Membre, Modérateur
    mars 2015 modifié #9

    Merci de vos tests en tous les cas. Ca n'est pas rassurant car il risque de trainer un moment celui là . Je croise les doigts pour que la 10.10.3 le corrige mais sans trop d'espoir.


     


    Au passage, un autre bug de Yosemite mais beaucoup moins critique. Je suis en train de customiser tous mes composants graphiques qui pâtissent du nouveau design bleu XP de Yosemite (ça pique vraiment les yeux ce bleu criard un peu partout). Et magie du spectacle, sur les NSPopUpButton, Apple s'est mise en tête d'y coller des animations. C'est cool, sauf que ce serait juste bien de ne pas calculer l'animation en dur...


  • J'avais le même soucis avec une appli que je développe. 


    D'après mes recherches c'était lié aux XPC et à  l'utilisation des storyboards.


     


    Le problème s'est réglé de lui même mais j'avais dû cocher incoming/outcoming connexion dans l'onglet Capabilities pour me débarrasser de certains messages d'erreurs.


     


    Désolé de pas être plus complet dans ma réponse mais de l'eau a coulé sous les ponts depuis...


  • MalaMala Membre, Modérateur

    Effectivement, c'est ce qui se disait au départ sur stackoverflow mais je n'utilise pas de storyboard.  Au niveau bac à  sable, je n'autorise que les connexions sortantes pour télécharger la doc utilisateur. As-tu moyen de tester ma démo sur la machine qui posait problème chez toi?


  • MalaMala Membre, Modérateur

    Tiens d'ailleurs mon deuxième lien était pas bon, c'était cette discussion là ...


    http://stackoverflow.com/questions/26366711/nssavepanel-crash-in-sandbox-app-os-x-10-10


  • Pas le bug ici non plus.


     


    Question, pourquoi tu refuse l'ouverture des images qui n'ont pas de données EXIF ?


  • MalaMala Membre, Modérateur

    Les données EXIF sont nécessaires pour déterminer l'indice de lumination (IL ou aussi EV pour Exposure Value en anglais) à  partir de l'ouverture, de la vitesse de prise de vue et des Iso. Cela permet ente autre de classer correctement les images par ordre de luminosité et de les pondérer en conséquence au niveau de l'algorithme de fusion HDR. 


     


    L'indice de lumination de chaque cliché est aussi très utile pour servir d'étalon si l'on souhaite déterminer la linéarité et la plage du capteur à  partir de l'analyse de la variation réelle des pixels entre les différentes expositions. Voici ce que ça donne sur un 7D avec DxO (chaque dérawtiseur a une réponse propre) par exemple...


  • Pas de bug avec un Mac Pro (début 2008) sous 10.10.3 (14D113c). Note: je ne suis pas du tout un spécialiste du traitement d'image, mais:


     


    • J'ai la même question que yoann.


    • J'ai un mac non-retina, et le titre de la fenêtre est illisible (c'est le nom de l'application, il me semble).


    • Les préférences dans un sous-menu, je n'ai jamais rencontré ça.


    • Le "Attention" sur les alertes est un peu flippant.


    • Le background de la partie centrale de la fenêtre gagnerait à  être un "repeated pattern", pour éviter l'effet d'accordéon quand on redimentionne la fenêtre.


     


    • A propos du bug, ce n'est pas la première fois que je rencontre des ennuis avec NSOpen/NSSave (surtout customisé): le framework semble rechercher des ressources système inexistantes. Vérifie si tu fais tourner le projet dans une langue particulière (Edit Scheme).


     


    • A part ça, les problèmes d'interface de Yosemite on n'a pas fini d'en discuter, comme ces animations agaçantes du "focus ring" qui laissent des lignes parasites à  l'extérieur du frame de ta sous-classe de NSImageView, p. ex. Steve, reviens.


  • MalaMala Membre, Modérateur

    Merci berfis.


     




    Pas de bug avec un Mac Pro (début 2008) sous 10.10.3 (14D113c). Note: je ne suis pas du tout un spécialiste du traitement d'image, mais:


     


    • J'ai la même question que yoann.




    Et j'ai la même réponse que pour Yoann. Voir mon post juste avant.  :D


     




    • J'ai un mac non-retina, et le titre de la fenêtre est illisible (c'est le nom de l'application, il me semble).




    Peux-tu me faire une capture? Normalement, tu devrais avoir ça...


  • MalaMala Membre, Modérateur
    mars 2015 modifié #17

    Alors sinon pour revenir au fond du problème, j'ai réussi à  reproduire (ou plutôt simuler car ce n'est pas la même exception) le phénomène sous 10.9. Si on active la bac à  sable mais qu'on autorise pas l'accès "User Selected File", NSOpenPanel se plante direct...


     



     


    2015-03-28 16:20:26.955 MarScaper HDR[3889:303] An uncaught exception was raised


    2015-03-28 16:20:26.956 MarScaper HDR[3889:303] service com.apple.appkit.xpc.openAndSavePanelService failed to init an instance of NSOpenPanelService on behalf of <NSRemoteView: 0x100d12500> due to {


        callStackSymbols =     (


            "0   CoreFoundation                      0x00007fff92eb025c __exceptionPreprocess + 172",


            "1   libobjc.A.dylib                     0x00007fff90289e75 objc_exception_throw + 43",


            "2   CoreFoundation                      0x00007fff92eb010c +[NSException raise:format:] + 204",


            "3   com.apple.appkit.xpc.openAndSavePanelService 0x000000010c440e27 com.apple.appkit.xpc.openAndSavePanelService + 20007",


            "4   AppKit                              0x00007fff8ee22718 -[NSViewController view] + 41",


            "5   ViewBridge                          0x00007fff8bbc8336 -[NSViewServiceMarshal initWithSize:subclassName:rendezvousWindowIdentifier:replyData:] + 5923",


            "6   ViewBridge                          0x00007fff8bbc8fb1 __149-[NSViewServiceMarshal initWithSize:subclassName:windowRightsToken:windowRightsRecipient:rendezvousWindowIdentifier:trustServiceKeyEvents:withReply:]_block_invoke + 288",


            "7   ViewBridge                          0x00007fff8bbea512 __deferBlockOntoMainThread_block_invoke_3 + 441",


            "8   CoreFoundation                      0x00007fff92de148c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12",


            "9   CoreFoundation                      0x00007fff92dd2ae5 __CFRunLoopDoBlocks + 341",


            "10  CoreFoundation                      0x00007fff92dd23de __CFRunLoopRun + 814",


            "11  CoreFoundation                      0x00007fff92dd1e75 CFRunLoopRunSpecific + 309",


            "12  HIToolbox                           0x00007fff8cb4aa0d RunCurrentEventLoopInMode + 226",


            "13  HIToolbox                           0x00007fff8cb4a685 ReceiveNextEventCommon + 173",


            "14  HIToolbox                           0x00007fff8cb4a5bc _BlockUntilNextEventMatchingListInModeWithFilter + 65",


            "15  AppKit                              0x00007fff8ed3224e _DPSNextEvent + 1434",


            "16  AppKit                              0x00007fff8ed3189b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122",


            "17  AppKit                              0x00007fff8ed2599c -[NSApplication run] + 553",


            "18  AppKit                              0x00007fff8ed10783 NSApplicationMain + 940",


            "19  XPCService                          0x00007fff90276c0f _xpc_main + 385",


            "20  libxpc.dylib                        0x00007fff935abbde xpc_main + 399",


            "21  ViewBridge                          0x00007fff8bbedc9a xpc_service_connection_handler + 0",


            "22  ViewBridge                          0x00007fff8bbbbcf8 NSViewServiceApplicationMain + 2717",


            "23  com.apple.appkit.xpc.openAndSavePanelService 0x000000010c441341 main + 214",


            "24  libdyld.dylib                       0x00007fff894a05fd start + 1"


        );


        name = NSInternalInconsistencyException;


        reason = "-[NSOpenPanelService loadView:] : failed entitlements check";


        userInfo = "<null>";


    }


    2015-03-28 16:20:26.958 MarScaper HDR[3889:303] (


    0   CoreFoundation                      0x00007fff92eb025c __exceptionPreprocess + 172


    1   libobjc.A.dylib                     0x00007fff90289e75 objc_exception_throw + 43


    2   ViewBridge                          0x00007fff8bbddbde -[NSRemoteView advanceToConfigPhase] + 3497


    3   ViewBridge                          0x00007fff8bbde77c -[NSRemoteView viewServiceMarshalProxy:withErrorHandler:] + 209


    4   ViewBridge                          0x00007fff8bbda9b7 -[NSRemoteView sendFontSmoothingBackgroundColorToService:] + 436


    5   ViewBridge                          0x00007fff8bbdb725 -[NSRemoteView viewDidMoveToWindow] + 197


    6   AppKit                              0x00007fff8ed49190 -[NSView _setWindow:] + 2899


    7   AppKit                              0x00007fff8ed467d4 -[NSView addSubview:] + 364


    8   AppKit                              0x00007fff8ed5a933 -[NSFrameView addSubview:] + 45


    9   AppKit                              0x00007fff8ed68c65 -[NSWindow setContentView:] + 511


    10  AppKit                              0x00007fff8f5cf563 -[NSVBSavePanel init] + 287


    11  AppKit                              0x00007fff8f351389 +[NSSavePanel newRemotePanel] + 309


    12  AppKit                              0x00007fff8f351445 +[NSSavePanel _crunchyRawUnbonedPanel] + 120


    13  MarScaper HDR                       0x000000010000d44c -[AppController openProject:] + 252


    14  AppKit                              0x00007fff8ef50260 -[NSApplication sendAction:to:from:] + 327


    15  AppKit                              0x00007fff8ef6b1c8 -[NSMenuItem _corePerformAction] + 394


    16  AppKit                              0x00007fff8ef6af04 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 117


    17  AppKit                              0x00007fff8efba40d -[NSMenu _internalPerformActionForItemAtIndex:] + 35


    18  AppKit                              0x00007fff8efba289 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 104


    19  AppKit                              0x00007fff8ef60ff6 NSSLMMenuEventHandler + 716


    20  HIToolbox                           0x00007fff8cb241d4 _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 892


    21  HIToolbox                           0x00007fff8cb23787 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 385


    22  HIToolbox                           0x00007fff8cb37880 SendEventToEventTarget + 40


    23  HIToolbox                           0x00007fff8cb6d640 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 420


    24  HIToolbox                           0x00007fff8cba0228 SendMenuCommandWithContextAndModifiers + 59


    25  HIToolbox                           0x00007fff8cba01d0 SendMenuItemSelectedEvent + 178


    26  HIToolbox                           0x00007fff8cba00af _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 94


    27  HIToolbox                           0x00007fff8cba8085 _ZL14MenuSelectCoreP8MenuData5PointdjPP13OpaqueMenuRefPt + 718


    28  HIToolbox                           0x00007fff8cba7cb1 _HandleMenuSelection2 + 446


    29  AppKit                              0x00007fff8eed362c _NSHandleCarbonMenuEvent + 284


    30  AppKit                              0x00007fff8ed3252e _DPSNextEvent + 2170


    31  AppKit                              0x00007fff8ed3189b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122


    32  AppKit                              0x00007fff8ed2599c -[NSApplication run] + 553


    33  AppKit                              0x00007fff8ed10783 NSApplicationMain + 940


    34  MarScaper HDR                       0x0000000100006ca4 start + 52


    35  ???                                 0x0000000000000009 0x0 + 9


    )


     



     


    Cela ne solutionne pas grand chose si ce n'est que je vais être en mesure de me mettre en situation réelle pour catcher l'exception et informer l'utilisateur du bug sur son Mac.


  • berfisberfis Membre
    mars 2015 modifié #18


    C'est un panneau d'alerte quoi. Je vois pas trop le côté flippant.  ??? Rassures moi, tu t'ouvres pas les veines quand Xcode t'affiche un warning?  :P



     



    Voir les deux images ci-dessous pour comparer. Après c'est affaire de goût...


     




    Peux-tu me faire une capture? Normalement, tu devrais avoir ça...




    Ben... j'ai de la peine à  lire. Mettons que ce soit moi...

  • MalaMala Membre, Modérateur

    En attendant mieux, ce sera toujours moins pire qu'un plantage lamentable...


  • MalaMala Membre, Modérateur


     j'ai de la peine à  lire. Mettons que ce soit moi...




    J'ai l'impression que sur ton système la police est plus fine. Je ne suis pas non plus en rétina. C'est sous 10.10.3 ta capture? 

  • Mais tu as activé la sandbox sur ton app ? Par ce qu'effectivement, le seul cas logique ici c'est lorsque la sandbox est active mais que tu n'as pas déclaré le droit d'accès en lecture / écriture aux données sélectionnées par l'utilisateur.


  • MalaMala Membre, Modérateur
    mars 2015 modifié #22

    Mon application est publiée sur le Mac App Store donc oui je n'ai pas le choix. Le fait de désactiver le droit d'accès en lecture / écriture aux données sélectionnées par l'utilisateur c'est juste pour faire un fake afin de tester le process d'alerte dans mon appli. Le bug de Yosemite ne lève pas la même exception d'où mes pincettes quand je disais "ou plutôt simuler car ce n'est pas la même exception".


  • OK.


     


    Tu sais si les rapports de crash proviennent de la version de démo hors app store ou de la version app store ? Ou des deux ?


  • Testé chez moi également j'ai pas de soucis particulier.


    Par contre si je puis me permettre l'application gagnerai à  mieux respecter les Interfaces Guidelines... 


    Y'a 2/3 trucs vraiment déroutants. (en PM si tu veux on va pas faire du hors sujet)


  • MalaMala Membre, Modérateur


    Tu sais si les rapports de crash proviennent de la version de démo hors app store ou de la version app store ? Ou des deux ?




    Démo et version complète sont assimilés au niveau de mes remontés sur Hockey App. Elles sont strictement identiques au système de watermarks près et au bridage à  8bits pour la démo. La démo est juste signée avec mon dev ID mais pour le reste elle est en bac à  sable aussi.

  • MalaMala Membre, Modérateur


    Testé chez moi également j'ai pas de soucis particulier.


    Par contre si je puis me permettre l'application gagnerai à  mieux respecter les Interfaces Guidelines... 


    Y'a 2/3 trucs vraiment déroutants. (en PM si tu veux on va pas faire du hors sujet)




    Merci Pyroh. Yep, envoies moi tes remarques par MP. Interfaces Guidelines? Tu parles bien de ce truc qu'Apple a écrit un jour sans jamais se les appliquer à  elle même? ;)



  • Démo et version complète sont assimilés au niveau de mes remontés sur Hockey App. Elles sont strictement identiques au système de watermarks près et au bridage à  8bits pour la démo. La démo est juste signée avec mon dev ID mais pour le reste elle est en bac à  sable aussi.




     


    C'est dommage. Une mise à  jour pour permettre la différenciation serait pas mal.

  • berfisberfis Membre
    mars 2015 modifié #28


    J'ai l'impression que sur ton système la police est plus fine. Je ne suis pas non plus en rétina. C'est sous 10.10.3 ta capture? 


     



    Oui. Mais question bête: pourquoi changer la police du système? (question de HIG...)

  • MalaMala Membre, Modérateur


    Oui. Mais question bête: pourquoi changer la police du système? (question de HIG...)




    C'est une marque de fabrique. Le nom MarScaper est inspiré de ma signature de photographe (MarS) qui utilise la police Zapfino.

  • @Mala, perso je trouve cette police vraiment pas belle. Je n'ai pas testé ton logiciel mais il a l'air super... Cette police ne lui fait pas honneur, je trouve. Ensuite, les goûts et les couleurs...
  • MalaMala Membre, Modérateur
    avril 2015 modifié #31

    Tu me rassures sur le fait que j'ai le droit de l'aimer... ...parce que je compte bien enfoncer le clou avec le panel d'accueil à  venir sur la prochaine version...  :D


Connectez-vous ou Inscrivez-vous pour répondre.