[Résolu] Base SDK 10.7, deployment 10.6

octobre 2011 modifié dans Apple Developer Programs #1
Bonjour,

J'ai un petit soucis avec mon app.. J'ai installé Snow Leopard Server en VM afin de tester mon app, et malheureusement je tombe sur:

dyld: Symbol not found: _OBJC_CLASS_$_NSPopover
  Referenced from: /Users/ldesroziers/Desktop/Ecoute.app/Contents/MacOS/Ecoute
  Expected in: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit


Je comprend parfaitement ce que ça signifie, seulement je m'étonne énormément de ça car, d'une part, je n'utilise pas NSPopover au lancement de mon application, et d'autre part j'ai utilisé NSClassFromString(@NSPopover) afin de vérifier si la classe existe ou pas. Dans le cas d'un système sous 10.6, ça utilise un popover perso que je me suis fait chier à  développer.

Je pensais qu'on pouvait compiler avec le SDK 10.7 et indiquer un déploiement target 10.6, comme sur iOS.. ai-je rêvé??

Réponses

  • zoczoc Membre
    21:54 modifié #2
    dans 1315059648:

    Je pensais qu'on pouvait compiler avec le SDK 10.7 et indiquer un déploiement target 10.6, comme sur iOS.. ai-je rêvé??

    Oui, on peut, c'est même fait pour...


    Etonnant ce problème de symbole. Tu est certain de n'avoir utilisé la classe NSPopover directement nulle part ?


    Sinon, j'ai vu passer un problème similaire (mais j'ai pas tout suivi) sur les ML d'Apple. L'archive est ici: http://www.cocoabuilder.com/archive/cocoa/307412-compiling-app-for-10-6-and-10-7.html


    Peut-être que tu trouveras la solution.

  • octobre 2011 modifié #3
    Oui certain :(
    J'ai déjà  lu le topic et ça ne m'a pas aidé, à  part quand ils parlent de 10.6.8 minimum, mais si j'ai bien compris c'est pour le weak-linking des classes.. donc ça ne doit pas etre ça dans mon cas vu que j'utilise NSClassFromString.
    Quand bien même.. je n'utilise pas du tout de popover au lancement, donc je trouve ça ultra bizarre..
    J'ai pensé aux NSPopoverDelegate, mais même en les virant c'est pareil.

    Edit: C'est bon! En fait j'ai fait une grossière erreur:
    <br /> if(NSClassFromString(@&quot;NSPopover&quot;)){<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NSPopover* popover = [[NSPopover alloc] init];<br />.....<br />
    


    Alors qu'il faut bien entendu faire:
    <br />if(NSClassFromString(@&quot;NSPopover&quot;)){<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id popover = [[NSClassFromString(@&quot;NSPopover&quot;) alloc] init];<br />...<br />
    
Connectez-vous ou Inscrivez-vous pour répondre.