ios - 在子项目(框架项目)中使用 3rd 方 pod

标签 ios cocoapods alamofire ios-frameworks

我正在使用 XCode 8 + Swift 3。

我创建了一个名为“MyApp”的新 iOS 项目。

然后,我创建一个名为“MySubProject”的 Cocoa touch framework 项目。 (这个想法是让 MyApp 项目访问 MySubProject 代码。)

它们位于同一级别的文件夹中:

- MyApp/
- MySubProject/

我将MySubProject添加到MyApp项目中,链接了MySubProject框架。一切正常。我的项目结构如下所示:

enter image description here

到这里为止一切正常! (MyApp代码可以访问MyService代码)

现在,我需要 MySubProject 使用 Alamofire 与后端通信。因此,在 MySubProject/ 下,我使用 CocoaPod 设置 Alamofire,这会创建 MySubProject.xcworkspace

我想我需要删除之前的MySubProject.xcodeproj并使用MySubProject.xcworkspace,所以我删除了MySubProject.xcodeproj的引用并将 MySubProject.xcworkspace 添加到 MyApp,它看起来像这样:

enter image description here

如你所见,我现在看不到MySubProject的源代码。

在框架子项目中通过 CocoaPod 使用 Alamofire 或任何第三方库的正确方法是什么?

=====更新====== 我需要将 Alamofire 添加到 MySubProject 中,而不是 MyApp 中。我按照 Alamofire 官网的说明手动将 Alamofire 添加到 MySubProject 中,然后项目结构如下所示:

- MyApp
  - MySubProject.xcodeproj
    -Alamofire.xcodeproj

之后,我可以在MySubProject中访问Alamofire,没有编译错误。但是,当我在模拟器中运行我的应用程序时,出现运行时错误:

Referenced from: /Users/myname/Library/Developer/Xcode/DerivedData/MyApp-hezjlyvzxnavccenabxdepgftbrg/Build/Products/Debug-iphonesimulator/Alamofire.framework/Alamofire
  Reason: image not found

如何解决?

最佳答案

您可以通过三种不同的方式执行此操作。

1) 直接将依赖项添加到您的 MyApp 项目

2) 构建 MySubProject 并将包含依赖项的库添加到 MyApp 项目中。 (假设 MySubProject 将是一个库)

3) 使用自定义 pod 时,您可以在 .podspec 文件中提供依赖项。通过这种方法,我可以导入我自己的库(作为一个 pod),它依赖于其他 Cocoapods。

编辑:仔细查看后,我们得出结论,上述方法不符合 leem.fin 的特定要求。不可能将一个框架包含到另一个框架中。但还有其他两个选择:

1) 除了您的框架外,还运送辅助框架并将其链接到您自己的框架。这样 MySubProject 和 MyApp 都可以链接到该框架。

2) 将源代码直接导入到 MySubProject,以便它们将使用 MySubProject.framework 进行编译,并且只需链接到 MySubProject 的其他目标就可以访问它们。

最简单的方法是将源代码直接导入 MySubProject。如果您不复制资源而是链接到文件夹,则可以在需要获取最新更改时 git update the sources。

关于ios - 在子项目(框架项目)中使用 3rd 方 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281648/

相关文章:

ios - 有什么方法可以在运行时按 UITableView 中的属性对项目进行分组?

macos - 使用 Swift 使用 MASShortcut 进行简单回调

ios - 找不到 AFHTTPClient.h 文件

swift - 使用 Alamofire Swift3 发送复杂参数获取状态代码 500 错误

ios - Alamofire:参数未传递到服务器

iphone - iOS 中如何判断一个简单的 png 动画何时完成?

ios - NSNotificationCenter AppDelegate post通知问题

ios - 我可以为警报 Controller 添加长按事件吗

ios - 一旦安装到 Xcode 项目中就无法使用 cocoa pod 模块

ios - alamofire post 方法中的 response.result.value 为 nil