【问题标题】:Including localized xib files in a private cocoapod在私有 cocoapod 中包含本地化的 xib 文件
【发布时间】:2014-09-02 16:17:22
【问题描述】:

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

我正在努力解决的是我需要在 cocoapod 中包含本地化的 xib。我有一个 LoginView,它是我们许多内部应用程序之间的共享代码。但是,我们有视图的本地化版本。据我所知,由于 cocoapods 使结构变平的方式,它只是复制了本地化的 xib,这导致 *.lproj 目录丢失。然后,当我尝试使用 cocoapod 时,无论设备上的语言设置如何,它似乎都会拿起第一个 xib。

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

谢谢

【问题讨论】:

标签: ios localization xib cocoapods


【解决方案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 的新文件夹。 请注意,如果您在库项目中添加新文件,请务必再次更新 pod。

和平。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-11
    • 2012-02-05
    • 1970-01-01
    • 2013-08-27
    • 2012-11-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    相关资源
    最近更新 更多