Lorsque vous faites une nouvelle application, celle-ci est par défaut pour le dernier IOS.
Mais si vos clients, comme les miens, ont de vieux appareils, vous pourriez vouloir que votre application fonctionne avec IOS9 (pour le moment on peut encore faire des apps IOS9, mais je crois que la limite sera IOS12 dans pas longtemps).
Dans les infos de déploiement, vous changez donc le IOS 14 en IOS 9.
Mais, le lancement de l'app vous donne un écran noir !
Pour régler le problème, il faut ajouter une propriété "window" dans l'interface du appDelegate.
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
Reste les warnings... Le plus simple est de faire confiance à Xcode, tapez sur les warnings et un menu vous proposera un "fix" qui ajoutera un API_AVAILABLE à la définition de la fonction.
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions API_AVAILABLE(ios(13.0)) {
Voilà, votre application fonctionnera sur IOS9 à IOS14... Evidemment, si vous avez besoin d'utiliser les fonctions de UISceneSession, il faudra l'équivalent IOS 9 à 12, c'est-à-dire des fonctions de UIApplicationDelegate.
Commentaires