首页 > 解决方案 > 如何在我的 macos Swift 框架中 *** 包含 *** 源代码

问题描述

这是针对 macOS 的。请没有特定于 iOS 的答案。

如何在 Xcode 中配置我的 macOS 框架项目以包含/捆绑/打包我的所有源代码,以便所有使用该框架的客户端项目都可以使用它?

编辑 - 我是我自己的框架的客户,我希望能够在使用它进行开发时打开框架源。

打个比方,当您将 Java 库下载为 JAR 时,您通常会在该 JAR 中获得binsrc文件夹,然后 Eclipse IDE 能够显示源代码。在其他情况下,您可以单独下载源代码,并在 Eclipse 中“链接到源代码”。这就是我想要的。

我在 Google 上进行了大量研究,找到了隐藏源代码的结果,但没有找到显示它的结果。

到目前为止我的进步

我已经成功构建了我的macOS-only Swift 框架,它包含一个公共的 Swift 类,它有一个公共的 init 和所有的函数都是公共的。

我还能够在我的应用项目中成功导入框架的模块,该项目使用框架中的 Swift 类。都好。它编译得很好。

import MyFrameworkModule
let myObject: MyFrameworkClass = MyFrameworkClass()

问题

现在,当我 Cmd+Ctrl+单击 XCode 中的 MyFrameworkClass 时,我希望它从 MyModule 中打开 MyFrameworkClass 的源代码。但是,它会打开一个带有 2 个空行的空白文件,即没有显示源代码。

如何在 Xcode 中配置我的 macOS 框架项目以包含/捆绑/打包我的所有源代码,以便所有使用该框架的客户端项目都可以使用它?

标签: swiftxcodemacosmoduleframeworks

解决方案


一旦你构建了你的框架,你唯一应该看到的是你的框架的公共接口,所有关于你的源文件实现私有方法等的信息都丢失了。
这是因为你编译的东西变成了一个包含你编译框架的 mach-o 文件。您可以检查您的框架以及它的二进制部分。该框架只是一个目录,指向它你可以看到所有包含的资源和那个 mach-o 文件。
您还可以检查 Mach-o 文件,如果您这样做,您会看到大部分信息“丢失”,例如,您会看到所有方法名称和类都已损坏。
如果您想分享您的源代码,只需分享它,他们可以将您的框架项目集成到他们的项目中,在这种情况下,他们将能够直接引用您的源文件。或者您可以使用诸如 cocoa pods 之类的依赖管理器,基本上共享您的源代码并简化集成过程。


推荐阅读