通过 Cocoapods 中的开发 pod 功能测试静态框架

Posted

技术标签:

【中文标题】通过 Cocoapods 中的开发 pod 功能测试静态框架【英文标题】:Testing static framework via development pod feature in Cocoapods 【发布时间】:2021-10-31 07:19:41 【问题描述】:

我有一个用 Swift 编写的框架。我通过 Cocoapods 将它作为静态二进制框架分发。我也有一个使用该框架的应用程序,并将该框架开发为 开发 pod

最近我不得不添加 OpenCV 作为框架的依赖项和一个 Objective-C Wrapper 类,以便能够从 Swift 代码中使用 OpenCV。由于pod install 步骤上的“静态转换依赖”错误,我不得不将spec.static_framework = true 行添加到我的podspec。错误消失了,但我还有一个错误——Swift 语法有 100 多个错误。

如果将框架编译为二进制文件并从另一个存储库安装为通常的 pod,而不是开发 - 一切都很好。但我需要进行更改并实时测试它们,而不是每分钟编译和上传二进制文件。

非常感谢任何关于如何通过 development pod 功能测试 静态框架 的建议。

【问题讨论】:

【参考方案1】:

这可能不是最好的解决方案(它也不使用开发 pod),但至少当我必须一起调试我的框架和我的应用程序时它对我有用(这是一种类似的情况,因为应用程序通常使用框架为 cocoapod),编辑 Podfile:

use_frameworks!

workspace 'App.xcworkspace'

target 'App' do
  project 'App.xcodeproj'

  # 1 - comment out the normal dependency
  # pod 'MyFramework', '1.9'
end

# 2 - this section is added
target 'MyFramework'
  project '/Users/me/path/to/MyFramework.xcodeproj'
  pod 'DependencyOfMyFramework'
end

然后确保您在 App.xcodeproj 中没有未提交的更改。

关闭 Xcode,运行 pod install,再次打开 xcworkspace,手动添加 MyFrameworkDependencyOfMyFramework 作为应用程序的依赖项(框架、库和嵌入式内容),也许添加一些框架出现错误时的搜索路径。

为我工作,但我知道如果你经常这样做会很不方便。

【讨论】:

感谢您的建议。我会试试的。 哇,它成功了。但似乎没有必要在每次更改时手动添加MyFramework。由于框架的 xcproject 嵌入在应用工作区中,因此它以某种方式提供了嵌入在应用中的已编译框架的实际版本。

以上是关于通过 Cocoapods 中的开发 pod 功能测试静态框架的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 CocoaPods 使用本地项目

iOS 开发之 CocoaPods 安装与使用

如何通过 Flutter 插件使用 cocoapods?

iOS 开发之Cocoapods的使用及制作私有pods

Cocoapods 同一个 pod 文件中的多个库版本

CocoaPods:指向 pod 规范中的一个分支