Tout sur l'iPhone

www.toutsurliphone.fr

6 octobre 2009

Xcode erreurs de compilation soudaines

Il m'est arrivé un problème récemment avec Xcode et à priori je ne suis pas le seul si vous obtenez ce genre de message:

warning: in /Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation, missing required architecture i386

Ceci se produit de manière soudaine et empêche la compilation sur le simulateur ou vers le device mais pas les deux en même temps.
Pas la peine de refaire votre projet complètement c'est un bug et il suffit sur votre Target de faire Get info, onglet Build, de chercher framework.

Dans la valeur Framework Search Paths, vous ne devriez avoir que $(inherited), si il y a un autre chemin supprimez le, votre projet recompile !

Source: Stackoverflow

 

2 septembre 2009

Listes des touches et raccourcis clavier pour Xcode

Voici la liste, mise à jour pour Xcode 3.2, des raccourcis claviers de votre éditeur préféré.

 

31 août 2009

Xcode et Snow Leopard

Snow Leopard étant sorti, les nouveautés autour de Xcode justifient une update rapide vers Xcode 3.2.

Voici les étapes à suivre:

  • Tout d'abord si comme moi vous utilisiez iStats Menu, désinstaller le en premier lieu sous peine de machine extrèmement lente (pour cela retélécharger l'installer de iStats Menu et faites affichier le contenu du paquet, Content, Ressources puis éxécuter iStat menus Uninstaller)
  • Faites votre mise à jour de Leopard (je n'ai pas encore testé une réinstallation complète)
  • Installez le Xcode fournit avec le cd de leopard dans le dossier installation facultatives
  • Installez ensuite le SDK iphone pour snow leopard iphone_sdk_3.0__snow_leopard__final.dmg, faites attention si vous n'avez pas installé Xcode 3.2 mais que vous aviez un Xcode 3.1 sur votre mac avant l'installation de Leopard, l'installer du SDK ne vous dira rien mais vous n'aurez pas toutes les fonctionnalités

Vous pouvez voir le résultat d'un build and analyze avec xcode 3.2 et surtout la fin de ces saletés de bulles de warning et d erreurs qui se mettaient sous l'erreur et donc sautait une ligne, l enfer pour s y retrouver, elles sont maintenant sur la même ligne à droite.

4 août 2009

Utiliser Xcode avec Subversion 1.5

Si comme moi vous avez des problèmes avec un projet dont le checkout a été effectué avec un svn 1.5, ne vous inquiétez pas, vous n'êtes pas condamné à utiliser svn 1.0 toute votre vie.


Vous vous retrouvez normalement avec un projet Xcode où le SCM semble ne pas voir le serveur, en fait le message retourné est le suivant (pour voir ce message Menu SCM | Update entire project).

Error: 155021 (Unsupported working copy format)
Description: This client is too old to work with working copy 'PATH'; please get a newer Subversion client

Apple ne nous a toutefois pas simplifié la vie, en effet le plugins svn pour Xcode est linké directement aux librairies svn de /usr/lib, voici ce que retourne la commande otool:

otool -L /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
/Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin:
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.12.0)
        @rpath/DevToolsSupport.framework/Versions/A/DevToolsSupport (compatibility version 1.0.0, current version 1160.0.0)
        @rpath/DevToolsCore.framework/Versions/A/DevToolsCore (compatibility version 1.0.0, current version 1160.0.0)
        /usr/lib/libapr-1.0.dylib (compatibility version 3.0.0, current version 3.7.0)
        /usr/lib/libaprutil-1.0.dylib (compatibility version 3.0.0, current version 3.7.0)
        /usr/lib/libsvn_client-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_delta-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_diff-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_fs_fs-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_fs-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_ra_local-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_ra_svn-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_ra-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_repos-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_subr-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libsvn_wc-1.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        ...

Deux solutions à envisager, écraser les librairies de /usr/lib avec des versions plus récentes, ou changer les chemins dans le plug-in, la seconde a ma préférence, car elle est moins intrusive pour le système.
Ouvrez un terminal et faites une copie du plugins svn:

cp /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin.bak

Puis tjs dans le terminal copiez collez ces lignes, qui modifient le chemin où trouver la librairie, (ici c'est /opt/local/lib car j'utilise le subversion de macports, le votre est peut être dans /usr/local/lib)

install_name_tool -change /usr/lib/libsvn_client-1.0.dylib /opt/local/lib/libsvn_client-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_delta-1.0.dylib /opt/local/lib/libsvn_delta-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_diff-1.0.dylib /opt/local/lib/libsvn_diff-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_fs_fs-1.0.dylib /opt/local/lib/libsvn_fs_fs-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_fs-1.0.dylib /opt/local/lib/libsvn_fs-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_ra_local-1.0.dylib /opt/local/lib/libsvn_ra_local-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_ra_svn-1.0.dylib /opt/local/lib/libsvn_ra_svn-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_ra-1.0.dylib /opt/local/lib/libsvn_ra-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_repos-1.0.dylib /opt/local/lib/libsvn_repos-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_subr-1.0.dylib /opt/local/lib/libsvn_subr-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libsvn_wc-1.0.dylib /opt/local/lib/libsvn_wc-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libaprutil-1.0.dylib /opt/local/lib/libaprutil-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin
install_name_tool -change /usr/lib/libapr-1.0.dylib /opt/local/lib/libapr-1.0.dylib /Developer/Library/Xcode/Plug-ins/XcodeSubversionPlugin.xcplugin/Contents/MacOS/XcodeSubversionPlugin

Vivement Xcode 3.2 qui lui est linké à Subversion 1.5 (Xcode 3.2 sera disponible avec Snow Léopard).

 

3 août 2009

iPhone de développement avec la version 3.0.1

La version 3.0.1 du firmware iPhone étant sorti, certains d'entre vous ont peut être rencontré certaines difficultés pour faire tourner du code développement sur leur iPhone fraichement installé.

Apple a prévu le coup et un PDF un peu caché iPhone 3.0.1 advisory, explique la marche suivre, il suffit d'indiquer à Xcode que cette version est valide, en tapant sur votre machine dans un terminal :

ln -s /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0\ \(7A341\) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0.1

Happy Coding