iOS真机运行时出错(0xE8008018)受难记

从今年三月开始,我学习 iOS 开发,语言是 Swift 。七八月的时候,我开始构思一款记录、分享句子的 App 。由于是业余的自己用业余的时间做,所遇问题也非常多,有些能解决掉,有些功能却是自己想也想不能该如何实现的,还好自己有一个好的心态,处于新手阶段的自己,也没有想一下子就做得很了不起。十月的时候,终于感觉到这个 App 可以用起来了,于是在十月底交费开通了苹果开发者帐号。并找资料看视频,寻求上传 App 的方式,还好,比较顺利,一个晚上的时间,就将第一个版本上传到了 App Store ,接着就是等待了,一周多一点的样子,审核状态变成了「正在审核」,很快,收到邮件通知,审核未能通过。

我查找了原因,是因为自己的 App 用户帐号管理方面的问题。我使用了友盟第三方帐号管理系统,但却没有自己的帐号管理模块。我直接将友盟的帐号模块完全删除掉,换用 Parse 来做 App 的后台,但很快我发现,访问速度太成问题。正当我感感有点绝望的时候,无意中有人提到了 LeanCloud 这个服务。看了看使用文档,使用上就完全和 Parse 一样,代码修改极其简单,半小时就完全修改 OK 了,我立马打包上传,结果发现,真机上运行就出错了:

The identity used to sign the executable is no longer valid.

Please verify that your device’s clock is properly set, and that your signing certificate is not expired.

(0xE8008018).

iOS真机运行时出错(0xE8008018)受难记_第1张图片
11111.png

当时就觉得奇怪了,我只是添加了一个第三方 SDK ,其它的都没有动过,怎么就这样了呢?看样子是提示签名或授权文件现问题之类的。我试着在网上寻求解决办法,果然也有人遇到这样的问题,我进行这些方法的尝试:

  • 重启 Xcode
  • 删除 Xcode 里面的 Apple ID ,重启 Xcode ,再重新登录 Apple ID ,然后下载 Provisioning Profile 。
  • 关闭 Xcode ,删除 /Users/USERNAME/Library/MobileDevice/Provisioning Profiles里面所有的文件。
  • 清除掉/Users/USERNAME/Library/Developer/Xcode/DerivedData目录中对应项目的目录。
  • 在 Apple Developer 上删除原有的 Provisioning Profile 文件,新建,再下载,重新安装上。

然而却报同样的错误,接着寻找办法,感觉找到了更多的解决办法:

http://stackoverflow.com/questions/31484742/0xe8008018-the-identity-used-to-sign-the-executable-is-no-longer-valid

看里面的留言,有成功的,也有仍然失败的,最容易的,就是重启一下Xcode就搞定了。然后我却没有那到幸运。

按着其方式一一作了尝试,却仍然没有用。心里挺绝望的。于是我开始做自己才想到的另一个 App ,前前后后一个月,白天上班,晚上回家看看书,写写代码,然后做出来了。这月初的时候提交审核,15号审核通过,正多上架。一下子挺受鼓舞,就拿起以前的 App ,想重新弄下。将以前试过的方法又重新试过,仍然无果。我在一个 QQ 开发群中求助,得到到一朋友的帮助,所用方法,也是我尝试过的。接着我想到了苹果的开发者技术团队。于是向他们发了邮件,尽量的将我息遇问题及解决办法给他们说了,他们当天给了回复,建议我将 Xcode 删除掉再重装,昨天晚上按此方法试了,却仍然报着一样的错。

不过我却仍然没有放弃,尽管我心理头想可以跳过这个 App ,重新再做一个功能更强一点的,但问题放在这里总会是个问题,万一哪天我又遇到怎么办呢?我新建了一个项目,把原有项目里的文件全部复制到新项目中,安装 SDK, 然后进行调试,原以为一切OK,然后,错误一样出现了!

无意中我查看 App 的编译信息时,发现有一行貌似 LeanCloud 有请求证书的代码,而所报之错,也是关于证书的,难着这个 SDK 使用也需要先申请证书?我上 LeanCloud 的网站查看文档,找到了这样的资料:

https://leancloud.cn/docs/ios_push_cert.html

原来是要开启信息推送功能:

为 App 开启 Push Notification 功能。如果是已经创建的 App ID 也可以通过设置开启 Push Notification 功能。

需要两个新的证书,然后再更新授权文件。但真机运行时,同样报错,于是我动 SDK 的 BBS 看寻求帮助,发现了这个贴子:

https://forum.leancloud.cn/t/ios-avoscloud-framework-code-signature/3667/12

所遇问题和我的一样,提示升级 Xcode ,我看我 SDK 的版本是 3.1.5.2 的,我将其升级到了 3.1.6.8 ,这里,我惊喜的发现,和原来报的错不一样了,而变成了这样:

iOS真机运行时出错(0xE8008018)受难记_第2张图片
屏幕快照 2015-12-17 22.33.58.png

尽管还有错误,但总算是有了新的起色,也算是一个不错的消息了,我英文不太好,但我猜还是授权文件方面的问题吧,但我确实是才重新做了授权文件的。

最后发现,还是 SDK 的使用问题,我手动添加了最新版的 SDK 之后,就一切 OK 了,现在真机也能运行上了!

最后,总结一下这次经历的经验教训吧。

  • 遇到的问题,多半不止自己一个人遇到,通过网络查找,一般可以解决。
  • 向他们求助,但这一步一定要在自己实无可想之法时才进行。
  • 开发文档应该仔细阅读。即便不想读,也至少全程浏览一遍,有个印象之后,能方便问题的定位。
  • 受难时别迷失了方向,前期的尝试感觉在方向上都出了问题,利于排除法,问题应该能很快的定位到是由于第三方 SDK 所起的错误。

问题得到解决,又可以继续了!

你可能感兴趣的:(iOS真机运行时出错(0xE8008018)受难记)