如何为某个 pod 指定特定的源?

Gle*_*enn 3 twilio ios cocoapods

虽然我相信这是无害的,但警告让我很恼火。所以我将一个非常特定版本的TwilioChatClientTwilioClient一起使用。这两个特定版本是 Twilio 在其示例项目中使用的版本。

无论如何,安装/更新 pod 时的警告:

[!] 发现多个规范TwilioChatClient (1.0.9): - /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.9/TwilioChatClient.podspec.json - /Users/XXX/.cocoapods/repos /twilio/TwilioChatClient/1.0.9/TwilioChatClient.podspec

[!] 发现多个规范TwilioChatClient (1.0.8): - /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.8/TwilioChatClient.podspec.json - /Users/XXX/.cocoapods/repos /twilio/TwilioChatClient/1.0.8/TwilioChatClient.podspec

[!] 发现多个规范TwilioChatClient (1.0.7): - /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.7/TwilioChatClient.podspec.json - /Users/XXX/.cocoapods/repos /twilio/TwilioChatClient/1.0.7/TwilioChatClient.podspec

[!] 发现多个规格 TwilioChatClient (1.0.6): - /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.6/TwilioChatClient.podspec.json - /Users/XXX/.cocoapods/repos /twilio/TwilioChatClient/1.0.6/TwilioChatClient.podspec

[!] 发现多个规范TwilioChatClient (1.0.5): - /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.5/TwilioChatClient.podspec.json - /Users/XXX/.cocoapods/repos /twilio/TwilioChatClient/1.0.5/TwilioChatClient.podspec

[!] 发现多个规范TwilioChatClient (1.0.4): - /Users/XXX/.cocoapods/repos/master/Specs/7/d/e/TwilioChatClient/1.0.4/TwilioChatClient.podspec.json - /Users/XXX/.cocoapods/repos /twilio/TwilioChatClient/1.0.4/TwilioChatClient.podspec

我的播客文件:

project 'Proj/Proj.xcodeproj'

source 'https://github.com/CocoaPods/Specs'
source 'https://github.com/twilio/cocoapod-specs'

platform :ios, '10.0'
use_frameworks!

  target 'Proj' do

    pod 'TwilioClient', '~>1.2'     # Twilio Call Framework
    pod 'TwilioChatClient', '1.0.4' # Twilio Chat Framework


    target 'MobileMedTests' do
        inherit! :search_paths
    end

    post_install do |installer|
        installer.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '4.0'
            end
        end
    end

  end

  target 'ProjUITests' do

  end
Run Code Online (Sandbox Code Playgroud)

我认为指定两种来源(都是必要的)会导致这些警告。有没有办法将特定源放在 pod 旁边?

cde*_*urs 5

实际上,您的问题来自以下事实:您已使用以下行将 twilio 存储库添加到 pod 源中:

source 'https://github.com/twilio/cocoapod-specs'
Run Code Online (Sandbox Code Playgroud)

因此,当您键入时pod repo,您会获得类似以下内容的信息:

master
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/cyrille/.cocoapods/repos/master

twilio
- Type: git (master)
- URL:  https://github.com/twilio/cocoapod-specs
- Path: /Users/cyrille/.cocoapods/repos/twilio
Run Code Online (Sandbox Code Playgroud)

当你执行时pod install,cocoa pods 可以在 master 的 cocoapods repo 和 twilio 的 repo 中找到这个库的一个版本......这会发出警告。

要删除此警告,请从 Podfile 中删除此行:

source 'https://github.com/twilio/cocoapod-specs'
Run Code Online (Sandbox Code Playgroud)

在终端中执行以下命令:

pod repo remove twilio
Run Code Online (Sandbox Code Playgroud)

进而 :

pod update
Run Code Online (Sandbox Code Playgroud)

您应该得到以下信息,不再有警告:

Analyzing dependencies
Removing TwilioClient
Downloading dependencies
Installing TwilioChatClient 2.2.0 (was 1.0.4)
Installing TwilioSDK (1.2.9)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 2 total pods installed.
Run Code Online (Sandbox Code Playgroud)