2014-06-12 25 views
5

Hi mia cartella di progetto è strutturato in questo modo:Come configurare cocoapod podspec e podfile per questa struttura di progetto?

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

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

mia struttura dipendenze come questo

Apps - dipendono ->AppLib

AppLib - dipenderà ->RestKit e MagicalRecord

Ecco come config il mio file

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 

E qui è il 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 

Alla cartella principale (cartella contiene Podfile) pod install run senza problemi Ma quando ho importare RestKit #import "RestKit.h" o #import <RestKit/RestKit.h> nel mio progetto AppLibs, Xcode dire che il il file non è stato trovato

I miei podfile e podspec sono corretti? Perché xcode afferma che RestKit.h non è stato trovato?

Se voglio creare AppLib separatamente, come estrarre tutte le dipendenze? (pod install non funziona con il file .podspec) ho bisogno di creare un altro file pod nella cartella AppLib?

+0

Si potrebbe provare ad aggiungere la sezione "intestazioni" nel podspec e specificare le intestazioni RestKit e MagicalRecord lì. Anche se penso che CocoaPods dovrebbe gestirlo da solo –

risposta

0

Beh, i miei obiettivi erano

  1. Diamo il lib essere costruito e spedito separatamente
  2. gestire le dipendenze sia l'applicazione e lib con CocoaPods
  3. evitare la duplicazione, per quanto possibile
  4. Usa lib e app da uno spazio di lavoro per eseguire facilmente il debug

Quello con cui ho terminato è

  1. repo git separati per il lib e l'applicazione
  2. Ogni pronti contro termine ha la sua podfile
  3. repo di Lib è un modulo git di uno
  4. progetto di app di Lib è incluso nello spazio di lavoro dell'applicazione
  5. link App la lib in un modo antiquato con 'LIBRARY_SEARCH_PATH', 'USER_HEADERS_SEARCH_PATH'. Per non lasciare che i CocoaPod di mangino la mia struttura di cartelle lib (se si collega lib come pod di sviluppo, lo fa).
  6. Lib ha un podspec messa in vendita di dipendenze, podfile di lib appena afferra dipendenze da lì con il comando 'podspec'
  7. podfile App fa lo stesso (podspec 'lib/Lib.podspec'), in tal modo riferendosi a tutte le dipendenze di la lib.

Ecco, spero che sia d'aiuto.

Problemi correlati