Application de type annuaire avec géolocalisation connecté à  une BdD d'un Site Internet

Bonjour,


 


Je travaille à  la réalisation d'une application de type annuaire avec une fonction de géolocalisation.


Les données sont issues d'une Base de Données externe gérée par un Site Internet.


 


Pour travailler sur cette application je suis parti d'une application existante que j'adapte.


L'application semble maintenant bien fonctionner mais il reste des détails à  valider qui n'en sont pas  :/


 


Pour commencer :


 


> Lorsque j'ai ajouté mon app dans iTunes Connect il ne m'a pas été demandé quelle était la langue d'origine ou son marché. Est ce normal ?


Dans la même idée est ce que le champ "Localization native development region" doit être mis sur "France" dans le fichier .plist et/ou dans l'onglet info du fichier .xcodeproj ?


 


> Dans le fichier .xcodeproj quelles sont les incidences des informations renseignées dans les champs "name" de "identity and Type" et "Organization" de "Project document" ?


 


> Je dispose d'une valeur "${PRODUCT_NAME}" pour "Bundle display name" est ce que je peux changer le nom directement à  la place de cette variable ou bien puis je trouver l'emplacement de la variable ailleurs (je precise ne pas avoir trouver de fichier : Target) ?


 


Merci par avance pour votre précieuse aide.


«1

