【问题标题】:Setting up library with CocoaPods and Swift Package Manager使用 CocoaPods 和 Swift 包管理器设置库
【发布时间】:2019-04-21 21:23:14
【问题描述】:

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

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

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

错误 |文件模式:source_files 模式不匹配任何 文件。

【问题讨论】:

  • s.source_files = 'BillboardSwiftLibrary/Classes/**/*' 应该是 s.source_files = 'BillboardSwiftLibrary/Classes/*' 在“类”和“BillboardManager.swift”等 Swift 文件之间没有文件夹。
  • 这确实有效。非常感谢@Larme

标签: ios swift cocoapods libraries swift-package-manager


【解决方案1】:

我在 Medium 上写了一个关于“使用 CocoaPods、Carthage、SPM 支持和用于运行测试的 Travis 和用于发布自动化的 Fastlane 创建 iOS 框架”的长系列文章。希望对你有帮助。

创建 Swift 框架很容易,但同时添加 CocoaPods、Carthage 和 Swift 包管理器支持一开始听起来很可怕。除了添加 Travis 来对所有提交运行测试并添加 Fastlane 来自动化所有依赖项管理器的发布过程之外,这看起来就像一部恐怖电影。但不要害怕。完成本系列后,您可以轻松创建自己的 Swift 框架,使用所有这些工具使其完美!

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 包管理器安装的框架会自动在 Travis 上运行测试,以便在 GitHub 上进行每次推送。

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

每次你想通过 CocoaPods、Carthage 和 Swift Package Manager 发布你的框架的新版本时,你必须经过以下步骤:

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

【讨论】:

  • 在 SO 上不欢迎仅链接的答案。您应该详细说明您的链接回答问题的原因。还有一件事,您的回答似乎吸引了垃圾邮件标记
  • 我已添加详细信息。你认为呢?现在可以了吗?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2016-09-25
    相关资源
    最近更新 更多