【问题标题】:Cocoa Touch Framework with CocoaPods dependencies具有 CocoaPods 依赖项的 Cocoa Touch 框架
【发布时间】:2019-08-07 11:20:01
【问题描述】:

我正在尝试创建一个 Cocoa Touch 框架。

  • 我创建了一个 Cocoa Touch 框架
  • 我跑了pod init
  • 我在其中添加了我们自己的 CocoaPod,它本身也有一些依赖项。
  • 我跑了pod install。

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

ld:警告:找不到选项“-F/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/Alamofire”的目录

我收到以下错误:

ld:找不到框架 Alamofire
错误:找不到资源“/Users/jeroen/Library/Developer/Xcode/DerivedData/OurFramework-culynvrparvtfjbjlitmammotpkf/Build/Products/Debug-iphoneos/FirebaseFirestore/gRPCCertificates-Firestore.bundle”。运行 'pod install' 以更新复制资源脚本。

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

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

提前致谢。

【问题讨论】:

    标签: ios swift xcode frameworks


    【解决方案1】:

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

    【讨论】:

    • 是的,我确实知道这一点。问题是当我打开.xcworkspace 时,Pods 项目是可扩展的,但实际项目不是(仅名称)。似乎在重新启动 Xcode 几次并清理所有内容后,它工作了。所以我想我解决了这个问题。现在我在 CocoaPod 的名称(正在导入的 pod 之一)和框架/项目的名称之间得到了冲突的名称。所以我不能使用import mycocoapod,因为它是我们自己导入的东西。
    【解决方案2】:

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

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

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

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

    现在它可能会构建,也可能不会。在我的情况下,它没有,并且有 100 多个与 Swift 语言不可用相关的问题。我创建了一个没有任何源文件的框架,只是导入了 CocoaPods。为了解决这个问题,在框架中创建一个至少导入 Foundation 的 Swift 文件。

    现在它应该构建了。

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 2015-01-22
      • 1970-01-01
      • 2019-02-14
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      相关资源
      最近更新 更多