Подфайлы с поддержкой iOS и OSX
Я пытаюсь настроить CocoaPods с унаследованным проектом с iOS и целями OSX.
Если в верхней части моего подфайла я указываю:
platform :osx, '10.9'
и, в качестве примера, укажите pod like CorePlot:
pod 'CorePlot'
Затем, после a pod update
, я вижу специфические для Mac источники в каталоге Pods:
Pods/CorePlot/framework/MacOnly
что хорошо, за исключением того, что если я должен был указать :ios
как platform
, то я вижу:
Pods/CorePlot/framework/iPhoneOnly
и я не вижу каталог MacOnly
.
CorePlot podspec определяет эти каталоги на основе платформы, поэтому они отображаются по-разному на основе выбранной мной платформы. Тем не менее, я хотел бы иметь возможность работать под Podfile для моих целей iOS и OSX.
Я продолжил и подумал, что я могу указать платформу на основе цели в моем проекте и опустить объявление платформы верхнего уровня:
target "OSX" do
platform :osx, '10.9'
end
target "iOS" do
platform :ios, '7.0'
end
Однако, как только я снова сделаю pod update
, теперь я получаю ошибку совместимости версий:
[!] Платформа target Pods
(OS X) не совместима с CorePlot (1.5.1)
, которая имеет минимальное требование iOS 3.1.3 - OS X 10.5. "
Что бы показалось, что CocoaPods не распознает информацию о версии в моем целевом блоке.
И, если я добавлю платформу на верхний уровень, помимо целевой целевой платформы, я получаю только код для той платформы, на которой указана платформа верхнего уровня.
Я вынужден иметь два отдельных проекта? Один для iOS и один для Mac OS X, или есть способ сделать это?
Большое спасибо,
Леви
CocoaPods : 0.31.1
Ruby : ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
RubyGems : 2.0.3
Host : Mac OS X 10.9.2 (13C64)
Xcode : 5.1.1 (5B1008)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib Repositories : master - https://github.com/CocoaPods/Specs.git @ bf6ff4b23c2e8b9e5fe5840eddfc3bad122eb932
Ответы
Ответ 1
На основе https://github.com/CocoaPods/CocoaPods/issues/2043#issuecomment-59295308
def import_pods
pod 'CorePlot'
end
target :ios do
platform :ios, '7.0'
import_pods
end
target :osx do
platform :osx, '10.9'
import_pods
end