iOS Dev, XCode

Xcode – Erreur de compilation avec iPhone 5S et CocoaPods

En mai dernier, j’ai publié l’application MaListeRx, qui permet de gérer la liste de vos médicaments. Lorsque j’ai développé la version 1.0 de l’application, j’avais fait mes tests avec mon iPhone 4S. Dernièrement, j’ai changé mon téléphone pour un iPhone 5S. En essayant d’installer mon application sur mon iPhone 5S, Xcode m’a donné ce warning et cette erreur (voir image ci-dessous):
Warning : “Pods was rejected as an implicit dependency for ‘libPods.a’ because its architectures ‘arm64’ didn’t contain all required architectures ‘armv7 armv7s'”
Erreur : “Linker command failed with exit code 1 (use -v to see invocation)”

Xcode Erreur Compilation iPhone5S

 

 

 

Après quelques recherche sur Google, voici la solution qui a réglé mon problème. En référence au 2 prochaines images, voici les étapes à faire :
– Faite une mise à jour de CocoaPods pour être à jour avec :
gem update cocoapods

– Dans le projet CocoaPods, dans le “Build settings” -> “Architectures”, assurez-vous d’avoir les configurations suivantes:
1. Choisissez “Standard architectures” dans “Architectures”
2. Pour le mode “Debug” seulement, choisissez “Yes” pour le “Build Active Architecture Only”
3. Assurez-vous dans d’avoir les valeurs “arm64 armv7 armv7s” dans “Valid Architectures”

 

Xcode Erreur Compilation iPhone5S

 

 

 

Xcode Erreur Compilation iPhone5S

 

 

Notez qu’il est important que la configuration soit la même dans le projet de votre application ainsi que dans le celui de CocoaPods.

Vous pouvez également regarder cette solution si vous avez encore des problèmes avec CocoaPods.

Standard
iOS Dev, XCode

iOS – Désactiver ARC sur certain fichier

C’est dans la version 4,2 de XCode que ARC (“Automatic Reference Count”) a été introduit. Ce qui veut dire que maintenant, il n’est plus nécessaire de faire “release”, “autorelease” ou “retain” dans votre code. Cela rend la programmation plus facile mais, en revanche, lors de l’importation d’ancien projet ou de code existant écris dans une version antérieure, c’est pas toujours évident. Il est fort possible que vous ayez des erreurs de ce genre :

‘release’ is unavailable: not available in automatic reference counting mode
ou
ARC forbids explicit message send of ‘release’
ou
ARC forbids explicit message send of ‘autorelease’

La solution pour ne pas avoir ces erreurs est de désactiver ARC sur certains fichiers que vous devez importer.
Voici comment faire :

  1. Dans XCode, cliquez sur votre projet et allez dans la section “Targets”.
  2. Allez dans l’onglet “Build Phases” et par la suite, dans la section “Compile Sources”.
  3. Pour tous les fichiers pour lesquels vous voulez désactiver ARC vous devez ajouter
    -fno-objc-arc dans la colonne nommée “Compiler Flags”

Desactiver ARC

 

Standard
iOS Dev, iPhone/iPod Touch/iPad, Outils, XCode

iOS Dev – CocoaPods, un indispensable

Pour ceux qui ne connaissent pas  CocoaPods, vous allez voir que c’est un outil qui vous fera sauver beaucoup de temps. Depuis que j’ai découvert CocoaPods, je l’utilise dans presque tous mes projets d’application iPhone/iPad.

En fait, CocoaPods vous permet d’inclure facilement dans votre projet les différentes librairies donc vous avez de besoin pour votre application, par exemple AFNetworking.

Pour l’installation de CocoaPods, référez-vous aux instructions d’installation qui sont sur leur site.

Une fois CocoaPods installé, voici les étapes à suivre pour inclure les librairies dans votre projet Xcode :

  1. Fermer votre projet dans Xcode
  2. Ouvrez un Terminal et positionnez-vous dans le répertoire de votre projet
  3. Lancez la commande suivante pour créer votre fichier Podfiletouch Podfile
  4. Ouvrez le fichier Podfile avec la commande : open Podfile
  5. Votre éditeur de texte par défaut s’ouvre et vous devez spécifier les librairies dont vous avez besoin. Vous avez le choix de spécifier la version de la librairie ainsi que d’autres options. Je vous suggère d’aller voir un exemple sur le Wiki de CocoaPods
  6. Enregistrez votre fichier Podfile et vous pouvez le fermer.
  7. Pour ajouter les librairies à votre projet, lancez la commande : pod install
  8. IMPORTANT : À partir de maintenant, vous devez ouvrir votre projet dans Xcode en cliquant sur le fichier Workspace de votre projet (MonProjet.xcworkspace)

Par la suite, si vous voulez utiliser une librairie dans votre code, vous n’avez qu’à faire les #import nécessaires.

