Si vous développez avec la stack cordova sous Ionic ou Phone Gap, sachez qu'il y a des opérations à faire dans Xcode avant de publier sur le store.

La stack cordova permet de générer un projet Xcode utilisé pour gérer son App dans le store.

Seulement voilà, certaines configurations ne fonctionnent pas très bien ou n'existent pas.
Je vous donne quelques astuces d'après mon retour d'expérience.

1. La langue par défaut

Si on ne fait pas attention, la langue par défaut est en-US. Si votre App ne dépend pas des Etats-Unis, il serait judicieux de changer cela.

1.1. Modification dans XCode

Dans Xcode, ouvrez l'onglet Project Navigator.

Ouvrez le fichier {Votre App} > Resources > {Votre App}-Info.plist

Modifiez la propriété de Localization native development.

1.2. Modification dans le projet Cordova

Dans le fichier config.xml, ajoutez les lignes suivantes dans le tag <platform name="ios">:

        <edit-config file="*-Info.plist" mode="merge" target="CFBundleDevelopmentRegion">
            <string>fr_FR</string>
        </edit-config>

Attention, lors du build, cette ligne affecte uniquement le fichier platforms/ios/Pods/Target Support Files/Pods-{Votre App}/Pods-{Votre App}-Info.plist.
Il faut donc merger manuellement la configuration suivante dans le fichier platforms/ios/{Votre App}/{Votre App}-Info.plist:

    <key>CFBundleDevelopmentRegion</key>
    <string>fr_FR</string>

2. La géolocalisation

Si vous souhaitez utiliser le GPS, Apple demande à ce que certains paramètres soient présents dans le fichier Info.plist.

2.1. Modification dans XCode

Dans Xcode, ouvrez l'onglet Project Navigator.

Ouvrez le fichier {Votre App} > Resources > {Votre App}-Info.plist.

Ajoutez une description aux propriétés suivantes:

  • Privacy - Location Always Usage Description
  • Privacy - Location When In Use Usage Description

Utilisez par exemple la description suivante: To locate me

2.2. Modification dans le projet Cordova

Dans le fichier config.xml, ajoutez les lignes suivantes dans le tag <platform name="ios">:

        <edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
            <string>To locate me</string>
        </edit-config>
        <edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysUsageDescription">
            <string>To locate me</string>
        </edit-config>

Comme pour la clé précédente, la configuration devra être mergée manuellement:

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>To locate me</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>To locate me</string>

Notez que sans cette configuration, vous obtiendrez ce type d'erreur:

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSLocationAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

3. Numéro de build et cible de l'App

Par défaut, Cordova affecte la version de l'App au numéro de build. Pour déployer votre app sur le store, vous aurez probablement besoin de plusieurs essais, sans pour autant changer la version. Il faut donc modifier le numéro du build manuellement.

Dans XCode, cliquez sur Votre App, puis sur l'onglet General.

Modifiez votre numéro de build par 0, 1, 2 ...

Vous devrez le faire à chaque compilation depuis Cordova.

Vous pouvez aussi configurer la cible de l'App qui par défaut est iPhone et iPad. Si vous souhaitez uniquement l'un des deux, modifiez la cible dans la section Deployment Info.

J'espère que cet article vous a été utile, et je vous dis à plus pour le prochain. xD

Article précédent Article suivant


Ajouter un commentaire