Cocoapods "pod update" устанавливает старые контейнеры
Я пытаюсь настроить CI на Xcode Server, создав бота для приложения iOS. Я использую CocoaPods, поэтому я использую script ниже, чтобы установить контейнеры:
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
Текущая версия CocoaPods 0.39.0 установлена на сервере. Когда я запускаю обновление "pod update" на сервере, все в порядке, и установлены новейшие модули.
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)
Когда я использую script выше, однако что-то странное происходит.
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)
Кто-нибудь знает, почему старые версии установлены с помощью script? Я использую OS X Server 5.0.15 и Xcode 7.2.
Подкайл:
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
Ответы
Ответ 1
Теперь у меня это работает! Я не знал о пользователе _xcsbuildd, который делает сборки. Я нашел здесь больше об этом: https://honzadvorsky.com/articles/2015-08-17-17-30-xcode_server_tutorials_3_prebuild__postbuild_scripts/
Итак, после входа в систему этим пользователем я увидел ту же проблему в терминале на сервере. Были загружены старые версии стручков. У главного репозитория CocoaPods есть некоторая ошибка, поэтому я сделал
rm -rf ~/.cocoapods/repos/master
Затем я запустил
pod setup --verbose
И мастер-репозиторий с параметрами Cocoapods был установлен снова. Теперь он работает!
Ответ 2
Для тех, кто сталкивается с этой проблемой с более новыми библиотеками, например:
- Вход в Facebook
- 'FBSDKLoginKit'
- 'FBSDKShareKit'
- 'FBSDKCoreKit'
вам нужно обновить свои коко файлы до последней версии (в настоящее время 1,2)
Я сделал следующее, что сработало:
(Предупреждение Cocoapods, кажется, сидит на холостом ходу целую вечность, но я думаю, что он что-то делает.)
Следуйте первым двум шагам от @youritrg выше в терминале:
rm -rf ~/.cocoapods/repos/master
pod setup --verbose
Теперь у вас должна быть обновленная установка.
Затем я обновил:
sudo gem install cocoapods
После установки Facebook Cocoapods установлены отлично.
Ответ 3
Для меня удаление всего, а затем удаление мастер-репо работало
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
затем
rm -rf ~/.cocoapods/repos/master
sudo gem install cocoapods
затем
pod setup --verbose
Ответ 4
Извините за то, что выкалываете старый поток, но у меня была аналогичная проблема с Firebase/Admob, которая не обновляется. Я получил ту же ошибку, что и другие, упомянутые выше. Я пробовал все, что упоминалось выше, но для меня единственный способ, которым я мог правильно настроить стручки, - это прокомментировать строку
use_frameworks!
Я знаю, что это должно быть включено, поскольку я использую Swift, но теперь он работает нормально. Если у кого-нибудь есть мысли о том, почему, я хотел бы знать, что происходит!