Cocoapods: pod lint работает, но pod repo pu sh не удается проверить из-за отсутствия versioned_frameworks - PullRequest
0 голосов
/ 17 марта 2020

У меня есть iOS & tvOS Framework, который я пытаюсь опубликовать sh как частный двоичный CocoaPod. Podspe c lint s без ошибок, но отправка его в репозитарий не проходит проверку. Отличается ли шаг проверки при нажатии и при рисовании?

Foo.podspe c

Только соответствующие части:

  spec.name                = 'Foo'
  spec.version             = '0.0.4'
  spec.source              = { :git => 'git@github.com:private-repo/Foo.git', :tag => spec.version.to_s }
  spec.static_framework    = true
  spec.swift_version       = '5.0'
  spec.cocoapods_version   = '>= 1.7.0'

  # Deployment Targets
  spec.platforms = { :ios => "11.0", :tvos => "11.0" }
  spec.ios.deployment_target = 11.0
  spec.tvos.deployment_target = 11.0

  spec.source                  = { :http => "<repo-url>/Foo-#{spec.version}.zip" }
  spec.vendored_frameworks     = 'Build/Products/Debug-iphonesimulator/FooiOS.framework', 'Build/Products/Debug-appletvsimulator/FootvOS.framework'

  # Third-Party Dependencies

  spec.ios.dependency 'GoogleAds-IMA-iOS-SDK', '~> 3.11'
  spec.tvos.dependency 'GoogleAds-IMA-tvOS-SDK', '~> 4.2'

Обратите внимание, что я изменил рабочее пространство создать выходной каталог, который будет локальным для проекта root, а не для папки ~/Library/Developer/Xcode/Derived Data по умолчанию.

pod lib lint

$ bundle exec pod lib lint Foo.podspec --private --allow-warnings --sources=private-repo,master

 -> Foo (0.0.4)
    - WARN  | url: The URL (https://github.com/private-repo/Foo) is not reachable.
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | xcodebuild:  note: Planning build
    - NOTE  | xcodebuild:  note: Constructing build description
    - NOTE  | xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file and one is not being generated automatically. (in target 'App' from project 'App')
    - NOTE  | [iOS] xcodebuild:  ld: warning: building for iOS Simulator, but linking in dylib file (/Users/tibbettsj/Developer/arc-video-sdk-ios/Build/Products/Debug-appletvsimulator/ArcMediaPlayertvOS.framework/ArcMediaPlayertvOS) built for tvOS Simulator
    - NOTE  | [tvOS] xcodebuild:  ld: warning: building for tvOS Simulator, but linking in dylib file (/Users/tibbettsj/Developer/arc-video-sdk-ios/Build/Products/Debug-iphonesimulator/ArcMediaPlayeriOS.framework/ArcMediaPlayeriOS) built for iOS Simulator

Foo passed validation.

(я не конечно, почему сгенерированные CocoaPods цели App связаны с неправильными платформами, но это выглядит как другая проблема.)

pod repo push

$ bundle exec pod repo push private-repo Foo.podspec --private --allow-warnings --sources=private-repo,master

Validating spec
 -> Foo (0.0.4)
    - WARN  | url: The URL (https://github.com/private-repo/Foo) is not reachable.
    - ERROR | file patterns: The `vendored_frameworks` pattern did not match any file.
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | xcodebuild:  note: Planning build
    - NOTE  | xcodebuild:  note: Constructing build description
    - NOTE  | xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file and one is not being generated automatically. (in target 'App' from project 'App')

Поставляемые платформы - это где я говорят, что они:

$ ls Build/Products/Debug-iphonesimulator/FooiOS.framework
ViewController.storyboardc/ Assets.car                  Info.plist                  _CodeSignature/
FooiOS*             Headers/                    Modules/
$ ls Build/Products/Debug-appletvsimulator/FootvOS.framework
ViewController.storyboardc/ Headers/                    Modules/
FootvOS*                Info.plist                  _CodeSignature/

1 Ответ

0 голосов
/ 18 марта 2020

Используйте pod spec lint вместо pod lib lint для тестирования перед публикацией.

Типичная ошибка, которую обнаружит только pod spec lint - забывает обновить тег репо.

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