Как автоматически установить сторонние фреймворки из Podspec - PullRequest
0 голосов
/ 13 февраля 2020

Я новичок в создании своих собственных фреймворков. Я был в состоянии следовать инструкциям в создании Private Pods. Я создал два Repos, один для репозитория Podspecs и один для Pod (PodA), который я пытаюсь сделать. Я выполнил надлежащую передачу PodA в репозиторий Podspecs, надлежащую маркировку и правильный файл Podspecs.

PodA зависит от общедоступной c сторонней платформы. Итак, в моих Podspecs я добавляю

s.dependency 'Alamofire', '~> 5.0.0-rc.3'

в подфайл MainApp

source '<Private Pod URL>'

target 'MyAppName' do   

    use_frameworks!    
    pod 'PodA'

end

Когда я пытаюсь вызвать pod install в каталоге MyAppName, я получаю ошибку

Unable to find a specification for 'Alamofire (= 5.0.0-rc.3)' depended upon by 'PodA'

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

Редактировать: PodA - это фиктивное имя модуля, который я пытаюсь сделать

Редактировать: добавить файл Podspecs. Изменены сводка, описание и домашняя страница

Pod::Spec.new do |s|
  s.name             = 'TestPrivatePod1'
  s.version          = '0.2.2'
  s.summary          = 'Dummy summary.'

  s.description      = <<-DESC
            "Dummy Description."
                       DESC

  s.homepage         = 'http://www.google.com/'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'vicWT' => 'vic@worktable.sg' }
  s.source           = { :git => 'https://github.com/vicWT/TestPrivatePod1.git', :tag => '0.2.2' }

  s.ios.deployment_target = '12.0'


  s.source_files = 'TestPrivatePod1/Classes/**/*'
  s.swift_version = '5'
  s.dependency 'Alamofire', '~> 5.0.0-rc.3'


end

Редактировать: удаленный источник 'https://github.com/Alamofire/Alamofire.git'

Редактировать: Исправить синтаксическую ошибку с s.dependency 'Alamofire', '5.0.0-rc.3 до s.dependency 'Alamofire', '~> 5.0.0-rc.3

Редактировать: Добавить изображения TestPrivatePod1

enter image description here

enter image description here

Ответы [ 3 ]

1 голос
/ 13 февраля 2020

Попробуйте следующее:

pod repo remove master
pod setup
pod update

Также измените свою зависимость в подфайле, как показано ниже.

s.dependency 'Alamofire', '~> 5.0.0-rc.3'

И укажите платформенную версию в вашем подфайле mainApp:

 platform :ios, '10.3'

В случае, если описанное выше не работает, пожалуйста, выполните следующие команды для повторной установки cocoapod:

rm -rf ~/.cocoapods/repos/master

sudo gem install cocoapods

Прокомментируйте pod 'Alamofire', '~> 4.9' из файла подфайла вашего проекта TestPrivatePod1 .

0 голосов
/ 13 февраля 2020

Кажется, вы неправильно понимаете, как все это работает. Cocoapods получает определение модулей из репо spe c, это source в Podfile, и это не хранилище для одного модуля. По умолчанию репо c репо https://github.com/CocoaPods/Specs.git, вам нужно добавить это в ваш Podfile, если вы хотите иметь возможность использовать любые общедоступные c стручки, такие как Alamofire.

Добавление вашего личного репо в качестве URL не имеет смысла, потому что это не репозиторий, содержащий несколько спецификаций, это просто репозиторий для модуля.

Я думаю, что-то вроде этого может работать:

source 'https://github.com/CocoaPods/Specs.git'

target 'MyAppName' do   

    use_frameworks!    
    pod 'PodA', :git => '<Private Pod URL>'

end

Если это не так, тогда вам нужно будет создать свой собственный репозиторий spe c, содержащий определение вашего модуля. Я не буду освещать это, , но об этом много ресурсов.

0 голосов
/ 13 февраля 2020

Можете ли вы попробовать изменить синтаксис, который вы использовали для указания версии зависимости?

На что-то вроде:

s.dependency 'Alamofire', '~> 5.0.0-rc.3'

Обратите внимание на дополнительные символы, используемые перед указанием номера версии ? Cocoapods рекомендует использовать индикатор версии Optimisti c, а именно: ~>

Ссылка

Дайте мне знать, если он все еще не работает ...

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