swift - 如何在我的 macos Swift 框架中 *** 包含 *** 源代码
问题描述
这是针对 macOS 的。请没有特定于 iOS 的答案。
如何在 Xcode 中配置我的 macOS 框架项目以包含/捆绑/打包我的所有源代码,以便所有使用该框架的客户端项目都可以使用它?
编辑 - 我是我自己的框架的客户,我希望能够在使用它进行开发时打开框架源。
打个比方,当您将 Java 库下载为 JAR 时,您通常会在该 JAR 中获得bin和src文件夹,然后 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 框架项目以包含/捆绑/打包我的所有源代码,以便所有使用该框架的客户端项目都可以使用它?
解决方案
一旦你构建了你的框架,你唯一应该看到的是你的框架的公共接口,所有关于你的源文件实现私有方法等的信息都丢失了。
这是因为你编译的东西变成了一个包含你编译框架的 mach-o 文件。您可以检查您的框架以及它的二进制部分。该框架只是一个目录,指向它你可以看到所有包含的资源和那个 mach-o 文件。
您还可以检查 Mach-o 文件,如果您这样做,您会看到大部分信息“丢失”,例如,您会看到所有方法名称和类都已损坏。
如果您想分享您的源代码,只需分享它,他们可以将您的框架项目集成到他们的项目中,在这种情况下,他们将能够直接引用您的源文件。或者您可以使用诸如 cocoa pods 之类的依赖管理器,基本上共享您的源代码并简化集成过程。
推荐阅读
- rest - 使用 GraphQL 将 GET 与请求正文一起使用
- react-native - 我无法使用反应导航标签栏。这个怎么用?
- xslt - XSL 使用替换和匹配来更新值
- google-sheets - 条件格式 - 忽略空白单元格和特定值
- javascript - 为什么即使我有条件地渲染组件,道具也未定义?
- python - 有没有更好的方法从列表中检索日期时间对象?
- python - 如何从由制表符和换行符分隔的数据字符串创建 dask 数据帧
- r - 在 R 中使用 dplyr 过滤时返回整个组
- excel - 具有 VLOOKUP 功能的 ComboBox-Textbox 链接值仅保留某些特定范围(不是所有范围)
- spring-mvc - 如何在配置类中使用 RedisMessageListenerContainer