iOS Code Signing Provisioning Profile
In French and English 04 Octobre 2008
First part in French, 2nd part in English
Pour pouvoir mettre ses applications iPhone sur l'App Store, Apple vous demande tout un tas de choses : $99, certificats, App Ids, ... et comme d'habitude chez Apple quand il s'agit de partager ses programmes, cela se révèle être la croix et la bannière.
Au début il faut bien suivre les étapes comme ils disent. Là où ça bloque, c'est quand dans Target Info (dans XCode) on nous demande de mettre iPhone Distribution: YourCompanyName (pas de problème) puis 2 cases en dessous de choisir quelque chose dans la liste déroulante qui apparaît. Si vous ne passez pas minimum 5 heures et un retéléchargement de XCode pour faire marcher ça du premier coup, c'est que vous êtes promis à un bel avenir.
Pour que ça marche, j'ai mis :
- aucun device
- en App id :
- name : helloworld
- id : com.bleezworld.helloworld (Apple rajoute automatiquement une dizaine de chiffres et lettres avant)
- profil name : ProfilHello
- Le certificat est associé à ProfilHello
- dans "Provisioning", ProfilHello est associé à 123454321.com.bleezworld.helloworld.
- Dans XCode, il faut faire comme ils disent partout y compris le drag-drop du fichier mobile provision sur l'icône XCode du Dock.
Pour Target Info ->
- Code Signing identity : "iPhone Distribution: Thomas J______.", sans les guillemets
- Code signing provisioning profile : choisir dans la liste
- Ca c'est la théorie pour les 2 dernières étapes. A cela il faut rajouter qu'il faut aussi mettre le projet en mode 'build for Distribution / iPhone Device' sinon ça ne marchera pas.

Dans la pratique, il faut essayer 50 fois pour que finalement ça marche, en changeant notre nom de iPhone Distribution: Thomas J____ à ProfilHello à bleezworld à Thomas J_____, tout en fermant Xcode, le relançant, refermant la fenêtre Target Info, la réouvrant, ... et ça finit par marcher au bout d'une demi-heure (sans blague) (avec iPhone Distribution: Thomas J_____ en nom).
Le point crucial est donc que Thomas J______ est le nom du Team Manager, et non pas un des noms que vous donnez dans AppId ou Provisioning ou ... c'est le nom qui apparait automatiquement dans la section Provisioning quand vous faites Add Profile. Dernier point crucial pour que ça marche : il faut que vous en baviez. Merci Apple. You are a Windows.
J'espère que ça vous a aidé !
If you want to add an App to the App Store, after paying and doing all the stuff about certificates, you have to fill in some Target Info Properties, and I am here to tell you how it worked for me: you first have to follow all the instructions. Here are the names I gave :
- no device
- App id :
- name "helloworld"
- id : com.bleezworld.helloworld (Apple automatically adds a dozen of numbers and letters in prefix)
- profil name : ProfilHello
- The certificate is associated to ProfilHello
- in the "Provisioning" section, ProfilHello is associated to 123454321.com.bleezworld.helloworld.
- In XCode, follow carefully the instructions, including the drag-drop of the mobile provision file on the XCode icon in the Dock.
About Target Info ->
- Code Signing identity : "iPhone Distribution: Thomas J_____", without the " "
- Code signing provisioning profile : choose in the list
- That's the theory for the 2 last steps. Another thing very important is that your project must be in 'Distribution' compilation mode, else it won't work.

Practically, you have to reiterate about 50 times those 2 last steps, and every time you have to change "iPhone Distribution: Thomas J____" to "iPhone Distribution: bleezworld", "iPhone Distribution: ProfilHello", you can close the target info window, reopen it, close the project, reopen it... It takes about half an hour to make this work, but at last it works (with the names I gave primarily).
In conclusion, the crucial point is that it is "iPhone Distribution: team manager name". It appears automatically when you add a Provisioning Profile. The last critical point is that it can't work smoothly at the first time, it has to be painstaking. Thanks Apple. You are a Windows (ha ha ha)