使用 CocoaPods 和 Swift 包管理器设置库

Setting up library with CocoaPods and Swift Package Manager

我在 CocoaPods (BillboardSwiftLibrary) 上创建了一个 swift (iOS/MacOS) 库。通常,它有自己的资产和 类 个包含源文件的文件夹。

我希望我的库支持 Swift 程序包管理器,因此我将源文件从 类 文件夹移动到 pod 外的 Sources 文件夹中。但是,它们仍然可以从 Development pods.

访问

现在我的库不会为 Cocoapods 启动构建,而是为 Swift 包管理器编译,当我 运行 pod lib lint BillboardSwiftLibrary.podspec

ERROR | file patterns: The source_files pattern did not match any file.

从@Larme的评论中,我找到了答案。

在您的 podspec 文件中,将 类 的位置更改为源文件夹。 所以将我的 s.source_files 从 BillboardSwiftLibrary/Classes/**/* 更改为 Sources/**/* 并且 pod lib lint BillboardSwiftLibrary.podspec 工作正常。

我在 Medium 上从头开始写了一篇关于 "Creating iOS framework with CocoaPods, Carthage, SPM support and Travis for running test and Fastlane for release automation" 的长篇文章。希望对你有帮助。

Creating Swift framework is easy but adding CocoaPods, Carthage and Swift Package Manager support at the same time can sounds like scary in the first place. In addition to that adding Travis to run test for all commits and adding Fastlane to automate release processes for all dependency managers looks like a horror movie. But don’t be afraid. After you finished this series, you can easily create your own Swift frameworks that uses all these tools to make it perfect!

Part 1 — Create CocoaPod and release it.: 您将创建自己的 CocoaPod 并发布它。

Part 2 — Add Carthage support: 您在第 1 部分创建和发布的 CocoaPod 将通过 Carthage 安装。

Part 3 — Add Swift Package Manager support:您在第 1 部分创建和发布的 CocoaPod 将通过 Swift 包管理器安装。

Part 4 — Integrate Travis to build example project and run tests for framework:您的框架可以通过 CocoaPods、Carthage 和 Swift 安装,程序包管理器会在每次推送 GitHub 时自动在 Travis 上运行测试。

Part 5 — Integrate Fastlane to automate release processes by running just one line of command.:

每次你想通过 CocoaPods、Carthage 和 Swift 包管理器发布新版本的框架时,你必须执行以下步骤:

1- 实施新版本的更改

2- 运行 测试以确保它们正常工作

3- 提交并推送新版本的更改。

4- 将新版本标记为 git

   git tag 0.1.1
   git push origin 0.1.1

Carthage 和 Swift 包管理器从 GitHub 安装您的框架。如果你正确配置你的框架,它可以在这一步之后通过 Carthage 或 Swift Package Manager 安装。但是,CocoaPods 还有 4 个步骤才能完成发布过程。

5- 增加 podspec 版本 => 即 s.version = '0.1.1'

6- 验证本地 podspec:

pod lib lint ODCustomFramework.podspec

7- 验证 pod 的发布

pod spec lint ODCustomFramework.podspec

8-发布

pod trunk push ODCustomFramework.podspec

Travis 和 Fastlane 集成后,第 2、4、5、6、7 和 8 步是自动化的,每次发布新版本时不再需要重复这些步骤。

1- 实施新版本的更改

2- 提交并推送新版本的更改。

3- Travis 在每次推送后自动运行测试。

4- 运行 按照 fastlane 命令自动执行所有发布过程。 (第 4、5、6、7、8 步)

exec fastlane major | minor | patch