从昨天开始,Xcode 在尝试在我的 iPhone 上运行我的 WatchKit 应用程序时做了一些愚蠢的事情。它给了我错误:
嵌入式二进制验证实用程序错误
错误:警告:是目录
它不是很有帮助,它似乎在抱怨我的 Watchkit 扩展目标的配置文件。我想我按照这个答案正确设置了它。
这就是我设置个人资料的方式。三个 App ID 和六个配置文件(三个用于开发,三个用于分发)。
主应用:
WatchKit 扩展:
WatchKit 手表应用程序:
我将自定义框架链接并嵌入到 WatchKit 扩展和应用程序中。从 WatchKit 扩展的 General > Embedded Binaries 中删除框架为我修复了它。我确实必须删除我的 Build 文件夹并重新启动 Xcode。
我已经能够通过正确的配置文件设置解决问题。
Xcode 6.2
我已经能够使用自动设置进行开发/调试构建,并且在门户中没有额外的 PP 用于开发,但使用团队配置。
现在,Xcode 6.3
我必须在门户中添加3 个显式 PP用于开发,并在项目设置中分配它们。
我也一直在与这个错误作斗争。对我来说,有时它会建立,有时它不会。这就是我目前能够归档我的 WatchKit 应用程序的方式。我并没有声称任何关于它为什么有效的知识,只是它对我有用。
更新:我在另一个项目中遇到了这个问题,并设法通过删除我的 WatchKit 应用程序和扩展目标名称中的空格来解决它。所以在我的目标名称之前APPNAME WatchKit App
并将APPNAME WatchKit Extension
它们更改为APPNAMEWatchKitApp
并APPNAMEWatchKitExtension
修复了所有内容!
原文:为了加上我的两分钱,我已经为这个问题苦苦挣扎了几个星期了。我已将其范围缩小到在项目中包含 CocoaPods,但没有更具描述性的错误,我不知道为什么。
我知道我的配置文件是正确的,因为空白项目(包括 WatchKit 目标)与它们一起成功存档。我的 WatchKit 扩展中没有静态库,所以这也不是问题..
最后,唯一可靠的工作是在终端中使用xcodebuild
+xcrun
来构建和存档我的项目。这篇文章很好的解释了终端中的xcode。
对我来说,解决这个问题的唯一方法是从模式名称中删除所有空格并观察应用程序名称。
更改架构名称:(例如架构是“amazingapp RC”)
1)单击xCode中的模式(这是您选择设备/模拟器的地方)
2)从列表中选择:“编辑模式”
3)当新模式打开时,按左下角的“重复模式”。
4)选择没有空格的正确名称并保存。
5)现在按管理方案并选择旧的。
6)按“-”按钮将其删除
现在是扩展名的时候了:
1)单击xCode中的架构(这是您选择设备/模拟器的地方)
2)选择扩展架构
3)单击“编辑架构”
4)选择左侧底部的存档(发布)
5)输入正确的名称“存档名称”中的空格
6) 关闭。
现在构建->清理,构建->存档,你应该很高兴。
我遵循@dogsgod 的建议,撤销了我所有的证书等。重新开始,6 个配置文件,没有运气。在这样做了将近 6 个小时之后,另一个团队成员检查了它并且它工作了(让 xcode 为他们解决问题)。确保所有应用程序 ID 的组都已打开(我正在使用组在 watchkit 和主应用程序之间共享数据)
所以,我认为这只是我的xcode。
然后我去git,克隆它,然后编译它就好了。
也许我的 gitignore 中的所有内容都摆脱了阻止我的任何文件。或者也许是因为我在他们犯下之后才把它拉下来。在这一点上几乎只是巫术,但它奏效了
就我而言,它原来是我的 Xcode 首选项。
我将我的 DerivedData -> 高级设置(构建位置)设置为“自定义”=“相对于工作区”。
我将其更改为 Unique 并使其工作。
希望这可以帮助某人。
编辑:一天后我可以再分享一个想法。虽然 git 克隆有效,但在我进行一些更改后问题又出现了。这让我想知道问题是否来自错误的文件格式(如非 unix-like 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 的唯一方法......
原帖: 我也遇到过这个错误。我的项目使用 CocoaPods、多个目标和构建方案以及组权利。有时我无法构建,虽然这是可以修复的(见下文),但存档问题持续了更长的时间。经过两天的奋斗,我的总结如下:
我已经关注了所有的回复,我可以看到有时会这样做:
1)清洁项目
2)(可选 - 并不总是需要)重新启动 Xcode
3) 删除派生数据文件夹内容
允许我编译和运行应用程序。但我仍然无法存档。有时似乎我必须做两次。
除了上述之外,我还尝试过(但未能归档)以下建议:
有趣的是,实际上起作用的是 Mike Manh 的建议:将 repo 检出到另一个文件夹。
将 repo 克隆到一个新的空文件夹后,一切突然开始工作。这使我得出结论,在我当前的项目文件夹中可能存在一些剩余文件/断开的链接/任何内容。我想这可能发生在我试图将我的 watchKit 开发分支重新定位到当前的主分支时。这开始给我带来一些疯狂的冲突,我终于中止了变基。可能是存档选项停止正常运行的时候。
我有同样的问题。在 Xcode 6.* 中,我通过清理我的 DerivedData 文件夹来修复它。但是在新的 Xcode 7 中它没有帮助。所以我删除了 WatchKit Extension 和 WatchKit App(“planckMailiOS WatchKit App”->“planckMailiOSWatchKitApp”和“planckMailiOS WatchKit Extension”->“planckMailiOSWatchKitExtension”)中的空格。