【发布时间】:2018-01-12 04:28:18
【问题描述】:
我有一个生成 iOS 框架的 Xcode 项目。我想要生成两个版本的二进制文件 - 一种供内部使用,没有许可要求,另一种供外部使用,有许可要求。
我想我会为此设置两个目标,使用不同的 swift 定义来打开许可。
但似乎我必须生成具有不同名称的框架,这会导致在其他项目中使用 import 时出现问题。我必须使用一个名称或另一个名称。
有没有办法可以生成两个具有相同名称的目标 - 如直接生成二进制文件的位置?
【问题讨论】:
我有一个生成 iOS 框架的 Xcode 项目。我想要生成两个版本的二进制文件 - 一种供内部使用,没有许可要求,另一种供外部使用,有许可要求。
我想我会为此设置两个目标,使用不同的 swift 定义来打开许可。
但似乎我必须生成具有不同名称的框架,这会导致在其他项目中使用 import 时出现问题。我必须使用一个名称或另一个名称。
有没有办法可以生成两个具有相同名称的目标 - 如直接生成二进制文件的位置?
【问题讨论】:
解决方案是进入每个单独的目标,并按以下方式更改它们:
1) 确保目标的产品名称是我想要的名称(而不是 $(TARGET_NAME)
2) 在“per-configuration Build Products Path”中,为目标添加一个目录(即一个是“license”,另一个是“internal”。这会将框架放在那个目录中,这样它们就可以是相同的名称。
我已经构建了这两个框架,并将生成的框架拖到我的应用项目中,我可以看到它们工作正常。
【讨论】:
感谢乔的提问和回答。
我只想补充一点,使用 Xcode10 我无法将框架从根目录移动到文件夹层次结构中的指定组(嵌入二进制文件添加了对项目根目录的引用)。 相反,我必须构建这两个框架并将它们拖放到各自的组中。这给我带来了一个问题,因为我必须模块化一个整体并分离 UI 组件。在编写 UI 和在设备上进行测试时,手动构建框架和拖放需要时间。对于遇到相同问题的任何人,我建议使用构建脚本将框架复制到他们的位置,这样可以节省时间。
【讨论】: