嵌入式二进制验证实用程序错误

时间:2015-04-13 17:14:28

标签: ios xcode watchkit xcode6.3

从昨天起,Xcode在尝试在我的iPhone上运行我的WatchKit应用程序时做了蠢事。 它给了我错误:

  

嵌入式二进制验证实用程序错误

     

错误:警告:是目录

它不是很有帮助,似乎它抱怨为我的Watchkit扩展目标配置配置文件。我想按照this answer进行了正确设置。

这就是我设置个人资料的方式。三个App ID和六个配置文件(三个用于开发,三个用于分发)。

主要应用 enter image description here

WatchKit扩展程序: enter image description here

WatchKit Watch App: enter image description here

9 个答案:

答案 0 :(得分:6)

我将自定义框架链接并嵌入WatchKit Extension和App中。从General>中删除框架WatchKit Extension的嵌入式二进制文件为我修复了它。我必须删除我的Build文件夹并重新启动Xcode。

答案 1 :(得分:4)

我已经能够使用正确的Provisioning Profiles设置解决问题。

使用Xcode 6.2我可以使用自动设置进行开发/调试构建,并且无需在门户中进行开发,但使用团队配置。 现在使用Xcode 6.3我必须在门户网站中添加3 explicit PPs以进行开发,并在项目设置中分配它们。

答案 2 :(得分:4)

我也一直在打这个错误。对我来说,有时它会构建,有时则不构建。这就是我目前能够存档我的WatchKit应用程序的方式。我并没有要求知道为什么这样有效,只是它对我有用。

  1. Clean Shift-Command-K
  2. 退出Xcode
  3. 删除~Library / Developer / Xcode / Derived Data
  4. 中的文件
  5. 重新打开Xcode和存档

答案 3 :(得分:2)

更新:我在另一个项目中遇到过此问题,并设法通过删除WatchKit App和Extension目标名称中的空格来解决此问题。因此,在我的目标名称APPNAME WatchKit AppAPPNAME WatchKit Extension之前,将其更改为APPNAMEWatchKitAppAPPNAMEWatchKitExtension修正所有内容!

原文:为了加上我的两分钱,我已经在这个问题上苦苦挣扎了好几周了。我已将其缩小到包括项目中的CocoaPods,但没有更具描述性的错误,我不知道为什么。

我知道我的配置文件是正确的,因为空白项目(包括WatchKit目标)可以成功归档。我的WatchKit扩展中没有静态库,因此也不是问题..

最后唯一可靠的工作是在终端中使用xcodebuild + xcrun来构建和存档我的项目。 This article在终端中解释了xcode。

答案 4 :(得分:2)

对我来说,解决此问题的唯一方法是从架构名称中删除所有空格并观看应用名称。

更改架构名称:(例如架构是“amazingapp RC”)

1)点击xCode中的架构(这是你选择设备/模拟器的地方)
2)从列表中选择:“编辑模式”
3)当新模态打开时,在左下角按“复制模式” 4)选择没有空格的正确名称并保存 5)现在按管理方案并选择旧方案 6)按“ - ”按钮

将其删除

现在是扩展名称的时候了:

1)点击xCode中的架构(这是你选择设备/模拟器的地方)
2)选择扩展架构
3)点击“编辑架构”
4)选择左侧部分底部的存档(释放)
5)在“存档名称”中输入不带空格的专有名称
6)关闭。

现在build-> clean,build->存档你应该很高兴。

答案 5 :(得分:1)

我遵循了@ dogsgod的建议,撤销了我所有的证书等等,重新开始,6个档案,没有运气。在这样做了将近6个小时后,另一个团队成员检查了它并且它有效(让xcode为他们解决问题)。确保为所有应用程序ID启用了组(我使用组在watchkit和主应用程序之间共享数据)

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

然后我去了git,克隆了它,然后把它编译得很好。

也许我的gitignore中的所有内容都摆脱了阻止我的任何文件。或者也许是因为我在承诺之后把它拉了下来。在这一点上它几乎只是伏都教,但它起作用了

答案 6 :(得分:0)

就我而言,它原来是我的Xcode偏好。

我有DerivedData - >高级设置(构建位置)设置为"自定义" ="相对于工作区"。

我将其更改为“唯一”并使其正常工作。

希望这有助于某人。

答案 7 :(得分:0)

修改: 一天后,我可以分享一个想法。虽然git克隆有效,但在我做了一些更改之后,问题又重新出现了。这让我想知道问题是来自错误的文件格式化(如非类似unix的EOF或类似)或只是Xcode中的错误。无论如何,我的工作流程目前如下:

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,多个目标和构建方案以及组权利。有时我无法构建,虽然这是可以修复的(见下文)但存档的问题持续了很长时间。经过两天的战斗,我的总结如下:

我已经按照所有回复,我可以看到有时会这样做:

1)清洁项目

2)(可选 - 不需要alwys)重启Xcode

3)删除派生数据文件夹内容

允许我编译并运行App。但我仍然无法存档。有时似乎我必须做两次。

除上述内容外,我已尝试(并未能存档)以下建议:

  • 将目标名称(和包含文件夹)重命名为不包含空格,Extension和WatchApp目标在各自的名称中没有空格,但项目不会存档(无更改)
  • 我已检查扩展目标中没有嵌入的二进制文件(watchApp没有此选项)
  • 我尝试将部署目标(默认为iOS 8.3 for Xcode 6.4)更改为8.2和8.4,但归档没有运气。
  • 我已经为“adHoc”和“发布模式”重新创建了AppID和所有配置文件,也没有运气。
  • 我已经验证我正在尝试存档的当前架构没有空格,但它仍然没有改变任何东西。
  • 我甚至尝试了最后一个建议,即更改默认的Derived Data文件夹位置,但是,正如我所怀疑的那样,它没有改变任何东西。

有趣的是,实际工作的是Mike Manh的建议:将repo签出到另一个文件夹

将repo克隆到新的空文件夹后,一切都突然开始工作了。这使我得出结论,在我当前的项目文件夹中可能存在一些剩余文件/已损坏的链接/任何内容。我想这可能发生在我试图将我的watchKit开发分支重新绑定到当前主分支时。这开始让我发现一些疯狂的冲突,我终于放弃了这一点。可能是存档选项停止正常运行的时候。

答案 8 :(得分:0)

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