Подтвердить что ты не робот

Cocoapods: невозможно найти спецификацию для [PrivateSpec], зависящую от [PrivateClientSpec]

Я пытаюсь использовать частные репозитории, чтобы разбить большее приложение. Я следил за гидами по адресу:

Я создал локальный репозиторий, содержащий спецификации, опубликованные в cocoapods через

pod remote add MySpecs ~/local/path/to/MySpecs.git,

подтвердил, что cocoapods видит их, просматривая содержимое ~/.cocoapods/repos/MySpecs

Я ссылался на PrivateSpec внутри PrivateClientSpec следующим образом:

s.dependency 'PrivateSpec' '~> 0.1.0'

Проблема в том, что, когда я пытаюсь использовать эту PrivateClientSpec, я получаю титульную ошибку:

Unable to find a specification for [PrivateSpec] depended upon by [PrivateClientSpec]

Я что-то упустил? Насколько я понимаю, это поддерживается поведение. Я использую cocoapods v0.35.

Спасибо!

4b9b3361

Ответ 1

Причина в том, что pod spec linter проверяет только мастер-спецификации, поэтому он не может найти ваше личное.

Вам нужно использовать параметр --sources, например:

pod spec lint --sources='[email protected]:iOS/Specs.git,https://github.com/CocoaPods/Specs'

Две вещи: примечание:

  • Ваши частные спецификации должны быть в сети, не можете проверить локальный
  • Если вы зависите от других модулей, вам нужно будет добавить URL-адрес для своего репо-реплики, поэтому в нашем примере https://github.com/CocoaPods/Specs.

Запустив pod spec lint --help, вы можете узнать больше об этой опции:

--sources=https://github.com/artsy/Specs   The sources from which to pull
                                           dependant pods (defaults to
                                           https://github.com/CocoaPods/Specs.git).
                                           Multiple sources must be
                                           comma-delimited.

Подробнее об этом здесь и здесь

Ответ 2

Для правильной работы pod install мне все равно пришлось добавить:

source '<Prive specs lib URL>'
source 'https://github.com/CocoaPods/Specs.git'

.. в файл pod (не подспец).

Чтобы избавиться от:

Невозможно найти спецификацию для [PrivateSpec], зависящую от [PrivateClientSpec]

Затем Если вы также не смогли установить с ошибкой, подобной этой

pod install --verbose

  Preparing

Re-creating CocoaPods due to major version update.
  - Running source provider hooks
https://github.com/CocoaPods/Specs.git
<Prive specs lib URL>
source_url <Prive specs lib URL>

Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-YourTarget`: (``)

Finding Podfile changes
  XXXXXXXXXXXXXXX

Resolving dependencies of `Podfile`

――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

### Command

```
/usr/local/bin/pod install --verbose
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?


### Stack

```
   CocoaPods : 1.1.1
        Ruby : ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
    RubyGems : 2.6.10
        Host : Mac OS X 10.12.4 (16E195)
       Xcode : 8.3.2 (8E2002)
         Git : git version 2.11.0 (Apple Git-81)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib
Repositories : alibaba-specs -  @ fatal: Not a git repository (or any of the parent directories): .git
               aliyun - [email protected]:aliyun/aliyun-specs.git @ 7406176b51b4d4f8f323a39f4d96a3857229805d
               aliyun-1 - <Prive specs lib URL> @ 7406176b51b4d4f8f323a39f4d96a3857229805d
               master - https://github.com/CocoaPods/Specs.git @ 86c330635113e7fc290fdebad4ba3ed0dca2daee
               taobao-baichuansdk-alibcspecs - http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git @ e8cb2ae2ee7f44582923e4fae29243d6225fa8ee
```

### Plugins

```
cocoapods-deintegrate   : 1.0.1
cocoapods-plugins       : 1.0.0
cocoapods-repo-alirsync : 1.0.4
cocoapods-repo-rsync    : 1.0.4
cocoapods-search        : 1.0.0
cocoapods-stats         : 1.0.0
cocoapods-trunk         : 1.2.0
cocoapods-try           : 1.1.0
```

### Podfile

```ruby
# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
# use_frameworks!


source 'https://github.com/CocoaPods/Specs.git'
source '<Prive specs lib URL>'


target 'YourTarget' do
  pod 'AlicloudFeedback', ‘~> 3.0.1’
end
```

### Error

```
RuntimeError - Cannot initialize an aggregate with a nil source: ([nil])
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/source/aggregate.rb:13:in `initialize'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:356:in `new'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:356:in `aggregate_for_dependency'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:347:in `create_set_from_sources'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:317:in `find_cached_set'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:290:in `specifications_for_dependency'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:108:in `search_for'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:206:in `block in sort_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:200:in `each'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:200:in `sort_by'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:200:in `sort_dependencies'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/delegates/specification_provider.rb:52:in `block in sort_dependencies'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/delegates/specification_provider.rb:69:in `with_no_such_dependency_error_handling'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/delegates/specification_provider.rb:51:in `sort_dependencies'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolution.rb:165:in `initial_state'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolution.rb:106:in `start_resolution'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolution.rb:64:in `resolve'
/Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolver.rb:42:in `resolve'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:62:in `resolve'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer/analyzer.rb:723:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer/analyzer.rb:721:in `resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer/analyzer.rb:76:in `analyze'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:236:in `analyze'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:150:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:149:in `resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:110:in `install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command/install.rb:37:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-1.0.1/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command.rb:50:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:22:in `load'
/usr/local/bin/pod:22:in `<main>'
```

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

[!] Oh no, an error occurred.

Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=Cannot+initialize+an+aggregate+with+a+nil+source%3A+%28%5Bnil%5D%29&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

Don't forget to anonymize any private data!

Looking for related issues on cocoapods/cocoapods...
 - Changes search index format to fasten `pod search --full` command.
   https://github.com/CocoaPods/CocoaPods/pull/4249 [closed] [33 comments]
   28 Oct 2015


[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

Затем вы должны попытаться обновить версию CocoaPods. Это может помочь вам: fooobar.com/questions/293540/...

Ответ 3

В случае, если ответ mokagio не работает ни для кого, вот что сработало для меня:

Просто измените адрес частного репо на https://

pod spec lint --sources='https://our-private-spec-repo:iOS/Specs.git,https://github.com/CocoaPods/Specs'

Ответ 4

Для правильной работы pod install мне все равно пришлось добавить:

source '<Prive specs lib URL>'
source 'https://github.com/CocoaPods/Specs.git'

.. в файл pod (не подспец).

Чтобы избавиться от:

Невозможно найти спецификацию для [PrivateSpec], зависящую от [PrivateClientSpec]