如何创建cocoapod框架并向其添加文件?

时间:2018-06-02 20:57:22

标签: ios module frameworks cocoapods podspec

我正在创建一个私有pod,并希望将其用作模块。根据{{​​3}}:

  

您要问的第一个问题是您想要构建一个pod的语言。对于这两种选择 CocoaPods会将您的库设置为框架。

事实上,当我运行pod lib create MyLibrary时,他们生成的初始项目模板确实将所有内容都配置为框架,这样我就可以向Development Pods/MyLibrary添加一个类,并访问该类的方法只需使用@import MyLibrary;(或import MyLibrary在Swift中)导入模块,即可从示例项目中获取。

问题在于同一页面告诉我们

  

问题结束后,我们在新创建的项目上运行pod install

一旦我这样做,模块相关文件就消失了,我添加到Development Pods文件夹的所有文件都消失了。不仅如此,框架Target本身已经消失,所以它甚至不仅仅是简单地再添加文件了。

这里有什么正确的方法?我似乎找不到有同样问题的人。

我正在运行Cocoapod v1.5.3

非常感谢任何帮助!

TL; DR:

  1. pod lib create MyLibrary
  2. cd MyLibrary/Example
  3. pod install
  4. 现在注意到项目已经没有模块配置了。我怎么能避免这个?

2 个答案:

答案 0 :(得分:0)

根据同一页面:

  

[!]注意:由于开发包实现的详细信息,当您   将新文件/现有文件添加到Pod / Classs或Pod / Assets或更新您的   podspec,您应该运行pod install或pod update。

根据我的经验,添加新文件时必须非常小心,因为它们最终可能位于与预期Pods/Classes不同的文件夹中。

如有疑问,我转到包含项目的文件夹并搜索丢失的文件,然后将其移至正确的文件夹。

答案 1 :(得分:0)

最重要的是,当您运行 pod install 时,CocoaPods 会查看您的 PodSpec 并且只安装符合 PodSpec 中提到的 source_files 条件的文件,即这些文件需要< /p>

  • 正确的扩展名
  • 正确的路径。

但基本上你必须将文件添加到你想要的确切目录。如果您使用组,它会变得一团糟。因此,不要使用 Xcode 添加新文件,只需使用 Finder 添加新文件,然后运行 ​​pod install

不知道为什么,但如果我添加到在适当目录中有类似文件的同一组中,Xcode 和 CocoaPods 只会将该文件放在顶级目录中。

在完全切线上:

如果您一直使用 :path 在本地指向您的私有 Pod,然后将新文件添加到您的私有 Pod,那么这些新文件不会反映在拉入私有 Pod 的存储库中。它们没有被反映,因为它们的源代码控制来自另一个 git 存储库。

只要您在主应用程序中看到私有 Pod 的新文件并且主应用程序编译,那么您就很好。