具有依赖项的私有 CocoaPod 规范找不到依赖项
Private CocoaPod Spec with Dependency Cannot Find Dependency
我正在尝试部署私有 CocoaPod,但我 运行 陷入框架依赖关系图的一个令人费解的问题。我无法让我的代码从其依赖项之一 - RestKit 中找到必要的 class,具体来说。
我先运行 pod lib create
创建框架,然后在其.podpsec
文件中添加RestKit 作为私有CocoaPod 的依赖项。一切似乎都工作正常,直到我在 RestKit 中引用了一个特定的 class,除非我使用 @import
语句,否则它似乎找不到。
我已经尝试了以下所有包含,并且 none 有效:
#import <RestKit/RestKit.h>
#import <RestKit/ObjectMapping.h>
#import <RestKit.h>
#import <ObjectMapping.h>
#import "RestKit.h"
#import "ObjectMapping.h"
唯一有效的是 @import RestKit.ObjectMapping
。但是,使用此 import/include 语句会导致 pod lib lint
失败,因为它找不到 RestKit。我对在这里还可以尝试什么感到有点困惑。我已经重新制作了 podspec 项目,并且我已经尝试了所有的包含。还有其他人 运行 关注这个问题吗?
编辑:
下面是我的 podspec。
Pod::Spec.new do |s|
s.name = "MyAPI"
s.version = "0.1.4"
s.summary = "My summary here."
s.description = <<-DESC
My description here.
DESC
s.homepage = "http://example.com"
s.license = 'None'
s.author = { "Sean Olszewski" => "sean@somewebsite.com" }
s.source = { :git => "ssh://username@myprivateserver/path/to/private/pod/repo", :tag => s.version.to_s }
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Pod/Classes/**/*'
s.resource_bundles = {
'MyAPI' => ['Pod/Assets/*.png']
}
s.public_header_files = 'Pod/Classes/**/*.h'
s.dependency 'RestKit', '~> 0.25.0'
s.dependency 'RKValueTransformers'
end
您应该为您的 Pod
指定一个 version
和一个 development target
。
s.ios.deployment_target = '7.0'
s.platform = :ios, '7.0'
此外,您还必须更改代码中的导入语句,因为它将被解释为 module
(pod file
中的 use_frameworks!
),这就是为什么您不能不再使用 #import
。
如果您 运行 进入“non modular include
”,您将在 Podspec
:
中设置 属性
s.xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'}
我正在尝试部署私有 CocoaPod,但我 运行 陷入框架依赖关系图的一个令人费解的问题。我无法让我的代码从其依赖项之一 - RestKit 中找到必要的 class,具体来说。
我先运行 pod lib create
创建框架,然后在其.podpsec
文件中添加RestKit 作为私有CocoaPod 的依赖项。一切似乎都工作正常,直到我在 RestKit 中引用了一个特定的 class,除非我使用 @import
语句,否则它似乎找不到。
我已经尝试了以下所有包含,并且 none 有效:
#import <RestKit/RestKit.h>
#import <RestKit/ObjectMapping.h>
#import <RestKit.h>
#import <ObjectMapping.h>
#import "RestKit.h"
#import "ObjectMapping.h"
唯一有效的是 @import RestKit.ObjectMapping
。但是,使用此 import/include 语句会导致 pod lib lint
失败,因为它找不到 RestKit。我对在这里还可以尝试什么感到有点困惑。我已经重新制作了 podspec 项目,并且我已经尝试了所有的包含。还有其他人 运行 关注这个问题吗?
编辑:
下面是我的 podspec。
Pod::Spec.new do |s|
s.name = "MyAPI"
s.version = "0.1.4"
s.summary = "My summary here."
s.description = <<-DESC
My description here.
DESC
s.homepage = "http://example.com"
s.license = 'None'
s.author = { "Sean Olszewski" => "sean@somewebsite.com" }
s.source = { :git => "ssh://username@myprivateserver/path/to/private/pod/repo", :tag => s.version.to_s }
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Pod/Classes/**/*'
s.resource_bundles = {
'MyAPI' => ['Pod/Assets/*.png']
}
s.public_header_files = 'Pod/Classes/**/*.h'
s.dependency 'RestKit', '~> 0.25.0'
s.dependency 'RKValueTransformers'
end
您应该为您的 Pod
指定一个 version
和一个 development target
。
s.ios.deployment_target = '7.0'
s.platform = :ios, '7.0'
此外,您还必须更改代码中的导入语句,因为它将被解释为 module
(pod file
中的 use_frameworks!
),这就是为什么您不能不再使用 #import
。
如果您 运行 进入“non modular include
”,您将在 Podspec
:
s.xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'}