Swift生成的头部有多个目标

时间:2016-03-28 20:50:36

标签: objective-c swift

当有多个具有公共代码的目标时,我无法生成使用ObjC中的Swift类所需的swift头。

我创建了两个目标My OSX AppMy iOS App。这些目标共享公共代码,其中ObjC类正在调用Swift类。

Swift and ObjC in the same project中所述,我可以将#import "My_iOS_App-Swift.h"添加到我的ObjC类中,并从My iOS App目标进行编译。

但是,这不会从My OSX App目标编译,因为include需要匹配模块名称。它正在寻找#import "My_OSX_App-Swift.h"但公共代码不使用包含。{/ p>

在多个目标之间共享的代码中混合/匹配Swift / ObjC的正确方法是什么?我可以手动更改每个目标以使用常见MyApp-Swift.h,但这感觉不对,可能会导致其他问题。

1 个答案:

答案 0 :(得分:3)

将构建设置中的产品模块名称设置设置为模块中的相同

例如:$(PROJECT_NAME)

如果您有针对不同目标的观看扩展程序,请使用固定名称,例如:Main_App和Watchkit

这会导致生成的### - Swift.h文件在所有模块中具有相同的名称。这也消除了添加/检查预处理器微处理器的需要。

来自:Objective C to Swift header file with multiple targets