Cocoapods “pod update” 安装旧的 pod

Posted

技术标签:

【中文标题】Cocoapods “pod update” 安装旧的 pod【英文标题】:Cocoapods "pod update" installs old pods 【发布时间】:2016-04-03 05:38:09 【问题描述】:

我正在尝试通过为 ios 应用创建机器人来在 Xcode Server 上设置 CI。我使用 CocoaPods,所以我使用下面的脚本来安装 pod:

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”时,一切都很好,并且安装了最新的 pod。

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。

pod 文件:

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 "PROJECTNAMETests" 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

【问题讨论】:

向我们展示您的 Podfile 好的,我已将 podfile 包含在我的问题中 应该是iOS版本的原因,试试remove (platform :ios, "8.0") 不,这似乎不起作用。我删除了该行但仍然是同样的问题 这些天我没有我的mac,如果您还没有收到任何答复,我会回来时为您提供更多帮助 【参考方案1】:

我已经让它工作了!我不知道进行构建的 _xcsbuildd 用户。我在这里找到了更多相关信息:https://honzadvorsky.com/articles/2015-08-17-17-30-xcode_server_tutorials_3_prebuild__postbuild_scripts/

因此,以该用户身份登录后,我在服务器的终端中看到了同样的问题。旧版本的 pod 已下载。 CocoaPods 的主存储库有错误,所以我这样做了

rm -rf ~/.cocoapods/repos/master

然后我跑了

pod setup --verbose

并且再次安装了具有 Cocoapods 规范的主存储库。现在可以了!

【讨论】:

谢谢,今天这对我有帮助。作为对其他人的说明,克隆真正开始之前需要很长时间,所以首先我认为它不起作用。但我不管它,它开始了,一切都很好。【参考方案2】:

对于那些在使用较新的库时遇到此问题的人,例如:

Facebook 登录 'FBSDKLoginKit' 'FBSDKShareKit' 'FBSDKCoreKit'

您需要将您的 cocoapods 更新到最新版本(当前为 1.2)

我做了以下工作: (警告 Cocoapods 似乎闲置了很长时间,但我猜它在做些什么。) 在终端中按照上面@youritrg 的前两个步骤:

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

您现在应该有一个刷新的安装。 然后我通过这样做更新:

sudo gem install cocoapods

安装后,Facebook Cocoapods 安装完美。

【讨论】:

这对我有用。更新到 Xcode 9 后,我遇到了 Firebase 的问题 对我来说也是。【参考方案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

【讨论】:

"pod setup --verbose" - 我们应该在项目路径还是普通系统路径中执行这个命令?【参考方案4】:

很抱歉挖掘了一个旧线程,但我遇到了 Firebase/Admob 未更新的类似问题。我得到了与上面其他人提到的相同的错误。我尝试了上面提到的所有方法,但对我来说,让 pod 正确更新的唯一方法是注释掉该行

use_frameworks!

我知道在我使用 Swift 时应该包含它,但它现在似乎工作正常。如果有人对为什么有任何想法,我很想知道发生了什么!

【讨论】:

【参考方案5】:

运行 pod repo update 为我修复了这个错误

【讨论】:

以上是关于Cocoapods “pod update” 安装旧的 pod的主要内容,如果未能解决你的问题,请参考以下文章

cocoapods:pod update 和 pod install 需要很长时间

CocoaPods 1.0之前版本无法pod install和pod update! 更新后CocoaPods 1.1.1 Podfile新的写法.

pod update或者pod install很慢

pod update 没有得到 pod 的最新版本

pod update --verbose --no-repo-update

iOS-pod install&pod update