如何创建一个CocoaPod框架并向其中添加文件?

4
我正在创建一个私有的Pod,并希望它被用作模块。根据CocoaPods.org上的Using Pod Lib Create
第一个问题是要求您选择使用哪种语言来构建Pod。不管你的选择,CocoaPods将把你的库设置为框架。 实际上,当我运行pod lib create MyLibrary时,他们生成的初始项目模板确实已经配置好了一切,以便我可以将类添加到Development Pods/MyLibrary中,并且通过使用@import MyLibrary;(或在Swift中使用import MyLibrary)从示例项目中导入该模块的方法。
问题在于同一页告诉我们:
完成这些问题后,我们在新创建的项目上运行pod install
一旦我这样做,与模块相关的文件就会消失,并且我添加到我的Development Pods文件夹中的所有文件也都消失了。不仅如此,框架目标本身也消失了,因此甚至不能简单地再次添加这些文件。
正确的方法是什么?我似乎找不到有相同问题的人。
我正在运行Cocoapod v1.5.3
非常感谢任何帮助!
简而言之:
  1. pod lib create MyLibrary
  2. cd MyLibrary/Example
  3. pod install
  4. 现在注意到项目不再具有模块配置。我该如何避免这种情况?

模块相关文件是什么意思?库源代码在 podspec 文件中的 source_files 属性中指定。 - Paul Beusterien
@PaulBeusterien 看这张图片 http://jmp.sh/Y8bfI4L,在项目创建后,它就会像那样显示。它在“Support Files”下有这些文件,在“Targets”下你可以看到“MyLibrary”。如果我在该项目上运行pod install,那么该目标和这些文件将会消失(这使得Pod不再作为一个模块工作)。 - Roger Oba
2个回答

1
根据同一页的内容:
[!] 注意:由于开发Pods的实现细节,当您添加新文件/现有文件到Pod/Classes或Pod/Assets或更新您的podspec时,您应该运行pod install或pod update。
根据我的经验,在添加新文件时必须非常小心,因为它们可能会出现在预期的Pods/Classes不同的文件夹中。
如果有疑问,我会进入包含项目的文件夹并搜索缺失的文件,并将其移动到正确的文件夹。

这篇文章确实帮助我弄清楚了为什么我的文件会被删除(将它们移动到MyLibrary/Classes中会使它们重新出现在Xcode中)-但是我创建的任何组仍然会被破坏。当我运行pod install时,所有文件都会被转储到Xcode中的平面文件结构中。有解决方法吗? - stevendesu
1
你应该在Classes文件夹内创建目录,然后它们将成为Xcode中的分组。 - dequin

1
非常重要的一点是,在运行pod install命令时,CocoaPods会查看您的PodSpec文件,并且只会安装符合source_files标准的文件。也就是说,这些文件需要满足以下条件:
  • 正确的扩展名
  • 正确的路径

基本上,您必须将文件添加到要添加的确切目录中。如果您正在使用组,则会出现混乱。因此,不要使用Xcode添加新文件,而是使用Finder添加新文件,然后运行“pod install”。
不确定为什么,但如果我将文件添加到具有适当目录下类似文件的同一组中,Xcode和CocoaPods将只将文件放在顶层目录中。
完全离题:
如果您一直使用“:path”指向本地私有pod,然后向私有pod添加新文件,则拉取私有pod的存储库中不会反映这些新文件。它们没有反映,因为它们的源代码控制来自另一个git存储库。
只要您在主应用程序中看到私有pod的新文件,并且您的主应用程序可以编译,那么就没问题了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接