很抱歉Noob的问题,但我很难弄清楚这些是如何组合在一起的。
我创建了一个带有pod lib create的pod。我现在有了目录结构,并将我的类放入了Pod / Classes。
听起来像来自doc,我应该运行pod install或pod update以便能够在开发模式下使用我的pod。我期望它会创建如何使用Development Pod中提到的符号链接。
我有点被困在这里 - 我错过了什么?我如何开始使用Xcode来测试我的库?
由于
答案 0 :(得分:1)
使用
创建示例项目时pod lib create MyLib
CocoaPods创建了两个文件夹,一个名为Example
,Pod
,第一个是您的演示应用所在的文件夹,是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
文件夹中的演示项目取决于它。
完成所有这些细节之后,解决方案:
Pods/Development Pods/MyLib
,右键单击MyLib,将文件添加到“Pods”... ,添加一些.h / .m到Pod/Classes
(这很重要)
... 或强> ... Pod/Classes
。 在终端中转到示例文件夹并更新窗格:
cd MyLib/Example
pod update
现在您可以使用#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文件并链接到您的app二进制文件,标题(.h)文件通过以下方式聚合到文件夹符号链接和该文件夹被附加到其他C标志,因此它们可以通过#import <%header%.h>
获得。这就是为什么你不会找到用“:path”关键字声明的pod的任何.m符号链接,因为.m文件在Pods项目目标的位置直接引用。