Standard
iOS Dev, XCode

Xcode – Changer le nom de compagnie dans les fichiers générés

Lorsque vous ajoutez un fichier dans votre projet Xcode, par exemple une classe. Xcode génère les fichiers .h et .m pour votre nouvelle classe et y ajoute une section en commentaire dans le haut de chaque fichier. Une des informations qui se retrouve dans ce commentaire est le nom de votre compagnie.
Xcode - Changer nom compagnie

Pour changer le nom généré (“__MyCompanyName__”), voici les étapes :
1. Sélectionner le projet dans la colonne de gauche dans Xcode
2. Par la suite, sélectionner le projet et l’ongle “Info”
3. Sélectionnez l’inspecteur de fichier dans la colonne de droite complètement
4. Dans la section “Project Document” (désolé mon Xcode est en anglais!), modifier le champs “Organization” pour y inscrire le nom de votre compagnie.

Voici une image qui illustre les différentes étapes :
Xcode - Changer nom compagnie

Standard
iOS Dev, XCode

Xcode – Ajouter un Storyboard à un projet existant

Pour ceux qui désirent ajouter un Storyboard à un projet existant, c’est pas compliqué.
Voici la démarche à suivre:

      1. Ajouter un nouveau fichier de type Storyboard à votre projet. Dans la liste de template, il se trouve dans “iOS->User Interface”
      2. À gauche complètement, sélectionnez votre projet et par la suite, cliquez sur nom de votre projet dans la section “Targets
      3. Sélectionnez le nouveau Storyboard que vous venez de créer dans la liste intitulée “Main Storyboard

L’image suivante décrit les points 2 & 3.
Xcode - Ajouter Storyboard

      4. Dernier point important, vous devez faire un petit ajustement dans mon fichier AppDelegate.m. Dans la méthode “didFinishLaunchingWithOptions“, vous devez enlever tout le code pour ne laisser que le “return true“.

Voici ce à quoi devrait ressemble la méthode après que le code soit enlevé:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}

Standard
iOS Dev, XCode

Core Data : Renommer une entité

Voici une chose à ne pas oublier lors de vos développements d’application iPhone en objectif-c.
Si comme moi vous utilisez Core Data avec Xcode pour le développement vos applications iPhone, vous avez surement déjà rencontré quelque problème. Pour ma part, ce fût le cas lors de mon apprentissage de Core Data.
Il se peut lors de votre développement que vous désirez changer le nom d’une entité dans votre modèle. Après avoir changé le nom de votre entité assurez-vous de vérifier que dans votre modèle (monmodele.xcdatamodeld), dans la section “Configurations -> Default” (dans mon cas) que votre nouvelle entité possède bien le bon nom de la classe qu’elle réfère. Cela pourra peut-être vous éviter une erreur!
À noter que j’utilise la version 4.2 de Xcode.

Standard
iOS Dev, XCode

XCode 4.2 : Éditeur de version et inspecteur de storyboard

Problème

En commençant à tester et expérimenter le développement d’application iPhone avec XCode 4.2, j’ai eu un problème lors de mes tests avec les storyboard. En changeant l’éditeur et en choisissant celui de la version 

J’ai obtenu l’image suivante :

Par la suite, lorsque j’ai voulu revenir avec l’éditeur standard  pour modifié de nouveau sur le storyboard, je suis resté avec le même visuel, i.e. avec la version XML du storyboard. Je n’arrivais pas à revoir le storyboard comme avant.

Solution

Pour corriger ça, il faut supprimer la référence du fichier de storyboard en question et rajouter le fichier dans le projet.
Voici ce qu’il faut faire :

  1. Clique droit sur le fichier du storyboard
  2. Delete
  3. Remove Reference Only
  4. Via le Finder, rajouter le fichier du storyboard dans le projet
Standard
iOS Dev, iPhone/iPod Touch/iPad, JavaScript

Framework JavaScript pour développement d’application iPhone

Comme vous le savez sûrement, il est possible pour ceux qui le désirent, développer des applications natives pour iPhone et iPad sans avoir à apprendre le Objective-C. Je vous suggère de regarder NimbleKit ainsi que PhoneGap qui vous permettent d’utiliser vos connaissances en HTML et Javascript pour créer des applications iPhone natives.

Voici une liste de Framework JavaScript qui peut être utilisée pour le développement d’application iPhone:
Mise à jour : 18/07/2012

Sencha Touch

jQuery Mobile

DHTMLX Touch

ChocolatChip-UI

iWebKit

iphone-universal

Lungojs

Joshfire

Zepto

Jo

Web 2.0 Touch

iUI

mobl

Lungo JS

Si vous faites des recherches sur Google, vous allez trouver une multides d’articles qui comparent les différents Framework. Informer vous avant de faire votre choix final.

Standard