Programmation iOS 6 - Librairie Eyrolles · Ce premier chapitre couvre les prérequis matériels et...
Transcript of Programmation iOS 6 - Librairie Eyrolles · Ce premier chapitre couvre les prérequis matériels et...
Programmation
Conception et publication d’applications iPhone & iPad
Sur le site www.editions-eyrolles.com/TolP/– Dialoguez avec l’auteur– Consulter les mises à jours et compléments
J e a n - M a r c L a c o s t e
T h o m a s S a r l a n d i e
iOS 6
© Groupe Eyrolles, 2013, ISBN : 978-2-212-13639-5
PREMIÈRE PARTIE
Découverte de l’environnement de développement
Cette première partie constitue une introduction indispensable au développement iOS.Après un rappel des bases de l’Objective-C, elle donne un aperçu de l’environnement dedéveloppement pour créer et tester un premier exemple d’application simple.
Le chapitre 1 présente les différents programmes développeurs, l’inscription et letéléchargement des outils et documentations. Le développeur y trouvera égalementdes explications pour créer un certificat de développement, indispensable pourtester son application sur un iPhone.
Le chapitre 2 est une introduction à l’Objective-C. Destiné à des développeursfamiliers de la programmation orientée objet, il présente le langage d’une façon trèspragmatique visant à vous rendre opérationnel rapidement.
Enfin, le chapitre 3 permet au développeur de faire sa première application et de latester dans le simulateur et sur son iPhone. Les outils indispensables comme Xcodeet Interface Builder sont introduits en suivant quelques exemples très simples.
Prog_iOS6.book Page 1 Thursday, December 13, 2012 4:19 PM
Ce premier chapitre couvre les prérequis matériels et les connaissances qui serontutiles au développeur, avant d’accompagner le lecteur dans l’inscription à l’un desprogrammes développeurs iOS et dans la création d’un certificat pour signer et dis-tribuer des applications. Il est destiné aux développeurs, mais aussi au reste del’équipe qui y trouvera comment s’inscrire pour accéder à la documentation, com-ment ajouter un appareil de test, etc.
Équipement matériel requisPour développer une application iPhone/iPad sous iOS, il faut disposer d’un Mac etd’un appareil de test.
Un Mac Intel pour développerOfficiellement, le développement d’applications iPhone avec le SDK Apple ne peutse faire que sur des Mac équipés d’un processeur Intel. En pratique, c’est la seulesolution pour le développeur qui souhaite publier ses applications sur l’App Store.
1Développer pour iPhone et iPad
Le développement d’applications iPhone, iPod touch et/ou iPad sous iOS 6 est à la portée detous les développeurs. Seuls un Mac, un iPhone et/ou un iPad et l ’inscription au programmedéveloppeur Apple sont nécessaires pour développer son application, la tester et la publier.
Prog_iOS6.book Page 3 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
4
Un iPhone, un iPod touch ou un iPad pour tester l’applicationAvoir un iPhone, un iPod touch et/ou un iPad à disposition est indispensable. Lesrègles ergonomiques de la plate-forme et les contraintes liées à la taille de l’écran nepeuvent être comprises sans avoir l’appareil entre les mains. De plus, le simulateurpossède quelques contraintes qui ne permettent pas de tout pouvoir programmer ; lesystème de notification, par exemple, n’est pas pris en charge par le simulateur.
Bien qu’un iPod touch puisse servir pour tester la plupart des applications, il ne per-mettra pas de tester votre application dans un contexte EDGE ou 3G (c’est-à-direavec un débit très différent du Wi-Fi) et vous privera de certaines des applicationsauxquelles les utilisateurs sont très habitués, comme le téléphone.
Compétences techniques utiles au développeur iOSLe développeur d’applications iOS doit maîtriser plusieurs connaissances. Elles nesont pour la plupart pas spécifiques au développement d’applications pour mobilesou à l’environnement Mac et vous les avez peut-être apprises au préalable.
La programmation orientée objet, au cœur du SDK iOSUne bonne maîtrise de la programmation orientée objet est un prérequis essentiel.Ce sujet ne sera pas repris dans ce livre.
L’héritage, la composition et les design patterns classiques doivent être maîtrisés, carils sont utilisés de manière intensive dans tout le SDK iOS.
CONSEIL Utilisez quotidiennement votre appareil
Pour développer des applications iOS, il est fortement recommandé de posséder un iPhone ou un iPad (oules deux), de l’utiliser comme téléphone principal et de télécharger fréquemment des applications. Gardez en permanence un regard curieux et critique sur les nouveautés de l’App Store, c’est votre pre-mière source d’inspiration. Il n’est pas envisageable de développer des applications pour iPhone/iPadsans être un utilisateur averti. Chaque jour, de nouvelles offres promotionnelles vous permettent de télé-charger gratuitement certaines applications ou de les acheter à des tarifs vraiment très bas.
R H. Bersini, La programmation orientée objet, Eyrolles, 5e édition, 2011.
Prog_iOS6.book Page 4 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
5
iPod
to
uch
4ed
iPho
ne 3
iPho
ne
3GS
iPho
ne 4
iPho
ne 4
SIp
hone
5iP
adiP
ad2
Nou
vel
iPad
iPad
4Ip
ad M
ini
CPU
(MHz
)10
0041
260
010
00Du
al
100
0A5
Dual
1
300
A610
00Du
al 1
000
Dual
100
0(4
xGPU
) A5
X
Dual
140
0(4
xGPU
) A6
X
Dual
1
000
A5
RAM
(Mo)
256
128
256
512
1024
256
512
1024
512
Réso
lu-
tion(
px)
640
×96
032
0×
480
640
×96
064
0×
113
676
8×
102
41
536
×2
048
768
×1
024
Diag
onal
e3,
5“3,
5“4"
9,7“
7,9"
Capa
cité
(Go)
8/32
/64
8/16
16/3
216
/32
16/3
2/64
16/3
2/64
Réso
lutio
n de
la ca
mér
a (M
px)
5/3(
avan
t)2
35/
0,3
(ava
nt)
8/0,
3 (a
vant
)8/
1.2
N/A
1/0,
3 (a
vant
)5/
0,3
(ava
nt)
5/1,
2 (a
vant
)
Vidé
oOu
iN
/AO
ui (V
GA)
Oui (
720
p)O
ui (1
080
p)N/
AO
ui (V
GA)
Oui
(720
p)O
ui
(108
0p)
Auto
nom
ie
en c
omm
uni-
catio
n
N/A
5h
6h
8h
N/A
E/3G
/W/LT
EW
E/3G
/WE/
G/W
/LTE
E/3G
/WE/
3G/W
/LTE
Rése
au M
axN/
A3,
6 M
bp/s
7,2
Mbp
/s42
,2M
bp/s
7,2
Mbp
/s54
Mbp
/s
Blue
toot
h2.
12.
02.
14.
02.
14.
0
Open
GL
ES2.
01.
12.
02.
0
Batte
rie90
0 m
Ah1
150
mAh
121
9 m
Ah1
420
mAh
142
0 m
Ah1
440
mAh
675
0 m
Ah6
930
mAh
1156
0 m
Ah11
560
mAh
449
0 m
Ah
Conn
ecte
ur30
broc
hes
Ligh
tnin
g30
broc
hes
Ligh
tnin
g
Coqu
eM
étal
lique
N/B
Pla
stiq
ueN/
B M
étal
lique
N/B
Alum
iniu
mM
étal
lique
N/B
Mét
alliq
ueN
/B
Alum
iniu
m
Dim
ensio
ns
(mm
)11
1×
59
×7
115
×62
×12
115
×58
×9
123
×58
×
7,6
243
×19
0×
1324
1×
186
×8,
824
1×
186
×9,
420
0×
135
×7,
2
Poid
s (g)
101
g13
3g
135
g13
7g
140
g11
2g
680
g/
730
g60
1g
/ 61
3g
652
g/ 6
62g
308
g/
312
g
Gyr
osco
peOu
iO
uiO
uiO
uiO
uiO
uiOu
iO
ui
Prog_iOS6.book Page 5 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
6
L’Objective-C : un langage comme un autreL’Objective-C est le langage imposé pour le développement d’applications iOS. Celangage, bien qu’il provienne d’une évolution du langage C, est une nouveauté pourla plupart des développeurs arrivant sur la plate-forme iPhone/iPad et sa syntaxepeut sembler peu naturelle au premier contact.
Programmation multithreadToutes les applications iOS utiliseront plusieurs fils d’exécution ou threads. C’estgrâce à eux, par exemple, que des contenus pourront être chargés en arrière-planalors que l’interface reste réactive.
Le fait que plusieurs morceaux de code puissent accéder simultanément à la mémoirepeut entraîner de subtils bogues, difficiles à reproduire. Le développeur doit doncbien visualiser l’exécution de l’application et comprendre par quels threads chaquemorceau de code pourra être exécuté.
Développement d’un « client lourd »On parle de client lourd par opposition au client léger, qui n’embarque pas la logiquemétier de l’application. Dans une application web, le navigateur est un client légerqui ne prend en charge que l’interface, tandis que la logique métier est exécutée dansun environnement totalement distinct : sur le serveur.
Une application iPhone/iPad est un client lourd qui embarque à la fois la logiqued’affichage et la logique métier. La réunion des deux offre au développeur une maî-trise beaucoup plus grande de l’ergonomie, mais qui se paie par une augmentation dela complexité de l’application.
VOUS VENEZ D’AUTRES LANGAGES Pour les développeurs Java, PHP et C#
Le développeur Java, C# ou PHP objet devrait retrouver rapidement ses marques. Le chapitre suivant,« L’essentiel d’Objective-C », présente, en partant de Java, les éléments essentiels d’Objective-C et del’API standard : manipulation de chaînes, dates, dictionnaires, etc.
VOUS VENEZ D’AUTRES LANGAGES Synchronisation de threads
Les techniques de synchronisation entre threads en Objective-C ne sont pas différentes de celles desautres langages et le développeur ayant déjà une expérience de cette problématique ne sera pas surpris.Pour les autres, le chapitre 2 en présente les notions élémentaires, la documentation Apple reprenantégalement ce sujet.
Prog_iOS6.book Page 6 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
7
Il est néanmoins possible de développer des applications iPhone/iPad qui se compor-teront comme des clients légers, n’embarquant que l’équivalent d’un navigateur detype Safari et s’appuyant sur un serveur web pour toute la partie métier. Ce typed’application web, même s’il est simple à réaliser, nécessite une connexion au réseaulors de son utilisation et une réactivité plus faible, due notamment à l’utilisation duréseau téléphonique ou Wi-Fi pour véhiculer les images.
Un développeur qui a déjà rencontré ce type de problématique, en développant desclients lourds avec Java/Swing ou C# par exemple, retrouvera facilement ses mar-ques. Les autres doivent se préparer à un changement important dans la façon deconcevoir l’application et les échanges avec l’utilisateur.
Concevoir des applications universellesLe développeur iOS peut concevoir des applications dites « universelles » qui pour-ront s’exécuter aussi bien sur iPhone et iPod touch que sur iPad, tout en adaptantleur contenu en fonction de l’appareil. Le développeur ne programme qu’un seulprojet pour l’ensemble des appareils.
L’adhésion au programme développeur d’AppleL’adhésion au programme développeur d’Apple est nécessaire pour télécharger leSDK iPhone et l’installer. L’adhésion permet également d’accéder à toute la docu-mentation, aux exemples de code et aux vidéos de présentation Apple.
Il existe plusieurs modes d’adhésion en fonction du besoin : • iOS Registered Developer ;• iOS Developer Program à titre individuel ;• iOS Developer Program au titre d’une entreprise ;• iOS Developer Enterprise Program ;• iOS Developer University Program.
Prog_iOS6.book Page 7 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
8
Développeur iOS enregistré : un accès bon marché à l’environnement de développement et à la documentation
C’est le mode d’adhésion le plus simple et la première étape des autres programmes.
Ce mode est gratuit et vous permettra déjà de télécharger gratuitement l’environne-ment de développement afin de développer vos applications et de les tester, mais uni-quement dans le simulateur.
Pour vous enregistrer, il suffit de vous rendre sur le site http://developer.apple.com/ et desuivre le lien adéquat. On vous demandera alors d’indiquer votre identifiant Apple(votre compte iCloud ou le compte utilisé pour acheter sur l’iTunes Store parexemple) ou d’en créer un et de répondre à quelques questions sur vos expériencesprécédentes de développement.
Le programme Developer pour tester et publier vos applicationsL’adhésion au programme standard (iPhone Developer Program) vous permettra detester vos applications sur iPhone et de les publier sur l’App Store. Elle est payante(99 $ ou 79 €).
Les deux modes d’adhésion au programme iOS DeveloperL’adhésion à ce programme peut se faire à titre individuel ou au nom d’une société.
Dans le premier cas, un seul développeur pourra utiliser ce compte pour créer desapplications, les signer et les installer sur des iPhone.
Dans le second cas, vous pourrez enregistrer plusieurs développeurs associés à cecompte (on ne paie qu’une fois pour toute l’équipe) et distribuer les droits aux mem-bres de l’équipe. C’est le mode recommandé pour toute équipe de développement.
Le processus d’adhésion au programme iOS DeveloperPour adhérer, il faut se rendre sur le site du programme développeur Apple et suivrele lien Continue :
CONSEIL Développer pour un tiers
Si vous souhaitez développer des applications pour le compte d’une autre société, vous devez demander àvotre client d’ouvrir son propre compte sur le programme développeur iOS et de vous ajouter comme déve-loppeur. C’est le seul moyen pour que l’application apparaisse avec le nom de votre client comme éditeur.
B http://developer.apple.com/programs/start/standard/
Prog_iOS6.book Page 8 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
9
Les étapes de l’adhésion pour un développeur individuel sont les suivantes :1 Devenir un développeur iOS enregistré (voir paragraphe précédent).2 Demander l’adhésion au programme Developer et répondre aux questions sur le
site d’Apple.3 Attendre la confirmation par courriel d’Apple (quelques jours).4 Payer en ligne les frais d’adhésion.
Pour une adhésion au nom d’une entreprise, le processus est un peu plus compliqué : 1 Devenir un développeur iOS enregistré (voir paragraphe précédent).2 Demander l’adhésion au programme Developer et répondre aux questions sur le
site d’Apple – il faut indiquer le contact juridique de la société.3 Attendre quelques jours le courriel qu’Apple envoie au service juridique pour lui
demander de retourner par fax l’extrait Kbis de l’entreprise.4 Attendre la confirmation par courriel d’Apple (quelques jours).5 Payer en ligne les frais d’adhésion.
Le programme Entreprise pour des applications internesLe programme Entreprise (iOS Enterprise Program) autorise l’équipe de program-meurs d’une entreprise à développer des applications pour une distribution et unusage interne (In-House Distribution).
Ce programme ne permet pas de distribuer des applications sur l’App Store.
ATTENTION Ne pas confondre le programme Developer et Entreprise
L’inscription au programme Developer au nom de votre entreprise (deuxième mode d’adhésion décrit ci-dessus) se fait en suivant le lien Developer Program. Le choix entre l’inscription à titre individuel ou aunom d’une entreprise se fait plus tard dans le processus d’inscription.Ne confondez pas avec le programme Enterprise Program (299 $) qui sert, lui, à diffuser des applicationsen interne au sein d’un grand groupe, sans passer par l’App Store.
CONSEIL N’hésitez pas à contacter le service d’aide Apple aux développeurs
Dans certains cas, des demandes d’adhésion au nom d’une entreprise peuvent attendre longtemps avantd’être traitées, voire rester sans réponse.Le service Apple Developer Connection est très efficace et peut aider à connaître l’état d’une demande encours. Son numéro de téléphone est disponible sur le site Apple : B http://developer.apple.com/contact/phone.htmlPour la France, le numéro est : +33 (0) 800 90 7226.
Prog_iOS6.book Page 9 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
10
Le programme universitaire pour l’enseignementCe programme gratuit permet à un enseignant de s’inscrire afin que ses étudiantspuissent développer, tester sur leurs appareils et publier sur l’App Store. Il permetégalement aux étudiants d’échanger leurs applications entre eux.
Il est disponible aux États-Unis depuis 2008 et en France depuis le début de l’année2009 pour quelques écoles et universités.
Les sites web Apple pour le développeur iPhoneL’adhésion au programme développeur iPhone vous donne accès à plusieurs sites webd’Apple.
Le centre de développement iOSLe centre de développement iOS (iOS Dev Center) regroupe toute la documentationdestinée aux développeurs.
B http://developer.apple.com/devcenter/ios/index.action/
Figure 1–1Le centre de développement pour les développeurs d’applications iOS
Prog_iOS6.book Page 10 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
11
Vous y trouverez également des contenus vidéo, des exemples de code et des lienspour télécharger la dernière version du SDK.
C’est enfin le point d’accès au portail du programme iOS.
Le portail du programme iOSCe site est accessible depuis le centre de développement (lien iOS Developer ProgramPortal en haut à droite). C’est un outil web qui régit tous vos échanges avec Appleavant la soumission de l’application.
Il sert ainsi à : • déclarer les membres de l’équipe de développement ;• créer des certificats électroniques pour les développeurs ;• déclarer les appareils que vous utiliserez pour tester les applications.
Nous reviendrons un peu plus loin sur cet outil indispensable aux développeurs.
iTunes Connect, pour la publication des applicationsiTunes Connect est l’outil utilisé pour publier des contenus vers Apple. Il est utilisépar l’industrie musicale pour publier de la musique sur iTunes et vous l’utiliserez pourpublier vos applications une fois satisfait de votre travail.
Figure 1–2Le portail du programme développeur iOS
Prog_iOS6.book Page 11 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
12
C’est également grâce à cet outil que vous suivrez les téléchargements de l’applica-tion et, dans le cas d’une application payante, vos revenus.
Présentation du SDK iOSLe SDK (Software Development Kit, kit de développement logiciel) est un paquet quis’installe depuis le Mac App Store. Il s’obtient en lançant l’application intitulée AppStore depuis le menu Application de votre Mac.
Il est aussi possible de télécharger le fichier xcode_4.5.dmg directement depuis lasection support de votre environnement de développement.
Une fois le téléchargement terminé, on peut installer Xcode en glissant l’applicationintitulée Xcode dans le dossier /Applications.
Figure 1–3Le portail iTunes Connect pour distribuer vos applications sur l’App Store
Prog_iOS6.book Page 12 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
13
La documentation Apple, une aide à ne pas négligerLa documentation fournie par Apple est très riche et nous vous recommandons devous y référer. En voici un sommaire rapide permettant de retrouver l’informationpertinente.
Les guides pour le développeurLes guides font un tour d’horizon complet sur un sujet. Ils sont tous accessiblesdepuis le portail des développeurs (iOS Dev Center), en suivant le lien iOS ReferenceLibrary.
Le guide consacré aux règles à respecter en matière d’ergonomie
Le guide iOS Human Interface Guidelines décrit les principes ergonomiques qui fontde l’ensemble des appareils sous iOS une plate-forme uniforme dans laquelle les uti-lisateurs retrouvent facilement leurs marques.
La description des API et de la bibliothèque graphique
L’iOS Application Programming Guide présente les API les plus importantes del’iPhone, les limitations imposées aux applications et le fonctionnement de la biblio-thèque graphique UIKit.
La référence Objective-C
L’Objective-C 2.0 Programming Language décrit le langage Objective-C et les nou-veautés de sa version 2.0.
Tableau 1–1 Principaux composants installés avec le SDK
Nom du composant Description
Xcode L’outil de développement Apple permet la création de projets iOS, l’édition du code source Objective-C, la création graphique de storyboards, la compilation et le débogage des applications. Cet outil sert également à gérer les appareils et leurs certificats et à accéder à la documentation.
SDK Mac OS X 10.8 L’ensemble du SDK standard Mac fait partie des prérequis de l’installation.
iOS Simulator Ce simulateur est utile pour tester les applications directement sur l’ordina-teur.
Instruments Cet outil permet d’analyser un programme pour surveiller l’état de la mémoire, l’utilisation du réseau, de la CPU, etc.
Prog_iOS6.book Page 13 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
14
Les exemples de code : des projets Apple comme modèlesDe nombreux exemples de projets sont fournis par Apple, chacun montrant com-ment utiliser une des API ou répondre à un problème classique.
Les exemples peuvent être téléchargés un par un en suivant le lien Sample Codedepuis l’iOS Dev Center.
La documentation de référence exhaustiveLa documentation la plus complète et la plus exhaustive couvre l’ensemble des APIpubliques d’iOS. Elle peut être consultée en ligne ou bien téléchargée pour être luedirectement depuis Xcode.1 Lancer Xcode.2 En haut à gauche, sélectionner Organizer, puis Documentation.3 Sélectionner à gauche les éléments de recherche désirés.
Distribution d’une applicationUne des révolutions apportées par les appareils sous iOS et le SDK est le modèle dedistribution intégré au terminal, qui contribue fortement au succès des appareils sousiOS et de leurs applications.
Figure 1–4La fenêtre Documentation de Xcode
Prog_iOS6.book Page 14 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
15
Il existe deux modes de distribution des applications : le mode Ad Hoc et le mode depublication par l’App Store. Quel que soit celui retenu, la sécurité des applicationsest assurée par une signature électronique.
Préparation à la diffusion d’une application en test (mode Ad Hoc)Le mode de distribution Ad Hoc sert à diffuser une application à un ensemble finid’utilisateurs. Le développeur doit donner une liste des iPhone, iPod touch et iPadqui seront explicitement autorisés à lancer l’application : cette dernière ne pourra pasêtre installée sur d’autres appareils. La liste ne peut pas contenir plus de100 identifiants de terminaux.
Les applications distribuées ainsi ne sont pas soumises à la validation d’Apple. Ce modeest indispensable pour tester votre application sur un terminal réel et sera aussi intéressantpour diffuser une application auprès de bêta-testeurs ou à un petit cercle d’utilisateurs.
Pour distribuer des applications en mode Ad Hoc, le programmeur doit déjà être ins-crit au programme développeur standard. Le processus est décrit ici étape par étape.
Une fois l’environnement configuré pour la publication en mode Ad Hoc, l’appren-tissage du développement iOS peut réellement commencer.
Créer un certificat de développeur
La première étape du processus consiste à demander un certificat, qui sera transmis àApple et, une fois validé, permettra au développeur de signer électroniquement lesapplications.
Pour demander le certificat, lancez l’application Trousseau d’accès dans Applications >Utilitaires.
RAPPEL Signature électronique et certificat
La signature électronique d’un fichier permet d’en garantir l’origine et de s’assurer qu’il n’a pas été modifiépendant le transfert. Le certificat est la contre-signature de ce fichier par une autorité tierce de certification.Dans le cas des applications iPhone, le certificat est émis par Apple et permet à l’utilisateur de s’assurerque l’application provient bien du développeur et qu’elle n’a pas été modifiée (par un virus, par exemple)entre-temps.
ATTENTION Les places d’identifiants sont précieuses
Chaque terminal ajouté à la liste occupe une place dans les 100 identifiants mis à votre disposition.Même en supprimant des identifiants de la liste, vous ne récupérerez pas immédiatement ces places.Une fois par an, à la date anniversaire de votre compte, le compteur est réinitialisé et vous avez de nou-veau droit à 100 terminaux. Si au moment du renouvellement, il y a 25 téléphones déjà présents dans laliste, vous pourrez ajouter 75 nouveaux identifiants.
Prog_iOS6.book Page 15 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
16
Dans le menu Trousseau d’accès, sélectionnez l’option Assistant de certification –Demander un certificat à une autorité de certificat. L’assistant se lance.
Sélectionnez l’option Enregistré sur disque et Me laisser indiquer les données de la bi-clé,validez. Indiquez l’endroit où enregistrer la demande de certificat.
Vérifier que la bi-clé créée est bien basée sur l’algorithme RSA avec 2 048 bits carApple exige ce niveau de sécurité.
Figure 1–5Lancement de l’assistant de certification
Figure 1–6Paramètres de la demande de certificat
Prog_iOS6.book Page 16 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
17
Faire signer par Apple la demande de certificat
Comme nous l’avons vu, les certificats sont gérés via le portail du programme iOS.
Sélectionnez l’option Certificates, puis cliquez sur le bouton Add Certificate. Utilisez lechamp de téléchargement de fichier en bas de la page pour envoyer le certificat.
Une fois la demande transmise, elle est visible dans la page Certificats de l’App Storeet doit être approuvée par le responsable de l’équipe de développement. Pour cela, ilsuffit de cliquer sur le bouton Approve.
Figure 1–7 Envoi du fichier de demande de certificat
Figure 1–8 Validation d’une demande de certificat
Prog_iOS6.book Page 17 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
18
Une fois la demande validée, un traitement a lieu pour créer le certificat. Après quel-ques minutes, le certificat validé est disponible. Il suffit alors de le télécharger et dedouble-cliquer dessus pour l’installer sur le poste du développeur.
Créer un identifiant d’application
Avant de pouvoir distribuer une application, vous devez créer un identifiant d’appli-cation (AppID) et l’associer à votre certificat.
L’identifiant déclaré dans le portail du programme iOS devra correspondre à l’identi-fiant d’application (que vous déclarerez dans le fichier Info.plist de votre applica-tion).
Un préfixe est calculé aléatoirement par Apple, ce qui garantit le caractère unique dechaque identifiant d’application. Si vous le souhaitez, vous pouvez tout de mêmeajouter votre propre préfixe, comme le nom de domaine de la société.
Ainsi, pour une société qui développerait deux applications, RSSReader et Blog-Reader, vous devriez créer deux identifiants d’application différents :com.acme2_0.rssreader et com.acme2_0.blogreader. Le préfixe unique aléatoire estajouté automatiquement et le développeur n’a pas besoin de s’en préoccuper.
Dans la section App IDs du Program Portal, cliquez sur le bouton New App ID etentrez le nom de l’application et son identifiant.
Figure 1–9 Téléchargement du certificat validé
ATTENTION Le certificat développeur est lié à la machine du développeur
Le certificat téléchargé depuis l’outil Program Portal ne contient pas la clé privée et ne suffit pas pour uti-liser cette clé développeur sur un autre ordinateur. Pour pouvoir exporter la clé privée et la réutiliser sur un autre ordinateur, référez-vous à la documenta-tion disponible dans l’onglet HowTo dans le Program Portal.Pour développer à plusieurs, chaque développeur doit avoir sa clé. C’est possible si vous avez créé uncompte développeur au nom d’une entreprise.
Prog_iOS6.book Page 18 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
19
Définir les appareils autorisés
La définition de la liste des appareils autorisés se base sur les identifiants uniques detéléphones (UDID ou Unique Device IDentifier).
Figure 1–10 Création d’un identifiant d’application
ASTUCE Obtenir l’UDID d’un appareil sous iOS
L’UDID est un identifiant propre à chaque téléphone. Il peut être obtenu dans Organizer ou bien dans iTu-nes (sur Windows ou sur Mac).Pour voir l’UDID d’un appareil dans iTunes, il faut cliquer sur le libellé Numéro de série (attention, il fautbien cliquer sur le libellé ; pas sur le numéro de série lui-même), il est alors remplacé par l’UDID (Identi-fiant). En cliquant dessus et en appuyant sur Cmd-C on le copie dans le Presse-papiers.
Figure 1–11 Cliquez sur le libellé Numéro de série dans iTunes pour faire apparaître l’identifiant du téléphone (UDID).
Prog_iOS6.book Page 19 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
20
Avec le programme standard, il est possible d’autoriser jusqu’à 100 terminaux. Au-delà, il faudra envisager une distribution avec le programme Entreprise (distributionsen interne à grande échelle) ou par l’App Store.
L’ajout des identifiants se fait dans le Program Portal qui est accessible depuis l’iOSDev Center. Dans l’onglet Devices, vous pouvez ajouter des téléphones à votrecompte.
Créer le profil d’approvisionnement
Dernière étape, le profil d’approvisionnement est un fichier qui lie un ou plusieurscertificat(s) avec un AppID et une liste d’appareils.
Il autorise les applications signées par un des développeurs (dont l’identifiant corres-pond à l’AppID) à être installées sur un des téléphones de la liste.
Par ce procédé, il est possible de créer plusieurs groupes de testeurs et de définir pré-cisément qui pourra tester les applications.
Dans le Program Portal, sélectionnez l’onglet Provisioning pour créer et téléchargerles profils d’approvisionnement.
Figure 1–12 Gestion des terminaux associés à votre compte développeur
Prog_iOS6.book Page 20 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
21
Installer le profil sur des appareils
Le profil s’installe en faisant glisser le fichier téléchargé (extension.mobileprovision) sur iTunes ou Xcode. Cette opération est possible sous Mac etsous Windows.
Le menu Général > Profils de l’application Réglages sur l’iPhone vous aide à vérifierque le profil est bien installé.
Figure 1–13 Création d’un profil d'approvisionnement
Figure 1–14Vérification des profils installés dans l’iPhone
Prog_iOS6.book Page 21 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
22
La fenêtre Organizer de Xcode (bouton Organizer en haut à droite de la fenêtreXcode) liste tous les profils installés sur l’ordinateur et montre ceux installés sur lesiPhones connectés.
Installer l’application sur des appareils
Pour le développeur, l’installation des applications sur un appareil sous iOS peut sefaire très simplement depuis Xcode, ce qui sera détaillé au chapitre 3 « Premiers pasavec le SDK iPhone ».
Pour les autres (client, testeur, ami, etc.), il est possible d’envoyer l’application parcourriel.
Le développeur devra tout d’abord compresser l’application (le répertoire dont lenom se termine en .app) et l’envoyer avec le fichier d’approvisionnement.
Pour le destinataire, il faut tout d’abord installer le profil d’approvisionnement en le fai-sant glisser sur l’icône iTunes (sous Mac ou sous Windows). Il faut ensuite décom-presser l’application et la faire glisser sur iTunes (sur Mac ou sous Windows). Elle seraalors automatiquement installée lors de la prochaine synchronisation de l’appareil.
Figure 1–15Vérification des profils installés via Organizer
Prog_iOS6.book Page 22 Thursday, December 13, 2012 4:19 PM
Développer pour iPhone et iPadCHAPITRE 1
23
Mode de distribution via l’App Store pour une diffusion largeLa distribution App Store propose votre application à l’ensemble des utilisateursd’iPhone dans le monde. Elle peut se faire gratuitement ou contre rémunération.Dans ce deuxième cas, Apple reverse au développeur environ 70 % des revenus.
Dans tous les cas, avant d’être disponible sur l’App Store, l’application sera vérifiéepar Apple qui s’assurera que :• L’application respecte les principes ergonomiques iPhone.• L’application ne plante pas (cependant, les tests Apple ne peuvent bien sûr pas
être exhaustifs et c’est avant tout à l’équipe de développement de s’assurer du bonfonctionnement de l’application).
• L’« accord » iOS SDK est respecté (qui précise par exemple que certains typesd’applications ne sont pas autorisés, que l’utilisation excessive du réseau est inter-dite, que les API privées ne doivent pas être utilisées, etc.).
Cette vérification peut prendre de quelques jours à plusieurs semaines et il est doncessentiel de s’assurer que l’application respecte parfaitement toutes les règles du SDKiOS avant de la publier.
Publication sur l’App Store
La publication sur l’App Store suit les mêmes étapes que celle en mode Ad Hoc, avecquelques spécificités :1 création d’un certificat spécifique ;2 réutilisation du AppID ;3 création d’un nouveau fichier d’approvisionnement pour la distribution (cette
fois-ci, vous n’indiquerez pas de terminaux autorisés à lancer l’application. Tousles terminaux le seront, une fois l’application publiée) ;
CONSEIL Vérifications à faire en cas de problème
Si le destinataire n’arrive pas à installer l’application, vérifiez les points suivants.1. L’UDID de l’iPhone, de l’iPad ou de l’iPod touch a bien été ajouté au compte développeur et il n’y a pas
eu d’erreur de saisie.2. Le terminal a été ajouté au fichier d’approvisionnement. 3. Le fichier d’approvisionnement a été téléchargé à nouveau et réinstallé par le développeur avant de
recompiler l’application. Éventuellement, il peut être utile d’effacer tous les fichiers d’approvisionne-ment d’iTunes (~/Library/MobileDevice/Provisioning Profiles/) puis de réajouterle fichier dans iTunes.
4. Le fichier d’approvisionnement a été correctement installé sur le terminal cible (vous pouvez le vérifierdans le menu Général – Profils de l’application Réglages).
5. L’identifiant d’application saisi dans Xcode correspond bien à celui fourni sur le site du programmedéveloppeur.
Prog_iOS6.book Page 23 Thursday, December 13, 2012 4:19 PM
Découverte de l’environnement de développementPREMIÈRE PARTIE
24
4 compilation et signature avec le nouveau certificat ;5 envoi de l’application à Apple via iTunes Connect.
ConclusionDans ce premier chapitre, vous avez appris comment rejoindre le programme déve-loppeur Apple pour pouvoir télécharger le SDK, l’installer et accéder à la documen-tation. Nous avons également mis en place les prérequis pour tester votre applicationsur un appareil réel, la partager avec d’autres utilisateurs et même la publier sur l’AppStore.
Il est temps de (re)découvrir le langage Objective-C dans le prochain chapitre.
Le dernier chapitre de ce livre « Publier sur l’App Store » est consacré à la publication d’application. Ildécrit tous les autres éléments à fournir et donne des conseils pour réussir la publication et le lancementde l’application.
Prog_iOS6.book Page 24 Thursday, December 13, 2012 4:19 PM