iOS内部podspec安装未安装外部Pod

iOS内部podspec安装未安装外部Pod,ios,xcode,cocoapods,Ios,Xcode,Cocoapods,我正在编写一个iOS库,它使用诸如Restkit之类的外部库。在我的lib中一切都很好,但是当我在使用Pods的其他项目中导入它时,只导入我的源代码。这意味着我没有像Restkit那样的外部依赖 我在我的podspec文件中添加了:s.dependency“Restkit”~>0.24.0 但我看不出有什么不同。我觉得我错过了什么,有人能帮我吗 问候 编辑 SDK podspec文件(重要部分): 以及我的应用程序中的播客文件 target 'bee' do pod 'bee-ios-s

我正在编写一个iOS库,它使用诸如Restkit之类的外部库。在我的lib中一切都很好,但是当我在使用Pods的其他项目中导入它时,只导入我的源代码。这意味着我没有像Restkit那样的外部依赖

我在我的podspec文件中添加了:s.dependency“Restkit”~>0.24.0

但我看不出有什么不同。我觉得我错过了什么,有人能帮我吗

问候

编辑

SDK podspec文件(重要部分):

以及我的应用程序中的播客文件

target 'bee' do
    pod 'bee-ios-sdk' # Private pod repository containing the podspec above
end
希望能有帮助

编辑2

$ pod install
Analyzing dependencies
Downloading dependencies
Installing bee-ios-sdk (0.0.1)
Generating Pods project
Integrating client project
正如你所看到的,我只有我的资料来源。没有RestKit和其他文件的痕迹,这导致我在尝试构建时出现“RestKit/RestKit.h”文件未找到错误。在我的应用程序podfile中添加我的所有SDK依赖项可以解决问题,但这显然不性感。。

我的播客文件顶部没有源“github.com/CocoaPods/Specs.git”?
现在,我的podfile(app)请求一个私有git repo,其中包含.podspec文件,其中包含我的sdk的url。我就是按照这个做的。

CocoaPods是一个非常好用的工具。大多数情况下,您不希望手动导入它生成的项目

要将Pods依赖项添加到项目中,您需要:

  • 确保您拥有最新版本的pod,终端运行:
    sudo gem install cocoapods
  • 在.xcodeproj文件附近的项目目录中创建名为“Podfile”(不带扩展名)的文件
  • 编辑“Podfile”并将此行添加到其中:
    pod'Restkit',“~>0.24.0”
    。有关更多选项,请查看
  • 保存文件
  • 如果Xcode仍然打开,请关闭它
  • 将终端和cd打开到项目目录(“Podfile”所在的位置)
  • 运行
    pod安装
此命令将下载依赖项并在.xcodeproj附近创建.xcworkspace文件。完成运行后-确保打开.xcworkspace文件


现在,您应该能够在您的工作区中看到名为Pods的新项目-这是构建所有依赖项并将其添加到主项目中的地方:

我已经使用Cocoapods构建了几个内部库,虽然我无法立即准确理解您无法正确获取依赖项的原因,但我认为这可能是一个好方法我想概括一下我是怎么做的

总而言之,典型的安装(从头开始)有以下步骤:

  • 将cocopods安装到您的计算机上(
    sudogem安装cocoapods
  • 设置一个私人存储库,用于存放所有CoCoapod
  • 创建一个新的pod规范
  • 运行门楣,然后将您的规格推到repo
  • 步骤1很简单,因此让我们从2开始:

    设置一个私人存储库,用于存放所有CoCoapod 您应该拥有对git位置的推送访问权限,该位置将容纳您的播客。设置此回购后,您可以将其添加到安装中:

    pod repo add internalpods 'github.com/private-cocoapodsspecs.git'
    
    很自然地,我加入了一个伪造的git url

    创建您的第一个规范 创建等级库很容易:

    pod spec create SPEC_NAME
    
    其中SPEC_NAME是您希望调用的SPEC

    我不会在这里详细说明,因为我觉得你的规格不错。然而,我尝试并做的是总是将一个示例项目放在您签出规范的存储库中。cocoapods的一个伟大特性是您可以在本地引用规范。因此,假设我们编写AFNetworking,git中的文件结构可能如下所示:

    AFNetworking
         .git
         AFNetworking.podspec
         AFNetworking/ 
              (All the classes we want in our pods)
         ExampleProject/ 
              (Example project that will use the spec locally)
              podfile
    
    source 'https://github.com/CocoaPods/Specs.git' #include this if you will be referencing any public pods!
    source 'github.com/private-cocoapodsspecs.git' #our internal repo which we don't need yet
    pod 'AFNetworking', :path => '..'
    
    在示例项目的podfile中,我们可以执行以下操作:

    AFNetworking
         .git
         AFNetworking.podspec
         AFNetworking/ 
              (All the classes we want in our pods)
         ExampleProject/ 
              (Example project that will use the spec locally)
              podfile
    
    source 'https://github.com/CocoaPods/Specs.git' #include this if you will be referencing any public pods!
    source 'github.com/private-cocoapodsspecs.git' #our internal repo which we don't need yet
    pod 'AFNetworking', :path => '..'
    
    这可以让你在运行任何安装或推送到服务器之前了解pod是否存在任何问题,所以我非常喜欢这种方法。它还可以让你开发你的pod,并有一个很好的示例项目,你可以随时打开它对pod进行更改或测试新功能

    在您的示例项目中运行
    pod安装
    ,应该可以启动并运行您的pod和所有依赖项。不要忘记,您可以随时将
    --verbose
    添加到安装中

    现在是时候把你的善良送到远方了:

    起绒和推 linter将验证您的规范,以确保其已准备好推送(请注意,我是如何为内部遥控器包含源url的):

    如果这一切都很好,你可以继续努力。我通常喜欢在执行此操作时允许警告,因为我们的内部POD没有许可证,如果您在没有许可证的情况下尝试推送,所有内容都会崩溃:

    pod repo push internalpods SPEC_NAME.podspec --allow-warnings --verbose
    
    查看我如何使用我们在步骤1中设置的internalpods名称


    希望这足够有帮助。

    您可能需要包括您的podspec文件和podfile@DanielGalasko你能理解你的意思吗?我应该在哪里/如何包含这些文件?我的应用程序Podfile中只有pod'mySDK'和运行pod install download.h/m文件,但我的SDK Podfile中没有声明的依赖项。是的,但是你编写了一个自定义的podspec,为什么不在帖子中包含它呢@Majorshepard补充了一些信息,如果你需要更多的信息,我会继续挖掘,这样更好!您还可以在Xcode的文件导航器中列出Pods目录中的内容吗。只是试着去理解是什么让你相信这些依赖性遗漏了答案。这正是我在sdk库中所做的,它工作得非常好。但是,当我想使用这个库(我在另一个项目中作为Pod导入)时,不会下载我放在其中的依赖项(sdk):/这就是我要研究的地方。如果你想将Pod添加到你自己的框架中,请看这里:非常感谢你的解释!一切都在运转,现在我明白了它到底是如何工作的!再次感谢你!:)@这真是个好消息!祝你一切顺利!