En même temps j'ai jamais mis le iTunesArtwork non plus :P Bien sûr du coup quand je distribue l'appli y'a pas d'icône dans iTunes (car Icon.png permet d'avoir l'icône dans l'iPhone du client une fois installé, mais elle n'est pas utilisée par iTunes, même si iTunesArtwork n'est pas présent, c'est vrai que c'est dommage du coup).
Mais bon, moi je crois ce qu'il y a écrit dans la doc, ils disent d'appeler ça iTunesArtwork sans extension, donc c'est que ça doit être vrai ^^ Après quand tu publies sur iTunesConnect, tu postes un fichier, et leur script lit que le contenu (via $_FILES ou équivalent), sans se soucier du nom du fichier. Donc oui, dans ce process là , si on publie le fichier à part du fichier .ipa zippé quand on poste le formulaire dans iTunes Connect, ils sont capables de reconstituer tout comme il faut avec les bons noms si besoin.
Mais bon, moi je crois ce qu'il y a écrit dans la doc, ils disent d'appeler ça iTunesArtwork sans extension, donc c'est que ça doit être vrai ^^
Ca marche pour moi mais bizarrement le logo n'est pas nickel (comme pour les autres applis), comme si il était décalé vers le bas (dans la fenêtre de l'iphone, pas celle des applications de la bibliothèque).
Exact, on peut mettre ça dans un .ipa qui n'est qu'un ZIP avec le Artwork et le dossier Payload. Mais si on fait comme indiqué dans la doc, à savoir ajouter le iTunesArtwork au projet avant de compiler (et donc ce dernier vient se mettre dans le bundle de l'appli directement), ça marche aussi pour la distribution AdHoc.
A propos de ZIP j'ai un petit off topic à vous soumettre :
je suis sous 10.5.8 et quand je compress (menu droit) mon Distribution profile et mon appli (sélection de 2 fichiers), parfois ça marche, parfois non dans le sens où mon application se résume à une dizaine de fichiers et le zip fait 16ko au lieu de 308ko.
C'est vraiment bizarre, je n'ai pas trouvé l'explication. Ca semble être un gros bug mais c'est quand même énorme de laisser passer ça.
Bonjour tout le monde, et bonne année tant que j'y suis!
Je me permet de m'incruster dans la conversation car un client m'a justement posé une question identique aujourd'hui. Ils voudraient lancer une campagne de tests utilisateurs pour l'appli que je leur fourni et pour cela cherchent un moyen user-friendly de distribuer l'application aux dits testeurs.
La solution de base est de fournir un Development Provisionning Profile + le .app. Mais est-il possible (sans passer par l'AppStore) d'obtenir une sorte de package comme un .ipa comprenant l'application et le Provisionning Profile associé pour rendre l'opération plus simple pour un utilisateur lambda (et pas bêta! :P) ?
La solution de base est de fournir un Development Provisionning Profile + le .app. Mais est-il possible (sans passer par l'AppStore) d'obtenir une sorte de package comme un .ipa comprenant l'application et le Provisionning Profile associé pour rendre l'opération plus simple pour un utilisateur lambda (et pas bêta! :P) ?
Je ne vois pas comment faire plus simple, point de vue utilisateur il a juste à faire glisser les 2 fichiers dans iTunes, rien de bien méchant tout de même.
Oui, mais le monde est peuplé d'Homer Simpson en puissance et le client coloré veut se prémunir de tout test en échec lié à un gros naze incapable de faire glisser 2 fichiers. (c'est résumé :P)
Ensuite effectivement dans ton cas de figure ( ), il doit être possible de faire un installer maison qui déplace les 2 fichiers dans les répertoires appropriés, et même pourquoi pas lancer la synchro iTunes...
Notez que je ne sais pas si vous avez déjà remarqué, mais le Provisionning Profile est déjà embarqué dans le .app : si on ouvre le package, on remarque qu'il existe un "embbeded.mobileprovision" ou un truc comme ça dans le ".app"... Et qu'il correspond exactement au ProvProfile utilisé pour compiler... (donc celui qu'on fournit usuellement au client pour installer l'appli sur son iTunes quand on a bien rentré l'UDID de son iPhone dans le Profile)...
Du coup en voyant ça j'ai jamais compris pourquoi il fallait absolument fournir le PP avec le .app alors qu'il est déjà dans le .app... iTunes pourrait se démerder et le trouver comme un grand quand on glisse un .app, non ? Pffff.
Sinon tu peux peut-être essayer de faire un .ipa (ce n'est qu'un ZIP avec le .app et 2 ou 3 autres fichiers, odnt le iTunesArtwork, mais je me demande si on peut pas fouttre le PP dedans genre à la racine et voir si iTunes le reconnait)
Lors de la distribution AdHoc, quand on renvoit une nouvelle version de son application, la sandbox de la version précédente n'est bien sûr pas écrasée ? (je ne l'ai jamais fait, et je ne sais pas comment iTunes gère ça lorsque l'on installe la nouvelle version).
J'ai lu vos message et je pense que quelque chose m'a echapé.
Je dois envoyer à un client une application afin qu'il la test, voila comment j'ai procedé :
- Dans le iPhone Developer Program / Program Portal
1/ Dans la rubrique "Devices", j'ai ajouté son iPhone avec en "Device Name" son nom, et en "Device ID" son UDID
2/ Dans la rubrique "App IDs", j'ai ajouté un App ID com.masociete.nomdelapp
3/ Dans la rubrique "Provisioning", sous rubrique "Distribution" (j'avais testé Development mais apparement c'est pas ca, j'ai perdu un device pour rien :-/) J'ai fais "New Profil", Distribution Method : Ad Hoc Profile Name : NOMDUCLIENTTesting App ID : l'ID de l'application definie precedement Devices : celui du client et le mien
J'ai ensuite telechargé le provisionning que j'ai fait glissé dans Xcode via le menu "Window -> Organizer" (Il est dans la liste des "Provisionning Profiles" de l'Organizer.
J'ai fermé completement XCode puis relancé
J'ai double liqué sur le nom de l'app en sous rubrique de "Target"
* Onglet "Build" :
Configuration : Release Code Signing -> Code Signing Identity -> Any iPhone OS Device -> Je selectionne le profil Distribution que je viens de creer. Le reste par defaut
* Onglet "Properties"
Identifier : com.masociete.nomdelapp
Je reviens ensuite dans Xcode, je selectionne "iPhone Device 3.1.2 (Base SDK)" et "Release"
Je compile (cmd+shift+k pr supprimer l'ancienne compil cause bug sdk derniere version, puis cmd+enter pour compiler).
Tout se passe bien, je recupere le .app dans le dossier "Release-iphoneos" de l'application, et l'envoi ainsi que le .mobileprovision à mon client.
Il fait glisser les 2 fichiers vers son itunes (version windows) , synchronise, et la , bien que le Provisionning soit bien sur son iphone, l'application ne veut pas se copier et genere une erreur... !
Quelqu'un pourrait m'indiquer ou je me suis trompé ?
Exact. Crées un Entitlement.plist, décoche la case qu'il y a dans ce plist, pour lui dire que l'appli ne doit pas être débuggable, rajoute "Entitlement.plist" dans les build settings pour dire d'utiliser le fichier que tu viens de créer comme entitlements, et rebuilt le tout !
Bonjour, j'en suis à la dernière étape, et la ca coince.
En mode dev mon appli se lance et marche nikel sur l'iphone. Voulant la montrer au client, je m'entraine avec l'iphone d'un pote pour l'installe adhoc. Donc je suis la procedure à savoir mettre mon certificat sur le site pour avoir un certificat de déploiement, certificat que je rajoute à la session de mon ordi. J'ai ensuite créé un provisionning profil de type déploiement adhoc avec comme device mon iphone et celui de mon ami, profil que je dl et installe sous l'organizer. Je vais ensuite sous xcode, je créé une nouvelle configuration, dans la quelle je précise d'utiliser le profil de de déploiement, et au quel je rajoute un Entitlement.plist avec get-task-allow décoché, et je spécifie ensuite que ma target doit utiliser ce Entilement.
Bon jusque la ok, ca va. Mais maintenant, si je tente de lancer l'appli sur mon iphone, l'appli se lance mias plante imediatement avec l'erreur : Error launching remote program: failed to get the task for process 2522.
J'ai pu rater quelque chose ?
Edit : Je viens de voir qu'au lancement, Xcode veut lier l'appli au debuguer. Je dois modifier une variable pour que cela ne se fasse pas ?
Tu es sûr d'avoir utilisé une configuration release et pas debug ? Moi je duplique la configuration release que j'appelle ad hoc et je la modifie ensuite. On peut aussi vérifier que la compilation utilise le bon profile en notant son ID (hexa), il doit apparaitre dans une ligne packaging je crois.
Réponses
Bien sûr du coup quand je distribue l'appli y'a pas d'icône dans iTunes (car Icon.png permet d'avoir l'icône dans l'iPhone du client une fois installé, mais elle n'est pas utilisée par iTunes, même si iTunesArtwork n'est pas présent, c'est vrai que c'est dommage du coup).
Mais bon, moi je crois ce qu'il y a écrit dans la doc, ils disent d'appeler ça iTunesArtwork sans extension, donc c'est que ça doit être vrai ^^
Après quand tu publies sur iTunesConnect, tu postes un fichier, et leur script lit que le contenu (via $_FILES ou équivalent), sans se soucier du nom du fichier. Donc oui, dans ce process là , si on publie le fichier à part du fichier .ipa zippé quand on poste le formulaire dans iTunes Connect, ils sont capables de reconstituer tout comme il faut avec les bons noms si besoin.
Ca marche pour moi mais bizarrement le logo n'est pas nickel (comme pour les autres applis), comme si il était décalé vers le bas (dans la fenêtre de l'iphone, pas celle des applications de la bibliothèque).
j'avais testé y a petit moment
http://arstechnica.com/apple/news/2009/03/app-store-lessons-adding-artwork-to-ad-hoc-distros.ars
Mais si on fait comme indiqué dans la doc, à savoir ajouter le iTunesArtwork au projet avant de compiler (et donc ce dernier vient se mettre dans le bundle de l'appli directement), ça marche aussi pour la distribution AdHoc.
je suis sous 10.5.8 et quand je compress (menu droit) mon Distribution profile et mon appli (sélection de 2 fichiers), parfois ça marche, parfois non dans le sens où mon application se résume à une dizaine de fichiers et le zip fait 16ko au lieu de 308ko.
C'est vraiment bizarre, je n'ai pas trouvé l'explication. Ca semble être un gros bug mais c'est quand même énorme de laisser passer ça.
Je me permet de m'incruster dans la conversation car un client m'a justement posé une question identique aujourd'hui.
Ils voudraient lancer une campagne de tests utilisateurs pour l'appli que je leur fourni et pour cela cherchent un moyen user-friendly de distribuer l'application aux dits testeurs.
La solution de base est de fournir un Development Provisionning Profile + le .app. Mais est-il possible (sans passer par l'AppStore) d'obtenir une sorte de package comme un .ipa comprenant l'application et le Provisionning Profile associé pour rendre l'opération plus simple pour un utilisateur lambda (et pas bêta! :P) ?
Je ne vois pas comment faire plus simple, point de vue utilisateur il a juste à faire glisser les 2 fichiers dans iTunes, rien de bien méchant tout de même.
Du coup en voyant ça j'ai jamais compris pourquoi il fallait absolument fournir le PP avec le .app alors qu'il est déjà dans le .app... iTunes pourrait se démerder et le trouver comme un grand quand on glisse un .app, non ? Pffff.
Sinon tu peux peut-être essayer de faire un .ipa (ce n'est qu'un ZIP avec le .app et 2 ou 3 autres fichiers, odnt le iTunesArtwork, mais je me demande si on peut pas fouttre le PP dedans genre à la racine et voir si iTunes le reconnait)
J'ai lu vos message et je pense que quelque chose m'a echapé.
Je dois envoyer à un client une application afin qu'il la test, voila comment j'ai procedé :
- Dans le iPhone Developer Program / Program Portal
1/ Dans la rubrique "Devices", j'ai ajouté son iPhone avec en "Device Name" son nom, et en "Device ID" son UDID
2/ Dans la rubrique "App IDs", j'ai ajouté un App ID com.masociete.nomdelapp
3/ Dans la rubrique "Provisioning", sous rubrique "Distribution" (j'avais testé Development mais apparement c'est pas ca, j'ai perdu un device pour rien :-/) J'ai fais "New Profil",
Distribution Method : Ad Hoc
Profile Name : NOMDUCLIENTTesting
App ID : l'ID de l'application definie precedement
Devices : celui du client et le mien
J'ai ensuite telechargé le provisionning que j'ai fait glissé dans Xcode via le menu "Window -> Organizer" (Il est dans la liste des "Provisionning Profiles" de l'Organizer.
J'ai fermé completement XCode puis relancé
J'ai double liqué sur le nom de l'app en sous rubrique de "Target"
* Onglet "Build" :
Configuration : Release
Code Signing -> Code Signing Identity -> Any iPhone OS Device -> Je selectionne le profil Distribution que je viens de creer.
Le reste par defaut
* Onglet "Properties"
Identifier : com.masociete.nomdelapp
Je reviens ensuite dans Xcode, je selectionne "iPhone Device 3.1.2 (Base SDK)" et "Release"
Je compile (cmd+shift+k pr supprimer l'ancienne compil cause bug sdk derniere version, puis cmd+enter pour compiler).
Tout se passe bien, je recupere le .app dans le dossier "Release-iphoneos" de l'application, et l'envoi ainsi que le .mobileprovision à mon client.
Il fait glisser les 2 fichiers vers son itunes (version windows) , synchronise, et la , bien que le Provisionning soit bien sur son iphone, l'application ne veut pas se copier et genere une erreur... !
Quelqu'un pourrait m'indiquer ou je me suis trompé ?
Merci Beaucoup !
Par contre lorsque je compile ca veut plus se lancer sur l'iphone... mais je ne pense pas que ce soit lié, je vais tout refaire à zero au propre.
j'en suis à la dernière étape, et la ca coince.
En mode dev mon appli se lance et marche nikel sur l'iphone. Voulant la montrer au client, je m'entraine avec l'iphone d'un pote pour l'installe adhoc.
Donc je suis la procedure à savoir mettre mon certificat sur le site pour avoir un certificat de déploiement, certificat que je rajoute à la session de mon ordi.
J'ai ensuite créé un provisionning profil de type déploiement adhoc avec comme device mon iphone et celui de mon ami, profil que je dl et installe sous l'organizer.
Je vais ensuite sous xcode, je créé une nouvelle configuration, dans la quelle je précise d'utiliser le profil de de déploiement, et au quel je rajoute un Entitlement.plist avec get-task-allow décoché, et je spécifie ensuite que ma target doit utiliser ce Entilement.
Bon jusque la ok, ca va. Mais maintenant, si je tente de lancer l'appli sur mon iphone, l'appli se lance mias plante imediatement avec l'erreur : Error launching remote program: failed to get the task for process 2522.
J'ai pu rater quelque chose ?
Edit : Je viens de voir qu'au lancement, Xcode veut lier l'appli au debuguer. Je dois modifier une variable pour que cela ne se fasse pas ?
Moi je duplique la configuration release que j'appelle ad hoc et je la modifie ensuite.
On peut aussi vérifier que la compilation utilise le bon profile en notant son ID (hexa), il doit apparaitre dans une ligne packaging je crois.