Xcode 7 ibtool错误:部署故事板对iOS 8.0的引用要求您的故事板不共享任何视图控制器标识符

我有一个针对iOS 8和9的iOS应用程序,我正在升级到使用Storyboard引用而不是通过代码的链接。 我已经逐渐转换越来越多的比特,突然间,我开始得到这个编译器错误:

:错误:将故事板引用部署到iOS 8.0需要您的故事板不共享任何视图控制器标识符。 A.storyboard和Z.storyboard都包含一个标识符为“ZNavigationController”的视图控制器。

Z.storyboard绝对包含ZNavigationController ,它应该在那里,但是A.storyboard肯定不包含任何这样的导航控制器。 我已经在文本编辑器中打开了.storyboard文件,并validation了没有提到ZNavigationController

给更多的上下文:

  • A.storyboard有一个A.storyboard的引用,它有一个来自A的viewControllers的手动segue
  • B.storyboard有一个对Z.storyboard的引用 – 它通过B的viewControllers之一的手动segue到达那里

运行转基因种子构build的XCode版本7.0(7A218)

发现问题(我正在使用Xcode 7.1.1)。

在使用产品 – >重构到故事板后,它会创build一个故事板参考,故事板ID与参考ID(属性和身份检查器)相同。

这是一个错误,故事板ID应该是零,只有参考ID应该填充。

在这里输入图像说明

更新#1:使用“重构到故事板”创build多个故事板参考时,它会创build导致此错误的相同对象ID。

更新#2:只要不使用“重构到故事板”function,如果你的目标iOS 8。它创build多个与objectId的双重,这会导致一个错误,如:

 /* com.apple.ibtool.errors */ : error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers. Category.storyboard and Home.storyboard both contain a view controller with identifier "UIViewController-BX3-FJ-k0T". 

我做了更多的挖掘,事实certificate,尽pipeA.storyboard没有任何的故事板ID, B.storyboardZ.storyboard中都有一个控制器,它们都有Z.storyboard的Storyboard ID。 B.storyboard有一个我删除了不正确的ID。

看起来像Xcode错误的(正确)错误A.storyboard而不是B

首先你需要find哪个引用加倍UIViewController-5kv-Ul-Bah – 这是我的错误

按cmd + 3并inputid( 5kv-Ul-Bah )而不用“ UIViewController- ”find加倍的参考

你应该看到这样的东西

在这里输入图像说明

在我的情况下,它是InvitationDetails.storyboard和Location.storyboard

你有2个选项:

选项1 :从故事板中删除故事板参考并添加另一个(使用我的其他说明https://stackoverflow.com/a/33753164/2493555

选项2 :打开新创build的故事板作为源代码

在这里输入图像说明

然后find我们的id并将其更改为另一个像“5kv-Ul-Bahxx” (我添加了xx后缀),但是您需要确保string“5kv-Ul-Bahxx”不存在于项目中(通过按cmd + 3和找)

在这里输入图像说明

  • 点击有问题的故事板参考
  • 打开身份检查员
  • 删除“故事板ID”。

据我所知,没有必要引用一个引用,这似乎是它抱怨的事情。 当您使用“重构到故事板”时,它将故事板ID留在引用中。