Добавление толстого бинарного фреймворка в хранилище Artifactory Cocoapods - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь развернуть толстый двоичный файл .framework в хранилище Artifactory Cocoapods, но получаю сообщение об ошибке разбора podspec, показанного в журналах Artifactory во время развертывания файла .tar.gz.

Шаги для воспроизведения:

  1. Сжатая папка, содержащая FRAMEWORK.framework и FRAMEWORK.podspec, в файл FRAMEWORK.tar.gz (как описано в письменной документации и показано в видеоруководстве ).
  2. Развертывание модуля FRAMEWORK.tar.gz до экземпляра Artifactory с использованием сценария curl, описанного в разделе «Настройка»:

    curl -u<USER>:<PASSWORD> -XPUT https://<COMPANY>.jfrog.io/<COMPANY>/cocoapods-local/<FRAMEWORK>/<VERSION>/ -T <FRAMEWORK>.tar.gz.

В локальном репозитории cocoapods не было автоматически помещено FRAMEWORK.podspec в папку .specs, как показано в видеоурок. В системных журналах от Artifactory есть строки с ошибкой:

2019-01-14 20: 16: 29,717 [http-nio-8081-exec-79] [INFO] (o.a.e.UploadServiceImpl: 376) - Развернуть в 'cocoapods-local: FRAMEWORK / FRAMEWORK.tar.gz' Длина содержимого: 27614214

2019-01-14 20: 16: 30,278 [http-nio-8081-exec-79] ОШИБКА - Ошибка при извлечении метаданные из модуля: невозможно проанализировать спецификацию.

Однако FRAMEWORK.podspec прошел проверку, когда я использовал pod spec lint из терминала. FRAMEWORK.podspec -

Pod::Spec.new do |s|
  s.name = "<FRAMEWORK>"
  s.version = "<VERSION>"
  s.ios.deployment_target = '9.0'
  s.summary = "<Framework>"
  s.description  = <<-DESC
                   <FRAMEWORK>
                  DESC

  s.homepage = "http://www.<COMPANY>.com"
  s.license      = { :type => 'proprietary', :text => <<-LICENSE
                     This software is only permitted to be used
                     by employees of <COMPANY> or
                     of its partners.
                     LICENSE
                   }
  s.author = { "company" => "techadmin@company.com" }
  s.source = { :http => "https://<COMPANY>.jfrog.io/<COMPANY>/cocoapods-local/<FRAMEWORK>/<VERSION>/<FRAMEWORK>.tar.gz", :type => 'tgz'}
  s.preserve_paths = "<FRAMEWORK>.framework*"
  s.vendored_frameworks = "<FRAMEWORK>.framework"
end

1 Ответ

0 голосов
/ 03 апреля 2019

Прошел через ту же проблему в течение нескольких дней!

Наконец-то обнаружил, что .tar.gz, который я генерировал на моей машине MacOS, использовал bsd tar (поставляется с ним по умолчанию). Выполнение тех же команд с машины Linux работало!

Тот, кто работает, это GNU Tar. Установите его, используя «brew install gnu-tar»

Ссылка для использования GNU tar: https://medium.com/@fullsour/installing-gnu-tar-on-mac-827a494b1c1

Тогда капсулу отправят в артефакт Jfrog! : D

...