Nous créons des intergiciels en utilisant Cordova et AdMob pour diffuser des publicités. Cordova génère un projet Xcode pour nous. Cependant, les projets Xcode qui en résultent ne parviennent plus à se créer avec l'erreur ld: framework not found UserMessagingPlatform.xcframework
.
Cela semble être dû à la mise à jour du SDK Google UMP vers la version 1.3.0, qui indique «Mise à jour du SDK d'un .framework vers un .xcframework». J'ai contacté l'assistance AdMob, et ils affirment que la conception fonctionne pour eux et n'ont fourni aucune aide utile.
Je n'ai aucune idée de la raison pour laquelle nos builds échouent maintenant et je ne sais pas quoi faire. Voici un exemple de projet Xcode: https://www.dropbox.com/s/y1ly2c3yi45rop6/TestBuild.ios.project.zip?dl=0
Quelqu'un peut-il identifier ce qui n'a pas fonctionné avec ce projet Xcode, ce qui l'a empêché de se construire et identifier une solution de contournement?
3 Réponses :
Utilisez-vous des Cocoapods pour votre projet XCode?
Cette réponse stackoverflow suggère de mettre à jour les cocoapodes
Essayez de mettre à jour les cocoapodes:
sudo gem install cocoapods
Le journal des modifications de Cocoapods contient des correctifs pour XCFrameworks
Le problème semble être qu'un framework / dépendance n'est pas ajouté au projet Xcode , il n'a donc pas le code nécessaire pour compiler l'application. AdMob s'appuie sur cet élément UserMessagingPlatform
pour fonctionner, et sans le SDK Mobile Ads présent dans votre base de code, UserMessagingPlatform
est manquant et votre application demande essentiellement du code qui n'y figure pas. Pour résoudre ce problème, vous devez dire à cocoapods (un gestionnaire de dépendances, pensez à npm mais pour Swift / Objective-C) de localiser et d'ajouter le code manquant à votre projet.
Tout d'abord, installez des cocoapodes si vous ne l'avez pas déjà fait. J'ai utilisé Homebrew pour ce faire, car cela semble être la seule méthode qui fonctionne sans mal de tête. Beaucoup de gens ont déjà Homebrew, mais si vous ne le faites pas, installez-le d'abord, puis exécutez: brew install cocoapods
Ensuite, allez dans le répertoire de votre projet à l'aide du Terminal. Une fois que vous êtes dans le répertoire, exécutez: pod install --repo-update
Rouvrez votre projet dans Xcode et il devrait se compiler avec succès maintenant.
Ignorez toutes les étapes qui ne sont pas nécessaires pour votre environnement.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install cocoapods
cd /path/to/your/project
pod install --repo-update
Avertissement: je ne suis pas un développeur Swift ou Objective-C, et mon expérience avec Apple / Xcode est limitée. Je ne connais pas non plus les "cocoapodes" et AdMob. Je viens de télécharger l'exemple de code et de résoudre le problème jusqu'à ce qu'il soit compilé avec succès.
Notez également que vous n'avez pas nécessairement besoin de cocoapodes pour installer le code manquant, c'est juste le moyen le plus simple. Il y a plus d'informations sur la façon d'installer manuellement le framework dans la documentation de Google . J'ai travaillé avec Cordova (via ngx-rocket) dans le passé et une fois que vous avez installé le SDK manquant, je m'attendrais à ce que vous n'ayez pas à le refaire tant que vous ne supprimez pas le projet cordova et l'ajoutez à nouveau (ce qui est parfois nécessaire malheureusement) mais si vous le faites, répétez simplement les étapes. J'aime noter ce truc dans le README
.xcframework
fichiers .xcframework
ne peuvent être utilisés que sur CocoaPods 1.10.0 ou plus récent, dans votre exemple d'application, vous utilisiez 1.8.4.
Mettez à jour CocoaPods à la dernière version et exécutez à nouveau l' pod install
.
Vérifiez ce stackoverflow.com/questions/29865899/...