Noob试图创造一个Cocoapod - 不是很成功

时间:2014-10-11 11:35:08

标签: cocoapods

很抱歉Noob的问题,但我很难弄清楚这些是如何组合在一起的。

我创建了一个带有pod lib create的pod。我现在有了目录结构,并将我的类放入了Pod / Classes。

听起来像来自doc,我应该运行pod install或pod update以便能够在开发模式下使用我的pod。我期望它会创建如何使用Development Pod中提到的符号链接。

我有点被困在这里 - 我错过了什么?我如何开始使用Xcode来测试我的库?

由于

1 个答案:

答案 0 :(得分:1)

使用

创建示例项目时
pod lib create MyLib

CocoaPods创建了两个文件夹,一个名为ExamplePod,第一个是您的演示应用所在的文件夹,是pod try MyLib下载的文件夹。 Pod文件夹是 pod文件的文件夹,Pod/Classes用于.h和.m,Pod/Assets用于图片,笔尖和其他资源。

- [MyLib]
-- [Example] // demo project
--- MyLib.xcworkspace
-- [Pod]     // pod files, Podspec is looking at
--- [Classes] // .h, .m
--- [Assets]  // resources, .png/.xib etc
-- Podspec

此外,它还为您的lib创建了Podspec,您应该对其进行编辑以使其包含正确的信息,默认情况下,它配置为使用来自Pod/Classes的所有.h / .m和来自Pod/Assets的.png。这很重要,因为Example文件夹中的演示项目取决于它。

完成所有这些细节之后,解决方案:

  1. 打开MyLib.xcworkcpace
  2. a)将Project Navigator中的组/文件树展开至Pods/Development Pods/MyLib,右键单击MyLib,将文件添加到“Pods”... ,添加一些.h / .m到Pod/Classes(这很重要) ... ...
    b)手动将.h / .m复制到Pod/Classes
  3. 在终端中转到示例文件夹并更新窗格:

    cd MyLib/Example pod update

  4. 现在您可以使用#import <someFile.h>导入这些文件。

  5. 这是如何工作的?

    CocoaPods使用你的Podspec告诉它从Pod/Classes获取文件并将其符号链接到你的Example/MyLib项目的Pods项目。在为示例项目生成的Podfile中,您可以看到以下行:

    target 'MyLib', :exclusive => true do
      pod "MyLib", :path => "../"
    end
    

    注意:path关键字,这意味着,pod MyLib将使用其中的规则从路径中的podspec本地获取,并且不要与远程源混乱。换句话说,它会找到你的Podspec,调查所需的文件是Pod/Classes而不是获取你的git存储库,它只是将它们符号链接到你的Pods项目。因此,您可以根据需要编辑它们,并根据需要执行pod update,因为它只是对您编辑过的文件进行符号链接。唯一的问题是,如果您需要pod update添加更多文件,那么它们将被符号链接并添加到适当的pod目标中。

    请注意,CocoaPods创建“Pods”项目,其中包含每个引用pod的目标,来自pod的所有.m文件都编译为.a文件并链接到您的app二进制文件,标题(.h)文件通过以下方式聚合到文件夹符号链接和该文件夹被附加到其他C标志,因此它们可以通过#import <%header%.h>获得。这就是为什么你不会找到用“:path”关键字声明的pod的任何.m符号链接,因为.m文件在Pods项目目标的位置直接引用。