Réponses

  • CéroceCéroce Membre, Modérateur

    > Lorsque j'ai ajouté mon app dans iTunes Connect il ne m'a pas été demandé quelle était la langue d'origine ou son marché. Est ce normal ?

    Non, normalement, il demande la langue par défaut. Cependant, il y a eu des changements à  iTunes Connect cette nuit.

    Dans la même idée est ce que le champ "Localization native development region" doit être mis sur "France" dans le fichier .plist et/ou dans l'onglet info du fichier .xcodeproj ?

    Je n'ai jamais compris à  quoi ça servait. De par mon expérience, le modifier n'a pas d'effet ;-)

    > Dans le fichier .xcodeproj quelles sont les incidences des informations renseignées dans les champs "name" de "identity and Type" et "Organization" de "Project document" ?

    Je ne sais pas de quoi tu parles. C'est où exactement ?

    > Je dispose d'une valeur "${PRODUCT_NAME}" pour "Bundle display name" est ce que je peux changer le nom directement à  la place de cette variable ou bien puis je trouver l'emplacement de la variable ailleurs

    La variable "${PRODUCT_NAME}" est définie dans les Build Settings de la Target, mais ici, il faut simplement changer "Bundle display name". Comme son nom l'indique, il s'agit du nom de l'appli, tel qu'affiché à  l'utilisateur " d'ailleurs, on peut même le traduire. Alors que "Bundle Name" est le nom de l'exécutable, qu'il ne vaut mieux pas changer.

    (je precise ne pas avoir trouver de fichier : Target) ?

    Clique sur le projet, tout en haut dans la colonne de gauche. Tu verras qu'apparaissent les targets (cibles de compilation). Dans un projet tout neuf, on a une cible qui correspond à  l'appli, et une autre au bundle des tests unitaires.
  • Merci Céroce pour ces réponses.


     


    > Concernant la langue : est il possible de déterminer la langue et le marché "à  postériori" ?


     


    > Localization native development region : OK


     


    > Ces deux zones sont dans la colonne de droite à  l'écran lorsque celle ci est affichée (Utilities)


     


    > Target : Sur ce projet (.xcodeproj) j'ai le nom du projet et un sous titre : "1 Target, iOS SDK 7.0" et lorsque je l'ouvre 3 répertoires : celui du projet, Frameworks, Products.


    Par contre si j'ouvre l'onglet info de ce projet j'ai dans la liste centrale : Bundle display name | String | ${PRODUCT_NAME}


    J'ai peur en changeant le nom à  cet endroit que cela ne soit pas repris correctement partout.


     


    Merci pour ton aide.


  • CéroceCéroce Membre, Modérateur

    > Concernant la langue : est il possible de déterminer la langue et le marché "à  postériori" ?

    Oui. En fait, il y a une notion de "langue par défaut" et ensuite, on ajoute des traductions sous iTC.

    > Ces deux zones sont dans la colonne de droite à  l'écran lorsque celle ci est affichée (Utilities)

    Ah oui, désolé. 'Name' est le nom du projet. Note que ce n'est pas le même que le celui du .xcodeproj...
    (En fait, renommer un projet est toujours compliqué, je ne sais jamais par lequel des deux il faut commencer, d'autant plus que Xcode 5 a un bug à  ce niveau).

    'Organization' est le nom de l'organisation pour laquelle on travaille sur ce projet. C'est utilisé dans les commentaires en haut des fichiers sources quand on les crée.

    > Target : Sur ce projet (.xcodeproj) j'ai le nom du projet et un sous titre : "1 Target, iOS SDK 7.0" et lorsque je l'ouvre 3 répertoires : celui du projet, Frameworks, Products.

    Une fois le projet cliqué dans le panneau de gauche, regarde dans le panneau de droite, tu as une section PROJECT, et une section TARGETS.

    Par contre si j'ouvre l'onglet info de ce projet j'ai dans la liste centrale : Bundle display name | String | ${PRODUCT_NAME}
    J'ai peur en changeant le nom à  cet endroit que cela ne soit pas repris correctement partout.

    Au final, c'est le fichier MonAppli-Info.plist qui fait foi. Les autres représentations sont simplement une manière plus humaine de le régler.
  • Merci Céroce,


     


    C'est clair pour moi sauf la partie "Target".


    Je te joins une impression d'écran pour que l'on puisse mieux échanger.


     


    Merci encore.


     


    capture-ecran.png


  • AliGatorAliGator Membre, Modérateur
    février 2014 modifié #6

    Une fois le projet cliqué dans le panneau de gauche, regarde dans le panneau de droite, tu as une section PROJECT, et une section TARGETS.

    Si ça peut t'aider, une petite image :
    ZbBp1.png

    Le target, c'est le "ScaryBug" sélectionné qui est en dessous de la ligne de titre "TARGETS" dans la 2e "colonne" (enfin dans la zone de gauche de la partie de droite, quoi).

    Si jamais cette colonne est masquée (ce qui n'est pas le cas par défaut, mais sait-on jamais tu l'as peut-être masquée sans faire exprès ?), tu peux l'afficher en cliquant sur le petit triangle qui est encadré sur cette image.
  • Merci.


     


    Je n'avais en effet pas la colonne à  l'écran.  ;)


    Par contre je ne trouve pas l'endroit ou changer centralement la variable ${PRODUCT_NAME}


     


    Merci pour votre aide.


  • CéroceCéroce Membre, Modérateur

    Je n'avais en effet pas la colonne à  l'écran.  ;)

    Ah, effectivement, on peut la rétracter ;-) Désolé, je cherchais cette case en bas.

    Par contre je ne trouve pas l'endroit ou changer centralement la variable ${PRODUCT_NAME}

    Cible > Build Settings > Packaging > Product Name.
    Note que par défaut, c'est réglé sur $(TARGET_NAME), donc le mieux est de modifier le nom de la cible.
  • Merci beaucoup.


    En effet lorsque je double clique sur Product name il m'ouvre une pop up avec $(TARGET_NAME)


    Maintenant la question est ... comment je change le target_name ?


    Est ce que je le change directement dans la pop up ? Ou bien est ce que je change le nom de la target dans la colonne directement ? Est ce que cela va reprendre ces données directement dans info.plist ?


     


    B)


  • CéroceCéroce Membre, Modérateur
    Change le nom de la target dans la colonne.
    Ensuite, comme -Info.plist utilise la variable $(PRODUCT_NAME), elle-même égale à  $(TARGET_NAME), l'application va changer de nom. Il sera sûrement nécessaire de faire un Clean de la cible.
  • AquirioAquirio Membre
    février 2014 modifié #11

    Ca marche !


    Un grand merci à  vous deux.


     


    euh ... comment on fait un clean de la cible ?


    C'est bon j'ai trouvé !


  • Etape suivante : Tester sur iPhone et iPad


     


    J'ai ajouté mon iPhone aux Device dans le dev center en précisant son UDID.


    Lorsque je lance xCode j'ai bien l'iPhoen qui apparait avec deux boutons : restaurer depuis iTunes / utiliser pour le développement.


    Dois je valider une de ces fonctions ? Quelles sont les incidences ?


     


    J'ai également en bas de la fenêtre deux possibilités : add to member center / remove.


     


    Merci pour votre aide.


  • Bonjour à  tous,


     


    C'est OK j'ai réussi a installer l'application sur un iPhone de test mais au lancement j'obtiens le message suivant :


    "ErrorDomaine=NSCocoaErrorDomain Code=3000 "aucune autorisation "aps-environment" valide détectée pour l'application" User Info=0x17006d040 {NSLocalizedDescription=aucune autorisation "asp-environment" valide détectée pour l'application}"


     


    Il semble que cela soit du à  un certificat qui ne prendrait pas en compte les notifications push?


     


    Comment si c'est le cas re généré un certificat qui prenne en compte cette fonction ?


     


    Merci pour votre aide.


  • Tu peux gérer tous tes certificats sur le iOS dev center. Ensuite il me semble qu'il faut aller dans Provisionning Profiles > Development et créer un nouveau certificat.


  • Il semble que j'ai deux provisioning profil.


    Un qui s'appelle iOS team provisioning profil et l'autre qui correspond à  l'iPhone de test.


     


    Celui qui s'appelle iOS team provisioning profil est celui qui est géré par xCode. Mais il semble que le service Pushweb ne soit pas activé pour celui ci (enabled services : none).


     


    Comment rajouter le service Push web ?


     


    Merci.


  • AliGatorAliGator Membre, Modérateur
    Dans Xcode 5 tu peux les rajouter dans l'onglet Features des réglages de ton projet (quand tu cliques sur ton projet bleu dans la colonne de gauche)
  • Merci AliGator,


     


    J'ai sélectionné le projet (colonne de gauche avec icône bleu).


    Dans la partie centrale principale j'ai deux "sous menu" : "info" et "build settings" mais je ne vois pas d'éléments concernant les provisioning profils ou la fonction push.


     


    Merci


  • AliGatorAliGator Membre, Modérateur
    Hello

    Pardon je t'ai dit tout ça de mémoire sans aller voir, je suis allé un peu vite. En fait une fois le projet sélectionné, il faut ensuite sélectionner la target dans la colonne qui est apparu à  gauche de la zone de droite. Et dans ce cas tu n'as alors plus 2 onglets mais 6, dont l'onglet "Capabilities" (celui que je citais sous le nom "Features" de mémoire dans mon message précédent, je m'étais trompé de nom).

    Plus d'informations ici dans la doc Apple
  • Merci AliGAtor,


     


    C'est bon j'ai donc trouvé ou gérer les options de mon provisioning profil.


    Toutefois je ne trouve rien concernant le "Push notifications" à  moins qu'il ne s'agisse de "Remote notifications" ?


     


    Merci pour ton aide.


  • CéroceCéroce Membre, Modérateur

    Toutefois je ne trouve rien concernant le "Push notifications" à  moins qu'il ne s'agisse de "Remote notifications" ?

    Exact. C'est leur véritable nom technique (pour les distinguer des notifications locales).
  • Bonjour à  tous,


    Cette fois je pense que c'est OK et je souhaite passer à  l'étape "soumission".


    Tout est prêt côté iTunes Connect (Waiting for upload).


     


    Je dois donc créer un certificat "Production" (App store and AdHoc) mais sachant que je dispose d'une fonction push je dois également créer un certificat "Production" (Apple Push Notification service SSL) ou bien ce dernier intègre t il l'ensemble des fonctions ?


    Par ailleurs je dois également créer un provisioning profil "Production" ?


     


    Merci.


  • CéroceCéroce Membre, Modérateur

    Tout est prêt côté iTunes Connect (Waiting for upload).

    Déjà , alors que le push n'est pas testé !?

    Je dois donc créer un certificat "Production" (App store and AdHoc)

    Oui, il faut. Pour faire du push, il faut absolument créer un App ID spécifique.

    mais sachant que je dispose d'une fonction push je dois également créer un certificat "Production" (Apple Push Notification service SSL) ou bien ce dernier intègre t il l'ensemble des fonctions ?

    ça n'a rien à  voir. Le certificat Push doit être installé sur ton serveur; il sert à  identifier le serveur auprès du serveur Push d'Apple.

    Par ailleurs je dois également créer un provisioning profil "Production" ?

    Non deux. D'abord AdHoc pour tester, ensuite App Store pour soumettre.
  • Bonjour Céroce,


     


    J'ai testé l'appui sur des devices (iPhone) déclarées sur Xcode avec "certificat" et "provisioning profil" de développement.


    Je comprend donc qu'il faille également que je passe par l'étape AdHoc avant la soumission ?


     


    Le certificat "App store et Ad Hoc" est donc destiné à  l'application et le certificat "Apple push notification service" au serveur d'envoi des notifications.


    Une fois ces éléments installés je pourrais passer des étapes de tests sur devices depuis Xcode à  des tests Ad Hoc plus complets ?


     


    Ais je bien compris ?


    Merci.

  • CéroceCéroce Membre, Modérateur
    mars 2014 modifié #24

    J'ai testé l'appui sur des devices (iPhone) déclarées sur Xcode avec "certificat" et "provisioning profil" de développement.
    Je comprend donc qu'il faille également que je passe par l'étape AdHoc avant la soumission ?

    Le déploiement AdHoc sert aux béta-tests. Ce n'est pas forcément obligatoire, mais fortement recommandé.
     

    Le certificat "App store et Ad Hoc" est donc destiné à  l'application et le certificat "Apple push notification service" au serveur d'envoi des notifications.
    Une fois ces éléments installés je pourrais passer des étapes de tests sur devices depuis Xcode à  des tests Ad Hoc plus complets ?

    Ne confonds pas Certificat et Provisioning Profile. Il faut un provisioning profile pour déployer sur un terminal (en-dehors du mode de développement).

    Attention, pour le push, et il y a deux certificats: un de dév, et un de prod.
    Celui de dév n'est à  utiliser que pour mettre au point (quand ton appli est chargée directement par câble sur ton terminal par Xcode).

    Celui de Prod est utilisé dès que l'application est déployée: en AdHoc, sur l'App Store, ou In-House.
    Si tu veux tester le push en prod, il faut faire un déploiement en AdHoc.
  • Merci Ceroce,


     


    Quels sont les avantages des tests en Ad Hoc comparativement aux tests réalisés directement sur les équipements déclarés via Xcode ? J'ai pu valider l'ensemble des fonctionnalités a l'exception des notifications.


    Quelle est la procédure pour effectuer des tests en Ad Hoc ? J'ai peur que cela soit très lourd, non ?


     


    J'ai néanmoins les certificats et provisioning profils prêts pour le AdHoc.


     


    Merci pour tes conseils.


  • CéroceCéroce Membre, Modérateur

    Quels sont les avantages des tests en Ad Hoc comparativement aux tests réalisés directement sur les équipements déclarés via Xcode ? J'ai pu valider l'ensemble des fonctionnalités a l'exception des notifications.

    L'avantage c'est qu'on peut demander à  d'autres personnes de tester. C'est souvent intéressant parce qu'elles vont avoir des terminaux différents (par ex. taille d'écran) et qu'elles auront des idées d'améliorations.
    C'est le seul moyen de tester les notifications en mode prod.

    Quelle est la procédure pour effectuer des tests en Ad Hoc ? J'ai peur que cela soit très lourd, non ?

    Il faut créer un provisioning profile AdHoc. Déjà , c'est déjà  chiant en soit, parce qu'il faut récupérer les UDID des terminaux qui pourront exécuter l'appli pour les incorporer dedans.

    Ensuite, on archive l'appli et on la signe avec le provisioning profile avec Xcode. Ensuite, on place le .ipa sur un serveur http. Plus de détails:
    http://www.renaudpradenc.com/?p=35
    (Sur les bétas d'iOS 7.1, le serveur doit utiliser le protocole HTTPS, je n'ai pas encore creusé la question et les implications).

    Un service comme TestFlightApp.com peut faire une partie du travail pour toi: récupérer les UDID, mettre le .ipa à  dispo. La boite qui a créé TestFlight a été rachetée par Apple la semaine dernière. Une simplification du processus est donc fortement espérée !
  • J'ai créé un provisioning profil pour le mode Ad Hoc mais il ne m'a pas demandé de préciser les UDID.


    Ceux ci ont déjà  été renseignés lorsque j'ai ajouté les devices au team développement dans iTunesConnect.


     


    Le menu Product > Archive est grisé et je ne peut le sélectionner.


  • Ca y est.


    J'ai pu finaliser le développement. Je n'ai pas testé les notifications Push mais celles ci ne sont pas prévues dans la v1.0.


     


    J'ai fait une archive que j'ai fait validée via Xcode et il ne m'est remonté aucune erreur toutefois lorsque je regarde la statut de mon provisioning profil (Distribution) celui est à  l'état "Invalid".


    Est ce normal ?


     


    Merci pour votre aide.


  • J'ai regénéré le provisioning profil et il est maintenant OK.


  • Bonjour à  tous,


     


    Quelques nouvelles depuis la soumission de l'application.


    J'ai reçu au bout de 7 jours un "rejected" : l'icône de l'application contenait un telephone qui n'était pas un iPhone.


     


    J'ai modifié les icônes et ressoumis l'application.


    J'ai deux questions :


    Le délai pour valider l'application repart il a zéro (j'ai bien une idée de la réponse ...) ?


    Lorsque l'application est rejetée est ce que tous les points bloquants sont listés ou bien dès qu'un point bloquant est identifié le processus de contrôle s'arrête ?


     


    Merci.


  • Le délai repart à  zéro à  chaque fois que tu soumettras une app.

    Il me semble que malheureusement tout ne soit pas listé. D'après ce que j'ai lu sur le forum, plusieurs devs avaient vu leurs apps rejetées à  la suite pour plusieurs raisons différentes.
Connectez-vous ou Inscrivez-vous pour répondre.