Je découvre un problème de « provisioning profile ». J’arrivais jusqu’alors à installer sur mon iPhone de développement la version en cours de réalisation de mon app, mais depuis aujourd’hui, rien ne va plus, il ne trouve plus de provisioning profile et ne parvient pas à l’installer. J’ai un compte payant, valable jusqu’en 2023, je ne comprends pas !
Voici le détail de l’échec :
Les problèmes de provisionnements sont les plus compliqués à résoudre car ils devraient se gérer automatiquement et si ça ne marche pas c’est que Xcode a rencontré un soucis. Maintenant pour trouver le soucis…
As-tu changé d’ordinateur ou de session ?
Si rien n’a changé dans ton ordinateur, je te conseille plusieurs choses :
dans les préférences de Xcode, essaie de te déconnecter, puis reconnecter à ton compte Apple
dans les réglages de ta target, « Signing & Capabilities » : décoche, puis recoche "Automatically manage signing et vérifie que la « team » est bien sélectionnée et affichée en dessous
Merci. C’est en effet très difficile, rien de tout ça ne marche. J’ai écrit à Apple, qui me demande des renseignements que je leur ai déjà fourni spontanément, ce qui ne me rassure qu’à moitié. Au moins, la réponse de leur part est rapide malgré la proximité d’Independance Day. Peut-être automatique ? On verra bien… Pour l’instant, j’en suis réduit à voir que cela marche dans le simulateur, mais sur un projet comme ça, avant même de corriger les traductions, j’aimerais bien le voir marcher sur mon iPad et sur mon iPhone. Bon. Je tiendrai au courant.
Alors, voilà la réponse peu encourageante que j’ai reçu d’Apple in fine :
Hello François,
Thank you for providing the requested information.
We have reviewed all the information you provided including the screen recording, and we determined that this is an issue which is outside our scope of support. Apple Developer Program Support specialises in providing administrative support to developers.
I therefore would like to refer you to our online resource that guides through the process of testing app on a device directly from Xcode:
I hope you find this information helpful, and I remain at your disposal should you have any other inquiries regarding your developer account. Your case number is 101738893806.
Je suis allé voir sur StackOverflow, j’ai trouvé une suggestion consistant à remplacer dans File → project settings « New Build System » par « Legacy Build System ». J’ai tenté ça, mais Xcode a aussitôt déclenché une erreur, indiquant que l’ancien système serait vite supprimé et était d’ores et déjà obsolète. J’ai donc rétropédalé, retour au New Build System. Depuis, quoi que je fasse, il trouve mon iPhone occupé et s’acharne à tenter d’installer mon appli sur ma montre… Une idée ?
Ça n’a pas duré, il est revenu à l’état antérieur, avec la même rengaine. Néanmoins, je m’interroge : et si le problème venait de l’altération d’un fichier, est-ce que ça pourrait être un .plist ? Comment savoir ? Quand dans Source Control j’affiche la liste des Commit, apparaît en marge une indication selon lequel le fichier d’info aurait été, à un moment, effacé et sans doute recréé ensuite. Pourrait-il avoir perdu quelque chose en route qui pourrait occasionner cette réponse d’Xcode ? Qui ne trouve pas de provisioning profile ?
Xcode : version 13.4.1 (13F100)
J’ai supprimé l’app
je l’ai redémarré
j’ai toujours le même refus d’installer l’app sur mon téléphone
mon téléphone apparaît correctement dans « Devices and Simulator » quand il est branché avec son câble d’origine (Apple donc) Voici ce qui s’affiche :
J’ai peut-être un embryon de solution, je ne sais pas. Jusqu’à il y a peu, le provisioning profile était un bout du fichier info.plist qui est aujourd’hui à part, encodé en mode DER (je ne sais pas ce que c’est, je vais chercher). Voici ce que j’ai trouvé sur les forums Apple :
"
A provisioning profile with DER-Encoded-Profile will fail the signing verification on iOS 15 beta 1 and 2. From our internal testing, only Apps developed via XCode Version 13.0 beta (13A5154h) can be installed because only the provisioning profiles generated from Xcode 13 beta do not contain DER-Encoded-Profile Our build servers run Xcode 12 so all profiles contain DER-Encoded-Profile. This is impacting our organization’s ability to test our internal Enterprise Apps for the preparation for iOS 15 support as all Enterprise mobile provisioning profiles have DER-Encoded-Profile.
"
Je me demande si je ne fonctionnais pas sur l’ancien modèle de profile, et l’effacement de info.plist aurait provoqué le passage au DER-encoded-profile alors que Xcode attendrait l’autre version ? Un truc du genre ?
En fait, tout ça ne débouche sur rien. Il est possible qu’il y ait quelque part un bug, voire un bug Apple, je n’en sais rien. J’ai tenté, en désespoir de cause, de griller un de mes deux tickets annuels de code level support, mais les gens de chez Apple m’en ont dissuadé : « c’est un problème lié à la signature du code, la page de lien que l’on vous envoie fait le tour du problème, et on fait pour vous un geste, on remet le compteur à zéro, vous gardez vos deux tickets ».
Merci, monsieur Apple.
Mais, voilà, je sèche. j’ai lu tous les messages sur le forum développeur d’Apple comme sur StackOverflow, concernant mon problème. J’ai trouvé un certain nombre de demandes avec exactement les mêmes codes d’erreur, à des époques différentes de 2018 à 2021. Je n’ai jamais trouvé quelqu’un à qui l’on adressait une solution qui soit validée.
J’ai constaté que si je montais une app de démo sans aucun intérêt et qu je veuille la faire marcher sur mon iPhone, j’y parvenais sans difficulté. Je me demande si je ne devrais pas faire comme si je partais de zéro, refaire un projet de même nom et rebalancer tous les fichiers de mon projet dedans pour voir ? Est-ce un e bonne idée, ou bien est-ce à éviter par dessus tout ?
Eurêka. C’est réparé. Je me suis contenté de comparer le fichier Build settings de la target de l’appli bidon que j’avais réussi à installer sur mon iPhone avec le fichier Build settings de la target de mon appli, rubrique « Code signing ».
J’ai trouvé une incohérence à corriger, et tout est rentré dans l’ordre. Xcode me demande seulement le mot de passe de Keychain Access à chaque install, ce qu’il ne faisait pas avant, mais l’important, c’est que ça marche !
Content que tu aies trouvé la solution @fjacquemin ! Te rappelles-tu de l’incohérence que tu avais trouvée ? Ca permettrait de compléter la solution pour d’autres personnes qui pourraient rencontrer le même problème.
Je pense au contraire que ce serait une bonne idée. Surtout si tu utilises Git, tu peux sans soucis regenerer tes fichiers de projet et de configuration puis voir ce qui a vraiment changé. A tout moment tu peux revenir en arrière avec Git donc n’hésite pas la prochaine fois
L’incohérence, c’était de cocher le sandboxing, ce que je ne me rappelle pas avoir jamais fait, pour une app iOS. Ce n’est que pour les app MacOS. Et c’est bien dans le chapitre « signing » du « Build Settings ».
Quant à Git, le problème, c’est que le projet a déjà changé de nom, et que retrouver l’info.plist qui allait bien exposait à retrouver des items sous des formes non actuelles et qui n’auraient pas marché non plus… Je fais des commit à chaque modification. Mais je vois bien que ça ne résout pas tout.