2015-02-26 1 views
0

Я пишу Swift Framework и приложение Swift iOS, и я пытаюсь использовать Cocoapods для добавления моей фреймворк в свое приложение и другие sdks.Локальные CocoaPods, мешающие другим контейнерам

Вот мой podspec для моих быстрых рамок

Pod::Spec.new do |s| 
    s.name   = "InfraCocoa" 
    s.version  = "0.0.1" 
    s.summary  = "A short description of InfraCocoa." 
    s.license  = "MIT" 
    s.author    = { "" => "" } 
    s.platform  = :ios 
    s.ios.deployment_target = "7.0 " 
    s.source_files = "Classes", "Classes/**/*.{swift,h,m}" 
end 

Моего стручок podfile для моего IOS приложения

target 'CocoaProjectTest' do 

pod 'InfraCocoa', :path => '~/Documents/workspaces/CocoaPodsTesting/Infra/InfraCocoa' 
pod 'CrashlyticsFramework', '2.2.5.2' 
pod 'GoogleTagManager', '3.09' 
pod 'Google-Mobile-Ads-SDK', '7.0.0' 
pod 'Facebook-iOS-SDK', '3.23.0' 
pod 'AFNetworking', '2.5.1' 

end 

Теперь на первом, если я запустить «стручок установить» или «стручок обновление» все работает отлично. Проблема в том, что я пытаюсь построить Xcode (6.1.1). Я получаю ошибку компиляции, говоря вещи, как этот «_sqlite3_close», ссылка из:

-[TAGDataLayerPersistentStoreImpl closeDatabase] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o) 


(maybe you meant: _fbdfl_sqlite3_close) 

После нескольких Google поисковых запросов, которые я нашел это потому, что мой GoogleTagManager отсутствует в библиотеках «libz.dylib» и «libsqllite3.dylib 'в его' Link Binary With Libraries '. Я могу вручную добавить их, и он будет компилироваться, хотя это не идеально.

Я решил проверить без следующей строки в моей podfile и компилирует

pod 'InfraCocoa', :path => '~/Documents/workspaces/CocoaPodsTesting/Infra/InfraCocoa' 

Я полагал, что это был, вероятно, из-за конфликтом в версии библиотеки, но это InfraCocoa рамка абсолютно чистая и пустая (сделал файл -> New-> Project -> CocoaTouch Framework).

Любые идеи? (проект приложения тоже пуст и чист)

ответ

2

Я думаю, вы могли бы переопределить GoogleTagManager.podspec в своем подфиле и просто добавить недостающие библиотеки в вашу модифицированную версию файла.

что-то вроде:

pod 'GoogleTagManager', :podspec => './GoogleTagManager.podspec.json' 

и в podspec:

"libraries": ["GoogleAnalyticsServices", "sqlite3", "z"], 

Кажется, что работает с cocoapods 0.36.rc.1

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