用接口控制器重复架构x86_64的符号

我开始用WatchKit开发我的新应用程序。

在WatchKit扩展中,我有2个接口控制器。 当我在这两个接口控制器的两个.h文件中导入我的AppDelegate ,我收到以下错误:

 'Id: 30 duplicate symbols for architecture x86_64' 

这30个符号来自我的appDelegate.h

当我从两个界面控制器的任何一个.h文件中删除“ #Import "AppDelegate.h" ,问题就消失了。

但是,我使用在AppDelegate.h中定义的值出现新问题

最后,我不能在这两个文件中导入AppDelegate.h ,但是如果我没有(这certificate我不导入两次AppDelegate.h )会出现新的问题。

注意:我做了与我的应用程序的iPhone版ViewController一样,一切工作正常。

从问题可能来自哪里的任何暗示?

谢谢

编辑为bgilham

– 看不到“ .m ”文件

– 我不使用-Obj链接器标志

在iOS和WatchKit目标中有不同的名称

我使用相同的常量(在appdelegate.h定义)

我认为这是关系到AppDelegate.h因为它只发生在这个文件,而不是另一个。

几件事情来检查:

  • 确保你没有错误地导入一个.m文件。
  • 检查你可能无意中导入了两次的任何地方。
  • 你正在使用-Objc链接器标志? 这会导致链接器加载库中定义Objective-C类或类别的每个对象文件。
  • 你的iOS目标 WatchKit目标中是否有同名文件?
  • 任何具有相同名称的常量?

我相信你正在使用xcode 6或7.问题是,在这些新版本中,variables的名称必须与每个类不同。

我build议你在名称末尾添加一个不同的数字来replace每个variables名称。