2014-07-11 11 views
7

Quindi immagino che questo dovrebbe essere veramente facile ma dopo una giornata di googling e di gioco non riesco ancora a funzionare. Ho un cocoapod privato che scarica il codice da un repository git privato. Questo è tutto pronto e funziona bene.Includere file xib localizzati in un cocoapod privato

Quello con cui sto lottando è che devo includere xibs localizzati nel cocoapod. Ho un LoginView che è un codice condiviso su un certo numero di nostre app interne. Tuttavia abbiamo versioni localizzate della vista. Da quello che posso dire a causa del modo in cui il cocoapod appiattisce la struttura, copia semplicemente lo xib localizzato che sta causando la perdita delle directory * .lproj. Quando poi provo a usare il cocoapod, sembra che riprenda il primo xib indipendentemente dall'impostazione della lingua sul dispositivo.

Spero che qualcuno possa guidarmi su come mantenere la cartella heirachy o se c'è un altro modo per includere gli xib localizzati nel cocoapod.

# 
# Be sure to run `pod lib lint NAME.podspec' to ensure this is a 
# valid spec and remove all comments before submitting the spec. 
# 
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 
# 
Pod::Spec.new do |s| 
    s.name    = "ios-XX-common" 
    s.version   = "1.0" 
    s.summary   = "XXXXXX" 
    s.description  = "Pod containing common source code used across multiple apps" 
    s.homepage   = "http://www.example.com" 
    s.license   = 'Copyright' 
    s.author   = { xxx } 
    s.source   = { :git => "xxxx:/data/git/ios-xx-common.git", :tag => 'v1.0'} 
    s.platform = :ios, '7.0' 
    s.requires_arc = false 
    s.header_dir = 'ios-xx-common' 
    s.header_mappings_dir = 'CommonSourceCode' 
    s.source_files = "CommonSourceCode/**/*.{h,m}", "CommonSourceCode/CustomUIObjects/**/*.{h,m}", 
        "CommonSourceCode/Data Objects/**/*.{h,m}", "CommonSourceCode/Helpers/**/*.{h,m}", 
        "CommonSourceCode/UID/**/*.{h,m}", "CommonSourceCode/UIViews/**/*.{h,m}", 
        "CommonSourceCode/ViewControllers/**/*.{h,m}" 
    s.resource_bundles = { 'rr-common-xibs' => ['CommonResources/Xibs/*.lproj'], 
         'rr-common-other' => ['CommonResources/Icons/*.*', 'CommonResources/IPhone/*.*', 'CommonResources/IPhoneIPad/*.*', 'CommonResources/Sounds/*.*'] } 
    s.public_header_files = '**/*.h' 
    s.dependencies = { 'Parse-iOS-SDK' => '~> 1.2.19', 'CocoaLumberjack' => '~> 1.7.0', 
    'MBProgressHUD' => '~> 0.8', 'AFNetworking' => '~> 1.0' } 
end 

Grazie

+0

È questo che stai cercando? http://stackoverflow.com/questions/21168826/preserve-folder-structure-cocoa-pods – Rob

+1

Usa 's.resources' – onmyway133

risposta

1

Penso che potrebbe essere dopo "Sviluppo Pods".

Quindi ho due progetti, un progetto di libreria e un progetto specifico dell'app. Nel mio progetto di libreria Ho un file library.podspec

Pod::Spec.new do |s| 
    s.name   = "Library" 
    s.version  = "0.0.1" 
    s.summary  = "Shared library." 
    s.description = "This is an iOS library for shared common code across all apps" 
    s.homepage  = "http://blah.com" 
    s.license  = 'COMMERCIAL' 
    s.author    = { "My name" => "[email protected]" } 
    s.social_media_url = "http://twitter.com/blah" 
    s.platform  = :ios, '8.0' 
    s.source  = { :git => "https://bitbucket.org/blah/library.git", :tag => '0.0.1' } 
    s.source_files = 'Library/Classes/**/*.{h,m}', 'Library/Models/**/*.{h,m}', 'Library/ViewModels/**/*.{h,m}', 'Library/Views/**/*.{h,m}' 
    s.resources = "Library/Images/**/*.png", "Library/Images/**/*.jpg", 'Library/Views/**/*.xib', "Library/Fonts/*.otf" 
    s.requires_arc = true 
    s.framework = 'MapKit', 'CoreLocation' 
    s.dependency 'AFNetworking' 
    s.dependency 'ReactiveCocoa' 
    s.dependency 'JLRoutes' 
end 

Poi nella mia Podfile specifico del progetto app ...

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '8.0' 
link_with 'Myapp', 'Myapp-Tests' 

pod 'Library', :path => '../library/' 

Ora, quando eseguo "aggiornamento pod" per il mio progetto specifico app che posso vedere sotto il progetto Pod invece che sotto Pod, ho una nuova cartella chiamata Pod di sviluppo. Ricorda che se aggiungi nuovi file nel progetto Libreria, assicurati di eseguire nuovamente l'aggiornamento del pod.

Pace.