WatchKit 的捆绑包结构无效

Invalid Bundle Structure for WatchKit

我正在尝试将 WatchKit 应用程序提交到 App Store 但出现此错误。

即使 Xcode 6.2 和 iOS 8.2 已正式发布,您仍无法提交 WatchKit 应用程序。有关详细信息,请参阅以下

造成这种情况的另一个原因是在您的应用程序包中包含 WatchKit 或任何其他 TargetApplication.app。

请勿在您的 project settings > target > Build Phases > Copy Bundle Resources 中包含任何内容。

Xcode (6.2..) 中的错误在我尝试将其添加到 Target > General > Embedded Binaries 时添加到那里。该部分没有任何变化,也没有显示任何错误,所以我忽略了它给我的不好的感觉。

在处理其他证书问题数小时后(由于吊销分发证书,apparently/probably 需要我们所有的 TestFlight 测试人员),升级到 Xcode 6.3.1 我终于想起来了这种不好的预感,发现潜伏在Copy Bundle Resources部分的app watchkit应用,将其移除.

除了上面的 Invalid Bundle Structure 错误之外,我遇到的具体错误还有:

ERROR ITMS-90378: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'com.company.App.watchkitapp' under the iOS application 'App.app'
ERROR ITMS-90451: "CFBundleIdentifier Collision. The Info.plist CFBundleIdentifier value 'com.company.App.watckitapp' of 'App.app/App Watchkit App.app' is in conflict with the Info.plist CFBundleIdentifier value of 'App.app/Plugins/App Watchkit Extension.appex/App WatchKit App.app'

所有都消失了,删除后提交工作正常。

此外,即使 watckit 应用程序的两个实例都通过了验证。