embedded式二进制validation实用程序错误

从昨天开始,Xcode在试图在我的iPhone上运行我的WatchKit应用程序的时候做了些愚蠢的事情。 它给了我错误:

embedded式二进制validation实用程序错误

错误:警告:是一个目录

这不是很有帮助,它似乎在抱怨为我的Watchkit扩展目标configurationconfiguration文件。 我想我按照这个答案正确设置它。

这是我如何设置我的个人资料。 三个App ID和六个configuration文件(三个用于开发,三个用于分布)。

主应用程序: 在这里输入图像说明

WatchKit扩展: 在这里输入图像说明

WatchKit Watch App: 在这里输入图像说明

我有我的自定义框架链接和embeddedWatchKit扩展和应用程序。 从WatchKit Extension的General> Embedded Binaries中删除框架为我解决了这个问题。 我不得不删除我的生成文件夹,并重新启动Xcode。

我已经能够通过正确的Provisioning Profiles设置来解决问题。

Xcode 6.2我已经能够使用自动设置进行开发/debugging构build,并且没有额外的PP用于门户中的开发,但是使用团队configuration。
现在使用Xcode 6.3我不得不在门户中添加3个显式PP进行开发,并在项目设置中分配它们。

我也一直在对付这个错误。 对我来说,有时它会build立起来,有时却不会。 这是我目前能够存档我的WatchKit应用程序。 我并没有声称为什么这个作品有任何的知识,只是它对我有用。

  1. 清理Shift-Command-K
  2. 退出Xcode
  3. 删除〜Library / Developer / Xcode / Derived Data中的文件
  4. 重新打开Xcode和档案

对我来说,解决这个问题的唯一方法是从模式名称和应用程序名称中删除所有空格。

要更改模式名称(例如模式是“amazingapp RC”)

1)在xCode上点击模式(这是你select设备/模拟器的地方)
2)从列表中select:“编辑模式”
3)当新模式打开时,在左下angular按“重复模式”。
4)select没有空格的专有名称并保存。
5)现在按pipe理计划,select旧的。
6)按“ – ”button将其删除

现在是扩展名的时候了:

1)在xCode上点击模式(这是你select设备/模拟器的地方)
2)select扩展模式
3)点击“编辑模式”
4)select左侧部分底部的存档(释放)
5)在“存档名称”中input没有空格的专有名称
6)closures。

现在build立 – >清理,build立 – >存档,你应该很好去。

更新:我一直在另一个项目上的这个问题,并设法通过删除我的WatchKit应用程序和扩展目标名称中的空格来解决它。 所以在我的目标名称是APPNAME WatchKit AppAPPNAME WatchKit Extension将它们更改为APPNAMEWatchKitAppAPPNAMEWatchKitExtension修复了一切!

原文:为了补充我的两分钱,我一直在为这个问题奋斗了几个礼拜。 我已经缩小到包括CocoaPods在项目中,但没有更多的描述性错误,我不知道为什么。

我知道我的供应configuration文件是正确的,因为空白项目(包括WatchKit目标)与他们成功存档。 我的WatchKit扩展中没有静态库,所以这也不是问题。

最后,唯一可靠的工作是在terminal中使用xcodebuild + xcrun来构build和存档我的项目。 这篇文章解释了terminal的xcode。

我遵循@ dogsgod的build议,撤销了所有我的证书等,6个configuration文件,没有运气。 这样做了近6个小时后,另一个团队成员检查出来,它工作(让xcode解决他们的问题)。 确保为所有的应用程序ID打开了组(我正在使用组来在watchkit和主应用程序之间共享数据)

所以,我认为这只是我的xcode。

然后我去git,克隆它,然后编译它就好了。

也许在我的gitignore的一切都摆脱了任何文件阻止我。 或者也许是因为我承诺之后就把它拉了。 这几乎就是巫术,但它的工作

在我的情况下,原来是我的Xcode首选项。

我有我的DerivedData – >高级设置(生成位置)设置为“自定义”=“相对于工作区”。

我改变它为独特的,这使得它的工作。

希望能帮助别人。

编辑 :一天后,我可以分享一个更多的想法。 在git克隆工作的同时,我做了一些修改之后,这个问题重新出现了。 这让我想知道这个问题是来自一个不好的文件格式(像非unix类似的EOF或类似的),或只是在Xcode中的错误。 无论如何,我的工作stream程如下:

 1) git clone to another directory 2) archive 3) if there is an error, I need to fix it, 4) git commit & git push 5) repeat steps 1 & 2 ... 

这是令人烦恼的,但这是我可以将我的项目归档并实际上传到App Store的唯一方法。

ORIGNAL POST:我也遇到过这个错误。 我的项目使用CocoaPods,多个目标和构buildscheme以及组权利。 有时我无法构build,虽然这是可以修复的(见下文),但是归档问题持续了很长时间。 经过两天的战斗,我的总结如下:

我遵循了所有的答案,我可以看到有时候会这样做:

1)清洁工程

2)(可选 – 不需要alwys)重新启动Xcode

3)删除导出的数据文件夹内容

允许我编译和运行应用程序。 但我仍然无法归档。 有时似乎我必须做两次。

除此之外,我已经尝试(并没有存档)以下build议:

  • 将目标名称(包含文件夹)重命名为不包含空白,Extension和WatchApp目标在其各自的名称中没有空格,但项目不会被存档(不会更改)
  • 我检查了扩展目标中没有embedded的二进制文件(watchApp没有这个选项)
  • 我已经尝试将部署目标(默认为iOS 8.3 for Xcode 6.4)更改为8.2和8.4,但没有归档的运气。
  • 我重新创build了“adHoc”和“发布模式”的AppID和所有的configuration文件,也没有运气。
  • 我已经证实,我正在尝试归档的当前模式没有空格,但它仍然不会改变任何内容。
  • 我甚至尝试了最后一个build议,即更改默认的派生数据文件夹位置,但是,正如我所怀疑的,它没有改变任何东西。

有趣的是,Mike Manh的build议是: 检查回购到另一个文件夹

克隆回购到一个新的空文件夹后,一切突然开始工作。 这使我得出的结论是,可能有一些剩余的文件/断开链接/无论在我当前的项目文件夹。 我想这可能会发生在我试图将我的watchKit开发分支重新绑定到当前的主分支。 这开始使我发生了一些疯狂的冲突,我终于放弃了重组。 可能是档案选项停止正常运行的关键。

我有同样的问题。 在Xcode 6. *我通过清理我的DerivedData文件夹来修复它。 但在新的Xcode 7中没有帮助。 所以我删除了WatchKit Extension和WatchKit App(“planckMailiOS WatchKit App” – >“planckMailiOSWatchKitApp”和“planckMailiOS WatchKit Extension” – >“planckMailiOSWatchKitExtension”)中的空格。