Cocoapod pod только для указанной платформы

У меня есть проект Xcode с несколькими целями. Одна из этих целей нацелена на платформу tvOS. Другие мои цели используют фреймворк youtube-iso-player-helper, который не поддерживает tvOS. Я хочу иметь подфайл Cocoapod, который включает фреймворк плеера только на iOS.

Вот мой текущий подфайл:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '8.0'
platform :tvos, '9.0'

use_frameworks!

pod 'SVGgh'

pod "youtube-ios-player-helper", "~> 0.1"

xcodeproj 'MyProject.xcodeproj'

Когда я пытаюсь обновить свои модули, я получаю следующую ошибку:

[!] Платформа целевой Pods (tvOS 9.0) несовместима с youtube-ios-player-helper (0.1.4), который не поддерживает tvos.

Очевидно, здесь используется текущая версия Cocoapods.

Итак, мне нужно знать синтаксис, необходимый для моего подфайла.


person Glenn Howes    schedule 18.10.2015    source источник


Ответы (4)


Мне кажется, это работает:

target 'iOSAppTarget' do
  platform :ios, '8.0'
  pod 'PodForiOS'
end

target 'TVAppTarget' do
  platform :tvos, '9.0'
  pod 'PodForTV'
end
person Claes    schedule 02.11.2015
comment
Xcode 8.3.3 »Я добавил цель tvOS перед выполнением 'pod init', и в файле Podfile автоматически были обнаружены обе цели ... - person August; 15.08.2017

Только что столкнулся с похожей проблемой, и я исправил ее с помощью этого шаблона:

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

def shared_pods
    pod 'SVGgh'
end

target 'myiOSTargetName' do
    platform :ios, '8.0'
    use_frameworks! 
    shared_pods
    pod "youtube-ios-player-helper", "~> 0.1"
end

target 'mytvOSTargetName' do
    platform :tvos, '9.0'  
    use_frameworks! 
    shared_pods
end

Я не тестировал, но надеюсь, что это поможет! Ваше здоровье

person TurboManolo    schedule 14.01.2016
comment
Спасибо, я попробую, когда вернусь домой. - person Glenn Howes; 14.01.2016
comment
На самом деле, я только что отредактировал свой ответ, чтобы он соответствовал тому, что должно быть правильно. Я считаю, что это проблема стручков какао. Взгляните на эту ветку github.com/CocoaPods/CocoaPods/issues/ Я собираюсь обновить какао-стручки до версии 1.9 beta и посмотреть, исправлено ли это - person TurboManolo; 14.01.2016

На самом деле это не только ваш подфайл, но и создатель модуля должен включить Apple TV. Вы можете прочитать об этом здесь, http://blog.cocoapods.org/CocoaPods-0.39/.

person CodyMace    schedule 11.02.2016
comment
Я думаю, вы неправильно поняли вопрос. Мне не нужен помощник YouTube в tvOS, но он мне нужен на iOS. Таким образом, мне нужны разные наборы фреймворков. - person Glenn Howes; 12.02.2016

У меня аналогичная проблема, но с фреймворком. Попробуйте использовать target и link_with для установки модуля для конкретной цели:

target :tvos, :exclusive => true do
    use_frameworks!
    link_with 'AppName'
    pod "youtube-ios-player-helper", "~> 0.1"
end
person Dima Cheverda    schedule 18.10.2015
comment
Нет, не работает. [!] Невозможно найти цель с именем ios - person Glenn Howes; 19.10.2015
comment
link_with устарел в CocoaPods 1.0 - person Rivera; 28.07.2020