J'essaie de configurer CI sur le serveur Xcode en créant un bot pour une application iOS. J'utilise CocoaPods, j'utilise donc le script ci-dessous pour installer les pods:
export LANG=en_US.UTF-8
#!/bin/bash
cd "$XCS_SOURCE_DIR/{PROJECTNAME}"
if [ -e "Pods" ]
then
/usr/local/bin/pod update
else
/usr/local/bin/pod install
fi
La version actuelle de CocoaPods 0.39.0 est installée sur le serveur. Quand je lance "pod update" sur le serveur, tout va bien et les derniers pods sont installés.
Using FBAudienceNetwork (4.7.0)
Using FBSDKCoreKit (4.8.0)
Using Fabric (1.6.1)
Using FyberSDK (8.1.2)
Using Google-Mobile-Ads-SDK (7.6.0)
Using GoogleAnalytics (3.14.0)
Lorsque j'utilise le script ci-dessus, quelque chose d'étrange se produit.
Installing FBAudienceNetwork (4.1.0)
Installing FBSDKCoreKit (4.4.0)
Installing Fabric (1.2.8)
Installing FyberSDK (7.2.4)
Installing Google-Mobile-Ads-SDK (7.3.1)
Installing GoogleAnalytics (3.13.0)
Tout le monde a une idée pourquoi les anciennes versions sont installées avec le script? J'utilise OS X Server 5.0.15 et Xcode 7.2.
Le podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, "8.0"
use_frameworks!
target "{PROJECTNAME}" do
inhibit_all_warnings!
pod 'AFNetworking'
pod 'Branch'
pod 'SwrveSDK'
pod 'RealmSwift'
pod 'MZTimerLabel'
pod 'pop'
pod 'Adjust'
pod 'JSQMessagesViewController'
pod 'Fabric'
pod 'Crashlytics'
pod 'GoogleAnalytics'
pod 'FBSDKCoreKit'
pod 'FyberSDK'
pod 'AdColony'
pod 'Google-Mobile-Ads-SDK'
pod 'ChartboostSDK'
pod 'FBAudienceNetwork'
pod 'VungleSDK-iOS'
end
target "{PROJECTNAME}Tests" do
inhibit_all_warnings!
pod 'AFNetworking'
pod 'Branch'
pod 'SwrveSDK'
pod 'RealmSwift'
pod 'MZTimerLabel'
pod 'pop'
pod 'Adjust'
pod 'JSQMessagesViewController'
pod 'Fabric'
pod 'Crashlytics'
pod 'GoogleAnalytics'
pod 'FBSDKCoreKit'
pod 'FyberSDK'
pod 'AdColony'
pod 'Google-Mobile-Ads-SDK'
pod 'ChartboostSDK'
pod 'FBAudienceNetwork'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
Je l'ai travailler maintenant! Je ne savais pas que l'utilisateur _xcsbuildd était chargé de la construction. J'ai trouvé plus à ce sujet ici: https://honzadvorsky.com/articles/2015-08-17-17-30-xcode_server_tutorials_3_prebuild__postbuild_scripts/
Donc, après la connexion en tant que cet utilisateur, j'ai vu le même problème dans le terminal sur le serveur. Les anciennes versions des pods ont été téléchargées. Le référentiel maître de CocoaPods a une erreur, alors je l’ai
rm -rf ~/.cocoapods/repos/master
Puis j'ai couru
pod setup --verbose
Et le référentiel maître avec les spécifications Cocoapods a été réinstallé. Maintenant ça marche!
Pour ceux d'entre vous rencontrant ce problème avec des bibliothèques plus récentes telles que:
vous devez mettre à jour vos cocoapods vers la dernière version (actuellement 1.2)
J'ai fait ce qui suit qui a fonctionné:
rm -rf ~/.cocoapods/repos/master
pod setup --verbose
Vous devriez maintenant avoir une installation actualisée. J'ai alors mis à jour en faisant:
Sudo gem install cocoapods
Après l'installation, les Facebook Cocoapods sont parfaitement installés.
Pour moi tout désinstaller puis retirer le dépôt principal a fonctionné
gem list --local | grep cocoapods
Sudo gem uninstall cocoapods
Sudo gem uninstall cocoapods-core
Sudo gem uninstall cocoapods-deintegrate
Sudo gem uninstall cocoapods-downloader
Sudo gem uninstall cocoapods-plugins
Sudo gem uninstall cocoapods-search
Sudo gem uninstall cocoapods-stats
Sudo gem uninstall cocoapods-trunk
Sudo gem uninstall cocoapods-try
puis
rm -rf ~/.cocoapods/repos/master
Sudo gem install cocoapods
puis
pod setup --verbose
Désolé de retrouver un ancien fil de discussion, mais j'ai eu un problème similaire avec la non-mise à jour de Firebase/Admob. J'ai la même erreur que d'autres ont mentionné ci-dessus. J'ai essayé tout ce qui est mentionné ci-dessus, mais pour moi, le seul moyen de mettre à jour correctement les pods était de commenter la ligne.
use_frameworks!
Je sais que cela devrait être inclus car j'utilise Swift, mais cela semble bien fonctionner maintenant. Si quelqu'un a des idées sur pourquoi, j'aimerais savoir ce qui se passe!