Xcode 7 ibtool error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers
Xcode 7 ibtool error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers
我有一个针对 iOS 8 和 9 的 iOS 应用程序,我正在升级它以使用 Storyboard References 而不是通过代码链接。我逐渐转换了越来越多的位,突然我开始收到这个编译器错误:
: error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers. A.storyboard and Z.storyboard both contain a view controller with identifier "ZNavigationController".
Z.storyboard
绝对包含ZNavigationController
,它应该在那里,但是A.storyboard
肯定不包含任何这样的导航控制器。我在文本编辑器中打开了 .storyboard 文件并确认没有提到 ZNavigationController
.
提供更多背景信息:
A.storyboard
有对 B.storyboard
的引用,并且它有来自 A
中的一个视图控制器的手动转场
B.storyboard
引用了 Z.storyboard
- 它通过 B
中的一个 viewController 的手动 segue 到达那里
运行 XCode GM 种子版本 7.0 (7A218)
我做了更多的挖掘,结果发现即使 A.storyboard
没有任何与该情节提要 ID 相关的内容,B.storyboard
和 [=12= 中也有一个控制器] 都有 ZNavigationController
的 Storyboard ID。
B.storyboard
中的 ID 不正确,我已将其删除。
看起来 Xcode 将(正确的)错误归因于 A.storyboard
而不是 B
发现问题(我正在使用 Xcode 7.1.1)。
在使用 Product --> Refactor to storyboard 后,它创建了一个故事板引用,其故事板 ID 与引用 ID(属性和身份检查器)相同。
这是一个错误,故事板 ID 应该为 nil,只应填写参考 ID。
更新#1:
使用 "Refactor to storyboard" 创建多个故事板引用时,它会创建相同的对象 ID,这也会导致此错误。
更新#2:
如果您的目标是 iOS,请不要使用 "Refactor to storyboard" 功能 8. 它会创建多个带有 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".
首先你需要找到哪个Reference被加倍
UIViewController-5kv-Ul-Bah - 这是我的错误
按 cmd + 3 并输入没有“UIViewController-”的 id (5kv-Ul-Bah) 找到双重引用
你应该看到这样的东西
在我的例子中是 InvitationDetails.storyboard 和 Location.storyboard
您有 2 个选择:
选项 1:从故事板中删除 故事板参考 并添加另一个(按照我的其他说明执行此操作 )
选项 2:打开新创建的故事板作为源代码
然后找到我们的 id 并将其更改为另一个像 "5kv-Ul-Bahxx"(我添加了 xx 后缀)但是你需要确保字符串 "5kv-Ul -Bahxx" 在项目中不存在(通过按 cmd + 3 并查找)
- 点击有问题的故事板参考
- 打开身份检查器
- 删除 "Storyboard ID".
据我所知,没有必要引用参考,这似乎是它抱怨的事情。当您使用 'refactor to storyboard' 时,它会在引用中留下故事板 ID。
我有一个针对 iOS 8 和 9 的 iOS 应用程序,我正在升级它以使用 Storyboard References 而不是通过代码链接。我逐渐转换了越来越多的位,突然我开始收到这个编译器错误:
: error: Deploying Storyboard References to iOS 8.0 requires that your storyboards do not share any view controller identifiers. A.storyboard and Z.storyboard both contain a view controller with identifier "ZNavigationController".
Z.storyboard
绝对包含ZNavigationController
,它应该在那里,但是A.storyboard
肯定不包含任何这样的导航控制器。我在文本编辑器中打开了 .storyboard 文件并确认没有提到 ZNavigationController
.
提供更多背景信息:
A.storyboard
有对B.storyboard
的引用,并且它有来自A
中的一个视图控制器的手动转场
B.storyboard
引用了Z.storyboard
- 它通过B
中的一个 viewController 的手动 segue 到达那里
运行 XCode GM 种子版本 7.0 (7A218)
我做了更多的挖掘,结果发现即使 A.storyboard
没有任何与该情节提要 ID 相关的内容,B.storyboard
和 [=12= 中也有一个控制器] 都有 ZNavigationController
的 Storyboard ID。
B.storyboard
中的 ID 不正确,我已将其删除。
看起来 Xcode 将(正确的)错误归因于 A.storyboard
而不是 B
发现问题(我正在使用 Xcode 7.1.1)。
在使用 Product --> Refactor to storyboard 后,它创建了一个故事板引用,其故事板 ID 与引用 ID(属性和身份检查器)相同。
这是一个错误,故事板 ID 应该为 nil,只应填写参考 ID。
更新#1: 使用 "Refactor to storyboard" 创建多个故事板引用时,它会创建相同的对象 ID,这也会导致此错误。
更新#2: 如果您的目标是 iOS,请不要使用 "Refactor to storyboard" 功能 8. 它会创建多个带有 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".
首先你需要找到哪个Reference被加倍 UIViewController-5kv-Ul-Bah - 这是我的错误
按 cmd + 3 并输入没有“UIViewController-”的 id (5kv-Ul-Bah) 找到双重引用
你应该看到这样的东西
在我的例子中是 InvitationDetails.storyboard 和 Location.storyboard
您有 2 个选择:
选项 1:从故事板中删除 故事板参考 并添加另一个(按照我的其他说明执行此操作 )
选项 2:打开新创建的故事板作为源代码
然后找到我们的 id 并将其更改为另一个像 "5kv-Ul-Bahxx"(我添加了 xx 后缀)但是你需要确保字符串 "5kv-Ul -Bahxx" 在项目中不存在(通过按 cmd + 3 并查找)
- 点击有问题的故事板参考
- 打开身份检查器
- 删除 "Storyboard ID".
据我所知,没有必要引用参考,这似乎是它抱怨的事情。当您使用 'refactor to storyboard' 时,它会在引用中留下故事板 ID。