J’ai passé la toute première étape de développement d’une application simple (une heure pour votre première app avec le changement d’images) et tout est ok sur le simulateur (SE).
J’ai décidé ensuite d’utiliser du vrai hardware, cable USB, … et aucun problème non plus. App transférée, autorisation accordée au développeur inconnu (moi) … sauf qu’après un certain nombre de fois, l’app a commencé à crasher systématiquement. Elle se ferme instantanément après ouverture …
On dirais un problème de mémoire. Le Simulateur n’est pas un iPhone, mais un super-iPhone avec une mémoire énorme (celle du Mac), une capacité de stockage colossale (toujours celle du Mac) et un processeur ultra-performant (encore et toujours celui du Mac).
Certains problèmes n’apparaissent pas sur le Simulateur à cause de sa grosse capacité mémoire. Je me souviens d’un MOOC français sur la programmation en Swift, avec un exercice que le professeur avait conçu de manière à mettre le phénomène en évidence, un système d’affichage avec beaucoup d’images.
Comme ça, à froid, je dirais que ton application charge des données au démarrage, un bloc de données de petite taille au, qui grossit à chaque utilisation, pour finalement atteindre une taille critique.
Cela semble ne pas se produire sur le simulateur, parce que la limite de saturation mémoire du Mac est beaucoup plus haute qu’un iPhone.
erreur 21:45:56.184342 +0200 SpringBoard Bootstrapping failed for <FBApplicationProcess: 0x10bde3b90; be.bmh.ios.MysecondApp; pid: -1> with error: Error Domain=BKSProcessErrorDomain Code=1 « Unable to bootstrap process with bundleID be.bmh.ios.MysecondApp » UserInfo={NSLocalizedDescription=Unable to bootstrap process with bundleID be.bmh.ios.MysecondApp, BKSProcessExitReason=0, NSLocalizedFailureReason=Failed to start job, NSUnderlyingError=0x2826868b0 {Error Domain=NSPOSIXErrorDomain Code=3 « No such process » UserInfo={NSLocalizedFailureReason=The process failed to exec, NSLocalizedRecoverySuggestion=Consult /var/log/com.apple.xpc.launchd/launchd.log for more information, NSLocalizedDescription=Unable to get valid task name port right for pid 5415}}, BSErrorCodeDescription=bootstrap-failed}
erreur 21:45:56.200889 +0200 assertiond Unable to obtain a task name port right for pid 5415: (os/kern) failure (0x5)
erreur 21:45:56.200974 +0200 assertiond Failed to start job with error <NSError: 0x102f68b60; domain: NSPOSIXErrorDomain; code: 3; reason: « The process failed to exec »> {
description = « Unable to get valid task name port right for pid 5415 »;*
failureReason = « The process failed to exec »;*
recoverySuggestion = « Consult /var/log/com.apple.xpc.launchd/launchd.log for more information »;* }
Pas content, il est …
Le code Swift lui même c’est juste ceci, de la toute première leçon app en 1h
Et voilà. Je peux recompiler et tester. Mais le fond du problème m’intéresse aussi (mémoire pas libérée peut-être en effet ? Mais les logs ne parlent pas de cela).
Merci pour la suggestion ! Mais … les erreurs consoles ne pointent à première vue pas trop vers un problème mémoire (regarde les messages console que j’ai trouvé dans l’autre réponse)
There’s your problem. Apps signed with Free developer accounts expire after one week, so every week you have to rebuild and resign your app. This issue will go away when you get a paid account, which will allow you to run your non-App Store app for up to a year. – Andy IbanezMay 29 '17 at 20:34
Dans ce cas là c’est normal avec un compte gratuit. Le certificat expire très rapidement en mode gratuit. Il te suffit de rebrancher ton iPhone sur ton mac et de relancer l’app une fois via XCode pour renouveler le certificat. Tu devras refaire ça très souvent malheureusement…