2015-10-18 2 views
4

Я попытался создать свой первый podspec сочетая ObjC и Swift код, но вскоре я наткнулся uppon упрямая ошибка, что я не могу решить во время загрузкиМожет не Lint/протолкнуть Swift Cocoapods podspec

Копирование MyLibrary из /Users/lukasschwoebel/Library/Caches/CocoaPods/Pods/External/MyLibrary/540307feb534d63ad9015f3f6452b3ad-be661 в ../../../../../../private/var/folders/2p/_pc_vts51b3_pfydgm7_2n200000gn/T/CocoaPods/Lint/Pods/MyLibrary - Запуск предварительно установленных крюков -> MyLibrary (0.1.0) - ОШИБКА | [iOS] Обнаружена неизвестная ошибка (Pods, написанные в Swift, могут быть интегрированы только в качестве фреймворков, эта функция все еще находится в бета-версии. Добавьте use_frameworks! в ваш подфайл или цель, чтобы использовать его. Используется Swift Pod: MyLibrary) во время проверки ,

Вот команда, я использую:

pod repo push test-podspecs MyLibrary/MyLibrary.podspec --use-libraries --allow-warnings --verbose 

Как вы можете видеть, это минимальная нетронутый образец проекта от CocoaPods, как описано здесь: https://guides.cocoapods.org/making/using-pod-lib-create.html Как я не могу даже сделать этот пример работает, Я подозреваю, что что-то не так с моей конфигурацией cocoapods.

Я удостоверился, что нет единственной линии Objective C в контейнере, который должен быть загружен (хотя в конце я хотел бы иметь подспец с комбинированным кодом ObjC и Swift, но в это время я просто хочу есть рабочий подспец с Свифт).

Я не могу даже загрузить этот простой стручок с чистым Swift. Сначала я попробовал CocoaPods v0.39.0, затем был понижен до 0.38.2, а затем 0.38.0, даже 0.36.0. Даже при полной установке CocoaPods.

Кажется, мне нужно настроить что-то в CocoaPods, чтобы иметь возможность загружать Swift podspec? Ошибка, которую я получаю, очевидно, находится во время фазы здания, где Podfile требует use_frameworks! быть включенным. Итак, как я могу заставить CocoaPods использовать его во время компиляции модуля во время проверки podspec?

Кроме того, у меня установлены Xcode 7.0.1 и OSX 10.10.5 и код Swift 2.0.

Спасибо заранее!

Вот полный podspec, адаптировано из оригинала, созданного MyLibrary.podspec (и да, это местный Podspec-Репо, но это не вызывает/изменить ошибку)

Pod::Spec.new do |s| 
    s.name    = "MyLibrary" 
    s.version   = "0.1.0" 
    s.summary   = "A short description of MyLibrary." 
    s.description  = 'Sample Description' 
    s.license   = 'MIT' 
    s.author   = { "Luke A." => "[email protected]" } 
    s.source   = { :git => "file:///Users/.../test/MyLibrary/", :tag => s.version.to_s } 
    s.platform  = :ios, '8.0' 
    s.requires_arc = true 
    s.source_files = 'Pod/Classes/**/*' 
    s.resource_bundles = { 
    'MyLibrary' => ['Pod/Assets/*.png'] 
    } 
    s.frameworks = 'UIKit' 
end 
+0

Чтобы подтвердить, пытаетесь ли вы нажать на частный какао-стручки spec repo или общественный багажник? – esthepiking

+1

Это частное repo коко-порта. Толкание, похоже, не является проблемой, у меня уже есть несколько стручков (печей), но до сих пор они все чисты Objective C. –

ответ

4

Я только что нашел ответ, который кажется немного очевидным.

Команда для загрузки/выталкивания контейнера была в bash-скрипте, поэтому мне не всегда приходилось вводить все флаги, но просто и по имени файла/пути к podspec. Поэтому в bash-скрипте по умолчанию у меня был флаг --use-libraries, который требуется для одного из моих контейнеров.

Как я пытался что-то из и была опечатка в команде pod repo push .. я наткнулся на человека-странице:

--use-библиотеки ЛИНТЕР использует статические библиотеки для установки спецификации

С статическими библиотеками этот флаг, кажется, несовместим с Swift podspecs. Удаление этого флага подчеркивает и подталкивает мой podspec успешно.

Смежные вопросы