Добавить зависимость Pod с источником в .podspec - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь добавить следующую зависимость к моему Podspec

s.dependency 'Apollo/WebSocket', :git => 'https://github.com/apollographql/apollo-ios'

Вот что я получаю в своем терминале всякий раз, когда я пытаюсь запустить pod lib lint MyPodName.podspec:

- ERROR | spec: The specification defined in `MyPodName.podspec` could not be loaded.


[!] Invalid `MyPodName.podspec` file: [!] Unsupported version requirements.

 #  from <PathToMyPodspec>/MyPodName.podspec:36
 #  -------------------------------------------
 #    
 >    s.dependency 'Apollo/WebSocket', :git => 'https://github.com/apollographql/apollo-ios'
 #    
 #  -------------------------------------------

Я успешно использовал его в качестве Pod в одном из моих проектов iOS.Но теперь, когда я сам создаю капсулу, я изо всех сил пытаюсь понять, что я должен сделать, чтобы она заработала.

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 18 апреля 2019

Похоже, что в PodSpec нельзя определять зависимость следующим образом.Пожалуйста, обратитесь к руководящему документу CocoaPod по Зависимость

Кажется, он должен содержать только информацию о версии, как указано ниже.Другие форматы не допускаются.

enter image description here

1 голос
/ 19 апреля 2019

Решено!

Оказывается, что документ проекта Podfile играет главную роль во всем этом.Я нашел его в папке /Example указанного проекта.Я сделал следующее:

use_frameworks!
source = 'https://github.com/apollographql/apollo-ios'
source = 'https://github.com/apollographql/apollo-ios'

target 'MyPodName_Example' do

  pod 'Apollo'
  pod 'Apollo/WebSocket'
  pod 'MyPodName', :path => '../'

  target 'MyPodName_Tests' do
    inherit! :search_paths


  end
end

(я не совсем уверен, нужны ли мне обе строки source, но все работает так)

Затем я запустил pod install в каталоге /Example.

После этого я вернулся к своему файлу MyPodName.podspec и отредактировал зависимости, чтобы он выглядел следующим образом:

  s.dependency 'Apollo'
  s.dependency 'Apollo/WebSocket'

Затем я запустил pod lib lint MyPodName.podspec накорневой каталог (где находится мой .podspec файл), и на этот раз это удалось.


УВЕДОМЛЕНИЕ:

  • Мне нужны оба Apolloи Apollo/WebSocket зависимости.
  • Я еще не нажал свой Pod и не могу гарантировать, что все это на 100% правильно
  • Я новичок в CocoaPods, так что это может быть ненаиболее оптимальное решение проблемы.
0 голосов
/ 13 июня 2019

В соответствии с этим CocoaPods / проблемы / 2485 , CocoaPods / проблемы / 922 , podspecs не может указать источник зависимостей сейчас.

Альтернатива:

Для публичного репо :

Просто используйте s.dependency 'Apollo/WebSocket', '~> 0.0.1' напрямую.

Если вы указываете личный репо

Не стесняйтесь следовать этому шагу блога , чтобы создать (pod repo push) личную библиотеку. Тогда вы сможете указать свой частный проект, используя s.dependency 'YourPrivateProjectName', '~> 0.0.1'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...