具有依赖性的私有CocoaPod规范无法找到依赖项

时间:2015-08-31 17:08:23

标签: objective-c cocoapods dependency-management

我试图部署一个私有的CocoaPod,而且我遇到了一个令人困惑的问题,我的框架的依赖图。我无法让我的代码从其中一个依赖项中找到一个必要的类 - RestKit,具体而言。

我首先运行pod lib create来创建框架,然后将RestKit添加为其.podpsec文件中私有CocoaPod的依赖项。在我引用RestKit中的一个特定类之前,一切似乎都工作正常,除非我使用@import语句,否则它似乎无法找到。

我已经尝试了以下所有内容,但没有一个可以使用:

#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

1 个答案:

答案 0 :(得分:1)

您应为version指定development targetPod

s.ios.deployment_target = '7.0'
s.platform = :ios, '7.0'

此外,您必须更改代码中的import语句,因为它将被解释为moduleuse_frameworks!中的pod file),这就是您无法使用的原因#import了。

如果您遇到“non modular include”,则需要在Podspec中设置该属性:

s.xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'}