将本地化的xib文件包含在私有cocoapod中

时间:2014-07-11 23:05:26

标签: ios localization xib cocoapods

所以我认为这应该是非常容易的但是经过一天的谷歌搜索和玩耍后,我似乎仍然无法正常工作。我有一个私人cocoapod从私人git存储库下载代码。这一切都设置好了。

我挣扎的是我需要在cocoapod中包含本地化的xib。我有一个LoginView,它是我们许多内部应用程序的共享代码。但是,我们有本地化版本的视图。从我所知道的,由于cocoapods扁平化结构的方式,它只是复制本地化的xib,导致* .lproj目录丢失。当我尝试使用cocoapod时,无论设备上的语言设置如何,它似乎都会拾取第一个xib。

我希望有人可以指导我如何保留文件夹heirachy,或者是否有另一种方法将本地化的xib包含在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

由于

1 个答案:

答案 0 :(得分:1)

我想你可能会追随"发展荚"。

所以我有两个项目,一个图书馆项目和一个特定于应用程序的项目。 在我的库项目中,我有一个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" => "my@email.com" }
    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

然后在我的特定应用项目的Podfile中......

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

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

现在,当我运行" pod update"对于我的特定应用程序项目,我可以在Pod项目下看到而不是在Pods下,我有一个名为Development Pods的新文件夹。 请注意,如果您在Library项目中添加新文件,请务必再次更新pod。

和平。