2014-06-12 12 views
5

Cześć mój folder projekt jest skonstruowany tak:Jak skonfigurować cocoapod podspec i podfile dla tej struktury projektu?

+ Podfile 
+ Apps/ 
    | 
    + Apps.xcodeproj 
    | 
    + Target1/ 
    | 
    + Target2/ 

+ AppLib/ 
    | 
    + AppLib.podspec 
    | 
    + AppLib.xcodeproj 
    | 
    + TargetLib1/ 
    | 
    + TargetLib2/ 

Moja struktura zależności jak to

Apps - zależy ->AppLib

AppLib - zależy ->RestKit i MagicalRecord

Oto jak mogę skonfigurować mój plik podfile podfile

workspace 'MyApp' 
xcodeproj 'Apps/Apps' 
xcodeproj 'AppLib/AppLib' 


def import_pods 
    pod 'AppLib', :path => './AppLib' 
end 

target 'Target1' do 
    platform :ios, '7.0' 
    import_pods 
    xcodeproj 'Apps/Apps' 
end 

target 'Target1' do 
    platform :ios, '7.0' 
    import_pods 
    xcodeproj 'Apps/Apps' 
end 

A oto AppLib.podspec:

Pod::Spec.new do |s| 

    s.name   = "AppLib" 
    s.version  = "0.0.1" 
    s.summary  = "Common library." 
    s.platform  = :ios, "7.0" 
    s.source_files = "Lib/Public/**/*.{h,m}" 
    s.ios.deployment_target = '7.0' 
    s.resources = "Lib/Nibs/**/*.xib" 
    s.requires_arc = true 
    s.dependency 'RestKit', '~> 0.23' 
    s.dependency 'MagicalRecord' 
end 

W folderze głównym (folder zawiera Podfile) pod install prowadzony bez problemu ale kiedy importować RestKit #import "RestKit.h" lub #import <RestKit/RestKit.h> w moim projekcie AppLibs, Xcode powiedzieć, że plik nie został znaleziony.

Czy mój plik podfile i podspec jest poprawny? Dlaczego xcode roszczenia, że ​​RestKit.h nie znaleziono?

Jeśli chcę oddzielnie budować AppLibs, jak pobrać wszystkie zależności? (pod install nie działa z plikiem .podspec) Czy muszę utworzyć kolejny plik podfile w folderze AppLib?

+0

Możesz spróbować dodać sekcję "nagłówków" w swoim podspec i określić tam nagłówki RestKit i MagicalRecord. Chociaż wydaje mi się, że CocoaPods sam sobie z tym poradzi –

Odpowiedz

0

Cóż, moje cele były

  1. Niech lib być budowane i dostarczane oddzielnie
  2. Zarządzanie zależnościami zarówno aplikacji i lib z CocoaPods
  3. uniknąć powielania jak najwięcej
  4. Korzystanie lib i aplikacji z jednego obszaru roboczego do łatwego debugowania:

Co zakończyłem z

  1. Oddzielne repo git dla lib i aplikacji
  2. Każdy repo ma własną podfile
  3. repo lib pokrywa się z modułem git jednego
  4. projektu lib App jest zawarte w aplikacji roboczej
  5. linki App lib w staroświecki sposób z "LIBRARY_SEARCH_PATH", "USER_HEADERS_SEARCH_PATH". Aby nie dopuścić do tego, że CocoaPods łamie moją strukturę folderów lib (jeśli załączysz lib jako dev dev, robi to).
  6. Lib ma podspec listą zależności, podfile lib tuż chwyta deps z tam z polecenia 'podspec'
  7. podfile aplikacji robi to samo (podspec 'lib/Lib.podspec'), a tym samym odnosząc się do wszystkich zależnościach lib.

To wszystko, mam nadzieję, że pomoże.

Powiązane problemy