Application créer sous lion ne fonctionne pas sous léopard ni Snow
cocoacola71
Membre
Bonjour à tous.
Tout d'abord Mac et Xcode (Cocoa, Objective-c) était totalement nouveau pour moi, j'ai lu bcp de tutoriels, vu de nombreuses vidéos de formation. Mais je pense que le forum est indispensable et encore plus lorsque les participants prennent le temps de répondre.
C'est pourquoi j'aimerai remercier la communauté CocoaCafé pour l'aide que vous m'avez apporté.
Je ne pense pas que j'aurai réussi ni même compris certaines étapes de mon application sans ce forum et ses participants. /implore.gif' class='bbc_emoticon' alt=' ' />
Voici un soucis qui m'inquiète bcp!
J'ai donc créé une application sous 10.7 avec Xcode 4.2. Celle ci est bien-sur en Version Test, et c'est pour cela que j'ai voulu la tester sous 10.6. Voici donc les étapes que j'ai fait:
- J'ai modifié le Deployment Target du projet : 10.6
- Copier le .app sur le bureau du Mac Snow Léopard.
- Lancer
Et une erreur survient:
J'ai lu sur le net que l'erreur pouvait venir d'un non lien entre file's owner et la premier Xib.
J'ai donc modifier ceci (je n'ai pas encore testé).
Mais je ne pense pas que ce soit seulement la cause!
J'ai des images aussi inclut dans le projet, est que lors de la compilation l'application les embarque dans le .app?
Et dernière chose, je compile en x86 est-ce que cela peut jouer?
Merci..
Tout d'abord Mac et Xcode (Cocoa, Objective-c) était totalement nouveau pour moi, j'ai lu bcp de tutoriels, vu de nombreuses vidéos de formation. Mais je pense que le forum est indispensable et encore plus lorsque les participants prennent le temps de répondre.
C'est pourquoi j'aimerai remercier la communauté CocoaCafé pour l'aide que vous m'avez apporté.
Je ne pense pas que j'aurai réussi ni même compris certaines étapes de mon application sans ce forum et ses participants. /implore.gif' class='bbc_emoticon' alt=' ' />
Voici un soucis qui m'inquiète bcp!
J'ai donc créé une application sous 10.7 avec Xcode 4.2. Celle ci est bien-sur en Version Test, et c'est pour cela que j'ai voulu la tester sous 10.6. Voici donc les étapes que j'ai fait:
- J'ai modifié le Deployment Target du projet : 10.6
- Copier le .app sur le bureau du Mac Snow Léopard.
- Lancer
Et une erreur survient:
<br />
Exception Type: EXC_BREAKPOINT (SIGTRAP)<br />
Exception Codes: 0x0000000000000002, 0x0000000000000000<br />
Crashed Thread: 0 Dispatch queue: com.apple.main-thread<br />
Application Specific Information:<br />
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: aString != nil'<br />
*** Call stack at first throw:<br />
(<br />
0 CoreFoundation 0x971736ca __raiseError + 410<br />
1 libobjc.A.dylib 0x989c95a9 objc_exception_throw + 56<br />
2 CoreFoundation 0x971733f8 +[NSException raise:format:arguments:] + 136<br />
3 Foundation 0x96f0c6e7 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116<br />
4 AppKit 0x99ac3218 -[NSCell _objectValue:forString:errorDescription:] + 183<br />
5 AppKit 0x99ac3159 -[NSCell _objectValue:forString:] + 56<br />
6 AppKit 0x99ac30ae -[NSCell setStringValue:] + 56<br />
7 AppKit 0x99b89b64 -[NSControl setStringValue:] + 126<br />
8 Message 0x0000278d -[V1AppDelegate awakeFromNib] + 301<br />
9 CoreFoundation 0x9710b984 -[NSSet makeObjectsPerformSelector:] + 196<br />
10 AppKit 0x99a9a1cc -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1566<br />
11 AppKit 0x99a981a4 loadNib + 257<br />
12 AppKit 0x99a9759c +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 228<br />
13 AppKit 0x99a974ad +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:] + 158<br />
14 AppKit 0x99a973f8 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 383<br />
15 AppKit 0x99a941fd NSApplicationMain + 434<br />
16 Message 0x000025eb main + 43<br />
17 Message 0x000025b5 start + 53<br />
)<br />
J'ai lu sur le net que l'erreur pouvait venir d'un non lien entre file's owner et la premier Xib.
J'ai donc modifier ceci (je n'ai pas encore testé).
Mais je ne pense pas que ce soit seulement la cause!
J'ai des images aussi inclut dans le projet, est que lors de la compilation l'application les embarque dans le .app?
Et dernière chose, je compile en x86 est-ce que cela peut jouer?
Merci..
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sur le projet, il y a deux réglages:
- Deployment target: il s'agit de la version d'OS minimum requise, là , tu as dû mettre 10.6
- Base SDK: la version du SDK avec laquelle tu développes.
Ce second paramètre est parfois source de confusion, mais en gros, si tu veux utiliser les dernières nouveautés de 10.7 (plein écran, NSPopoverController, cellules de NSTableViews personnalisées par des NSViews, etc.), il va falloir linker avec ce SDK. L'envers de la médaille est qu'il n'y a pas de vérification de compatibilité à la compilation. Si tu linkes avec le SDK 10.6, tu ne peux plus profiter des dernières API, par contre le compilo se plaindra si tu utilises des API qui n'existent pas sous 10.6.
Je serais donc tenté de dire que tu devrais passer sur le SDK 10.6 pour l'instant.
P.S.: Je ne sais pas comment tu récupères ton appli, mais la bonne manière de faire est d'Archiver l'exécutable, qui est alors construit en mode "Release". Autrement, l'exécutable n'est compilé que pour l'architecture de la machine qui builde, et ça refusera de démarrer sur une autre archi.
Pour ce qui est du SDK je l'ai donc mis en 10.6, aucune erreur de la part du compilateur /smile.png' class='bbc_emoticon' alt=':)' />
Par contre ma configuration utilise par défaut release (je n'y ai jamais touché), si je me trompe pas bien-sur.
Cela ce trouve dans configuration du projet "Command-line builds use : release".
Ce que je ne comprend pas comment archiver l'exécutable?
Pour ma part j'affiche dans le finder mon application via un Click droit, m'affichant donc le dossier contenant mon .app
Peut-être est-ce permis sous 10.7 et pas sous 10.6, sans avoir ton code, je n'en sais pas plus.
Une fois que tu as archivé, clique le bouton Distribute (sous Xcode 4.3, il me semble qu'il s'appelait Share auparavant).
Je ne vais pas entrer dans les détails, il y a d'autres moyens de compiler en mode Release (modifier les Schemes), mais c'est la manière simple. De toute façon, ce n'est probablement pas le problème, autrement tu ne pourrais même pas lancer l'appli.
[color="#000000"]Sous Lion ça ne plante pas, faire stringValue:nil, ne change pas la valeur du textField, avant Lion ça plante ![/color]
[grillé par Céroce]
Bin en faite c'est ce qui se passe, l'appli ne se lance pas sous 10.6 j'ai tout de suite une fenêtre m'avertissant qu'il y a une erreur en me proposant de signaler, ignorer ou envoyer le contenu de l'erreur.
Ce qui m'a permis de récupérer le contenu de l'erreur.
Pour ce qui est de l'archivage parfait! à tester /smile.png' class='bbc_emoticon' alt=':)' />
Merci!!
J'affirme que l'archivage n'a pas changer mon problème puisque j'ai toujours le même.
Sauf que je ne voit pas l'erreur.
Dans ma première fenêtre, j'ai 3 NSTextFiedText, 1 NSSecureTextField, et 1 NSImage voilà le chargement:
Et j'ai une autre question concernant la mémoire, est-il mieux d'utiliser Garbage Collector ou la gérer manuellement??
Car quand j'active le GC (required) j'ai des erreurs qui apparaà®ent..
si nitId1 est nil, ça plante (pareil pour mdp1, id2,id3, etc)
Pour éviter de faire un test à chaque fois, tu crées un dico de ces valeurs par défaut et tu l'enregistres avec la méthode "registerDefaults" avant tout accès aux préférences.
Je n'ai jamais toucher à sa /crazy.gif' class='bbc_emoticon' alt=' ' />
Mais à ce que je comprend cela utilise des objets ainsi que des clef!
Je suis d'accord mais j'en fait quoi lol
Oui, c'est ce que je disais, si c'était le problème, tu ne pourrais même pas lancer l'appli.
Pour faire court: gère manuellement. C'est finalement moins d'ennuis.
Pour la réponse longue, fais une recherche.
Pas de références weaks sous 10.6 (mêmes limitations que sous iOS 4).
Merci à vous