esup-multi

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire
maxLevel1

Configurer Capacitor

Inclure page
Configurer Capacitor
Configurer Capacitor

...

Remarque

Cette commande n'est à initier qu'une seule fois sur le projet. Elle n'est plus nécessaire par la suite.

Si vous utilisez la version 7 de Capacitor, il faut monter la version d'iOS dans le fichier ios/App/Podfile, par défaut ce sera la version à 14.0, ce n'est pas suffisant et le build échouera par la suite

Bloc de code
languagediff
titleios/App/Podfile
- platform :ios, '14.0'
+ platform :ios, '15.5'

puis lancez :

Bloc de code
languageshell
cd ios/App && pod update && cd -

Build des sources Angular

...

Inclure page
Autorisations nécessaires des clients
Autorisations nécessaires des clients
TODO

Pour ajouter les autorisations dans le fichier Info.plist, il suffit de coller un couple clé-valeur (<key> / <string>) au sein de la bloc <dict>

Accès à l'appareil photo

Bloc de code
<key>NSCameraUsageDescription</key>
<string>L'application a besoin de l'appareil photo pour permettre le scan de code-barre</string>

Accès aux photos

Bloc de code

Autoriser l'utilisation du plugin de scan des code-barres

<key>NSPhotoLibraryUsageDescription</key>
<string>L'application a besoin de la bibliothèque de photos pour permettre de stocker temporairement le scan de code-barre</string>

...

Accès à l'annuaire des contacts

Bloc de code
<key>NSContactsUsageDescription</key>
<string>L'application a besoin d'accéder à votre répertoire pour vous permettre d'ajouter un contact depuis la recherche dans l'annuaire</string>

Géolocalisation

Bloc de code
<key>NSLocationWhenInUseUsageDescription</key>
<string>L'application a besoin de connaitre votre position afin d'améliorer la présentation des services</string>
Bloc de code

Internet

Configuration supplémentaire

Pour iOS, il est nécessaire d'ajouter de la configuration supplémentaire dans le fichier Info.plist.

Empêcher l'initialisation automatique de Firebase

Bloc de code
<key>FirebaseMessagingAutoInitEnabled</key>
<string>NO</string>

Non utilisation du cryptage non exempté

Bloc de code
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Autoriser l'ouverture d'un lien mailto pour la redirection vers la messagerie

Bloc de code
<key>LSApplicationQueriesSchemes</key>
<array>
	<string>mailto</string>
</array>


Info

Pour plus de simplicité, le fichier Info.plist peut aussi être édité depuis Xcode, TARGETS > App > Onglet Info

Image Added

...

Générer le splashscreen et les icônes

...

Avertissement

Le fichier GoogleService-Info.plist doit impérativement avoir été ajouté manuellement au projet iOS depuis XCode pour qu'il soit référencé sur le projet dans l'IDE.
Une fois le fichier ajouté depuis XCode, il ne sera pas nécessaire de le remplacer par la suite depuis l'IDE. Il suffira d'utiliser Trapeze pour le remplacer à chaud sur le projet.

Avertissement

Pour que les notifications push fonctionnent sur iOS, il est impératif de rajouter la capability 'Push Notifications' dans XCode.
Image Added

Il est nécessaire d'ajouter également la capability 'Background Modes' et cocher la checkbox 'Remote notifications'

Image Added


Utiliser Trapeze pour faciliter les modifications du package iOS

...

Ouvrir le projet sous XCode pour tester l'application

Remarque

Les étapes suivantes nécessitent impérativement une machine fonctionnant sous MacOS

Une fois le projet iOS buildé et configuré, il ne reste plus qu'à l'ouvrir sous XCode. Pour cela, exécutez la commande :

Bloc de code
npx ionic capacitor open ios

L'IDE devrait alors s'ouvrir, affichant l'arborescence du projet.

Vous pouvez désormais testé le projet iOS en sélectionnant le périphérique souhaité (émulateur ou device connecté) dans le menu déroulant en haut

Image Added

Puis en cliquant sur le bouton Image Added (Start the active scheme)TODO

Préparer l'App Bundle pour la diffusion sur l'App Store

Remarque

A venir

Infos générale du projet

Configurer les certificats

...

Todo Checklist de re-déploiement

...

Vous trouverez ci-dessous la checklist des actions à effectuer pour build ou rebuild l'app native et la publier sur les stores.

En gris, les actions à n'effectuer qu'une seule fois.
Entre parenthèses, les actions facultatives.
Les autres actions sont à faire à chaque nouvelle release. 

  •  Configurer Capacitor en éditant le fichier capacitor.config.ts
  •  Ajouter le support d'iOS sur le projet
    Bloc de code
    npx ionic capacitor add ios

  •  Build les sources d'Angular avec les modules
    Bloc de code
    npm run build [-- --configuration={environment}]

  •  Synchronisation des sources Angular avec les packages natifs iOS
    Bloc de code
    npx ionic capacitor sync ios [--no-build]

  •  Ajouter les autorisations pour les fonctionnalités natives et la configuration dans le fichier Info.plist
  •  Générer le Splashscreen et les icônes de l'application avec l'outil capacitor-assets
  •  Exécuter la configuration Trapeze pour mettre à jour les numéros de version et build + (copie des fichiers de configuration Firebase)
  •  Ouvrir le projet dans XCode
    Bloc de code
    npx ionic capacitor open ios

  •  (Ajouter la configuration Firebase en collant le fichier GoogleService-Info.plist dans le dossier ios/App/App/ depuis Xcode)
  •  Vérifier que l'on retrouve bien les autorisations nécessaires dans l'onglet App > Info
  •  Vérifier que l'on retrouve bien les bonnes valeurs pour les attributs Bundle Identifier, Version et Build dans l'onglet App > General
  •  Configurer les certificats pour la signature du bundle
  •  Générer le Bundle signé : menu > Product > Archive
  •  Valider l'application
  •  Distribuer l'application sur TestFlight
  •  Passer l'application en production sur l'App Store

Erreurs rencontrées

Build failed, missing architecture

Si vous êtes sur un Mac avec un chipset ARM (M1, M2, M3, ...) et que vous rencontrez l'erreur suivante lors du build sous Xcode : 

Pas de format
Build failed because Capacitor.swiftmodule is missing a required architecture. Would you like to build for rosetta instead?

Il faut alors éditer le fichiers ios/App/Podfile et modifier la partie post_install comme suit :

Bloc de code
languageswift
firstline39
linenumberstrue
post_install do |installer|
  assertDeploymentTarget(installer)

  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # Build for all architectures
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      # Exclude arm64 architecture for the iOS simulator
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
    end
  end
end

Pensez à réinstaller les pods après cela :

Bloc de code
languageswift
$ cd dev/user-frontend-ionic/ios/App && pod install)