博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Failed to install WatchKit App, error: Application Verification Failed
阅读量:5061 次
发布时间:2019-06-12

本文共 1714 字,大约阅读时间需要 5 分钟。

本文翻译自

406864-20150913110408387-1655507888.png

WatchKit 刚发布没有多久,它的文档还非常少。这样有好也有坏,并因祸得福得使我对这方面的知识挖得比平时更深,学到了也许我不会学到的知识。

我之前遇到一个问题,就是用xcrun 命令而不是使用Xcode的 Archive和导出功能来打包一个iOS 和 WatchKit 包到一个 .ipa格式的安装文件中。有可能到头来你也会遇到这种情况,那就是在你的Apple Watch 设备上安装你的WatchKit app 时,会弹出以下的错误信息:

'Failed to install WatchKit App, error: Application Verification Failed'.

你获取不到任何的堆栈信息,没有控制台输出.... 这种情况就变得非常特殊了。

我的情形是在这个特定的工程中,使用一些花哨的构建脚本来自动进行Archived,签名和导出app。这在团队中似乎是一个共同的过程,让整个团队能够更深入地控制他们的持续集成。

xcode-build

这个xcode-build 命令是用来编译Xcode 项目并生出一个 .app 后缀的文件。你不能把这个 .app 的文件直接分发,因为这个文件没有包含任何的 provision profiles 文件或者开发者的证书。

xrun

当Xcode 项目被编译到一个 .app 文件后,xcrun 命令就是用来把这个 .app文件打包进一个 .ipa 文件中。这个 .ipa文件包括了前面的那个 .app文件以及 provision profiles 文件和开发者证书,这个 .ipa文件就可以安装到用户 的iOS 设备上了。

WatchKitSupport/ WK Required

直到现在我才意识到,一个 .ipa 包在任何时候都必须有一个固定的内存结构:

/Payload//Payload/Application.app/WatchKitSupport/WK

/Payload/

这个目录包含了你的 .app文件,这个 .app文件本身包含了所有你的iOS 应用的资源, .xibs, .plist 。

/Payload/MyApp.app/Plugins

这个目录下包含了一个 MyApp_WatchKitExtension.appex 文件,它本身包含了所有你的WatchKit extension 扩展的资源。

/Payload/MyApp.app/Plugins/MyApp_WatchKitExtension.appex/

这个目录下包含了一个 MyApp_WatchKitApp.app 文件,它本身包含了所有你的WatchKit App(不是extension 扩展)相关的文件,例如Storyboards,Assets和以及一切在你的Watch 设备上存活的资源。 它同时也包含了 WatchKit Extension 的可执行文件。

/WatchKitSupport/

无文档。 应用如果提供一个 WatchKit 应用,那么就需要这个WatchKitSupport目录以及这个目录里面的一个WK 二进制文件

xcrun vs Xcode

知道这些后,我对比了xcrun 命令和 Xcode自带的Archive和导出功能所生成的文件目录。

Xcode

/Payload//Payload/Application.app/WatchKitSupport/WK

xcrun

/Payload//Payload/Application.app

然后我发现了一个苹果工程师在 上发表的一篇帖子,无意中描述了xcrun 无法支持打包一个提供 WatchKit 应用的 .ipa 包。他和的解决方法似乎是唯一的解决方法了。

这肯定不是一个永久性的解决问题的方法,对我来说,这是一个的绝佳机会。如果你读到这篇文章,你也应该这么做,希望在个问题有一天会修复。

更新

在最新的 Xcode 7 beta版中,已经修复了这个问题。太好了。

转载于:https://www.cnblogs.com/YungMing/p/4804252.html

你可能感兴趣的文章
Python 中 创建类方法为什么要加self
查看>>
关于indexOf的使用
查看>>
【转】JS生成 UUID的四种方法
查看>>
英语单词
查看>>
centos6.8下安装matlab2009(图片转帖)
查看>>
Mongo自动备份
查看>>
求助大神!怎样批量删除数据库表中某个字段中同样的一段字符!
查看>>
VMWARE虚拟机无法访问的三种方法分析
查看>>
enq: SQ - contention
查看>>
cer证书签名验证
查看>>
ant 安装
查看>>
新手Python第一天(接触)
查看>>
vue路由动态加载
查看>>
【原】UIWebView加载本地pdf、doc等文件
查看>>
iOS中ARC内部原理
查看>>
【bzoj1029】[JSOI2007]建筑抢修
查看>>
synchronized
查看>>
你不得不了解的应用容器引擎---Docker
查看>>
easyui datagrid 弹出页面会出现两个上下滚动条处理办法!
查看>>
迭代器和生成器
查看>>