programmation ios 6 - librairie eyrolles · ce premier chapitre couvre les prérequis matériels et...

24
Programmation Conception et publication d’applications iPhone & iPad Jean-Marc Lacoste Thomas Sarlandie iOS 6 © Groupe Eyrolles, 2013, ISBN : 978-2-212-13639-5

Upload: dinhnga

Post on 12-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

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

480

640

×96

064

113

676

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

59

×7

115

×62

×12

115

×58

×9

123

×58

×

7,6

243

×19

1324

186

×8,

824

186

×9,

420

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