Cocoa 具有 CocoaPods 依赖项的触控框架

Cocoa Touch Framework with CocoaPods dependencies

我正在尝试创建一个 Cocoa 触控框架

现在,当我尝试构建框架时(我打开 .xcodeproj),每个依赖项都会收到以下警告。

ld: warning: directory not found for option '-F/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/Alamofire'

我收到以下错误:

ld: framework not found Alamofire
error: Resource "/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/FirebaseFirestore/gRPCCertificates-Firestore.bundle" not found. Run 'pod install' to update the copy resources script.

我预计这是因为 CocoaPod 文件没有复制到正确的位置。那是对的吗? 无论如何,我该怎么做才能完成这项工作?

我想这样做的原因如下: 我有一个 CocoaPods 项目,它是一个常规 Xcode 项目,只有 Swift 类 和一些视图控制器。我们希望将其作为闭源提供。因此,我希望将此 pod 包含在 Cocoa Touch Framework 中仍会使用户可以使用其 pods 的所有 public 功能。 如果还有其他建议,欢迎提出!

提前致谢。

我得到的第一点是你在 pod 安装后使用了 .xcodeproj。请注意,安装 pods 后,还会创建一个扩展名为 .xcworkspace 的文件,您需要使用此文件打开项目,您以后的工作应在此文件中完成。

好的,所以我在设置时遇到的所有问题似乎都与 Xcode 相关。 基本上我所做的工作如下:

  1. 通过 Xcode 的 File > New > Project ... 创建一个 Cocoa 触控框架。
  2. 使用终端导航到框架的根文件夹(包含 YourFramework.xcodeproj 文件的文件夹)。
  3. 运行 pod init.
  4. 将必要的 CocoaPods 添加到 Podfile.
  5. 运行 pod install.
  6. 确保关闭可能在 Xcode 中打开的 YourFramework-项目。

从这里开始,我的问题开始出现。打开 YourFramework.xcworkspace 有效,但在 Xcode 的左侧导航器中,我只能展开 Pods-项目,而不是 框架-项目;它似乎是空的。建筑也没有用。 要解决此问题(因此,只需按常规步骤解决 Xcode 个问题):

  1. 关闭Xcode.
  2. 删除派生数据。
  3. 再次打开YourFramework.xcworkspace
  4. 清理构建文件夹。

现在它可能会生成,也可能不会。在我的例子中,它没有,并且有 100 多个与 Swift 语言不可用相关的问题。我创建了一个没有任何源文件的框架,只是导入了CocoaPods。要解决此问题,请在至少导入 Foundation.

的框架中创建一个 Swift 文件

现在应该可以构建了。