Xcode 使用二进制框架的开发工作流

Xcode development workflow with binary framework

我正在使用 xcframework 来隐藏代码。

所以我有一个 App.xcodeproj 和承包商可见的一个 repo 中的 xcframework。

然后我有另一个私有项目,它包含 App.xcodeproj 中的所有内容,除了将框架项目作为子项目以便于开发(而不是编译的 xcframework)。

除了我必须保持内部(私人)和外部项目同步外,这工作得相当好。承包商对 App.xcodeproj 所做的更改必须手动转移到内部项目,相应地更新路径。

有更好的方法吗?

我通过切换到单独的框架而不是单个 xcframework 并使用 xcworkspace 解决了这个问题。

原来 Xcode 会优先考虑编译框架的隐式依赖。所以我只需要一个(私有)xcworkspace 中的应用程序和框架项目。

我正在使用胖框架方法来支持模拟器,这比使用 xcframework 有点难看。还有一个问题是我在框架中使用 Metal,所以我不得不在模拟器中 运行 时加载一个单独的 Metallib。

也许在某个时候 Xcode 将具有 xcframeworks 的目标类型,以便它可以跟踪隐式依赖项。有关隐式依赖项的更多信息,请参阅