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



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

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

这听起来像是文档中的,我应该运行pod安装或pod更新,以便能够在开发模式中使用我的pod。我希望它能创建在如何使用Development Pod中提到的符号链接。

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

感谢

使用创建示例项目时

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

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

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

  1. 打开MyLib.xcworkcpace
  2. a) 将项目导航器上的组/文件树扩展到Pods/Development Pods/MyLib,右键单击MyLib,将文件添加到"Pods",在Pod/Classes中添加一些.h/.m(这很重要)

    b) 手动将一些.h/.m复制到Pod/Classes
  3. 在终端中,转到示例文件夹并更新pod:

    cd MyLib/Example pod update

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

这是怎么回事

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文件并链接到您的应用二进制文件,头文件(.h)通过符号链接聚合到文件夹中,文件夹被附加到其他C标志,因此它们可以通过#import <%header%.h>使用。这就是为什么你找不到任何用":path"关键字声明的pod的.m符号链接,因为.m文件在它们的位置上被pods项目目标直接引用。

最新更新