it-roy-ru.com

Cocoapods "pod update" устанавливает старые стручки

Я пытаюсь настроить CI на Xcode Server, создав бота для приложения для iOS. Я использую CocoaPods, поэтому я использую приведенный ниже скрипт для установки модулей:

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)

Когда я использую сценарий выше, что-то странное происходит.

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)

У кого-нибудь есть идеи, почему старые версии устанавливаются вместе со скриптом? Я использую 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
24
youritrg

У меня это работает сейчас! Я не знал о пользователе _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 был установлен снова. Теперь это работает!

30
youritrg

Для тех из вас, кто сталкивался с этой проблемой с новыми библиотеками, такими как:

  • Логин в фейсбук
  • 'FBSDKLoginKit'
  • 'FBSDKShareKit'
  • 'FBSDKCoreKit'

вам нужно обновить ваши cocoapods до последней версии (в настоящее время 1.2) 

Я сделал следующее, что сработало: (Предупреждение Cocoapods, кажется, бездействует целую вечность, но я предполагаю, что он что-то делает.) Выполните первые два шага из @youritrg выше в терминале:

rm -rf ~/.cocoapods/repos/master
pod setup --verbose 

Теперь у вас должна быть обновленная установка. Затем я обновился, выполнив: 

Sudo gem install cocoapods

После установки Facebook Cocoapods установлен отлично. 

7
Mobile Bloke

У меня все удалялось потом работало удаление мастер репо

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
3
u.gen

Извините за то, что выкопал старый поток, но у меня была похожая проблема с Firebase/Admob, который не обновлялся. Я получил ту же ошибку, что и другие, упомянутые выше. Я попробовал все, что упомянуто выше, но для меня единственным способом, которым я мог заставить стручки обновляться правильно, было закомментировать строку

use_frameworks!

Я знаю, что это должно быть включено, так как я использую Swift, но, похоже, сейчас работает нормально. Если у кого-то есть мысли о том, почему, я хотел бы знать, что происходит! 

0
Iain Coleman