无法将应用程序部署到ios 8设备

问题描述:

刚刚将iPad Mini更新到iOS 8,突然无法使用XCode 6.0.1在其上调试我的应用程序。
Xcode中的错误是应用程序安装失败带有发生了未知错误。。在设备上,应用程序仍然显示为灰色。

Just updated an iPad Mini to iOS 8 and suddenly can't debug my app on it with XCode 6.0.1. The error in Xcode is App installation failed with An unknown error has occurred.. On the device the app remains greyed out.

尝试:


  • 删除来自ipad的应用程序(之前正在工作)

  • 软复位并重启设备

  • 删除派生数据并清理

  • 重新启动mac

  • 重新安装xcode

  • 更改套件ID和产品名称

  • 重新创建开发证书和配置文件

  • delete the app from ipad ( was working before )
  • Soft reset and reboot the device
  • Delete derived data and clean
  • Reboot the mac
  • reinstall xcode
  • change the bundle id and product name
  • Recreate the dev certificates and provisioning profiles

iOS 6和iOS 7设备工作正常,也可以调试其他项目,但不是这个所以我变得绝望了。

With iOS 6 and iOS 7 devices works fine, also, can debug other projects too, but not this one, so I'm getting desperate.

有什么想法吗?

控制台日志:

23/09/14 18:24:16,617 Xcode[421]: createShadowPath (thread 0x12a2f6000): returning: /var/folders/lq/1z47wljj77gbhhrhc9z_yylw0000gn/C/com.apple.DeveloperTools/6.0.1/Xcode/942f46185227b6e098ea41a4548a0649/e269ac837383a4b805c1e212d18ffe36483ab24a/TDev.app
23/09/14 18:24:16,617 Xcode[421]: createSiblingInPath (thread 0x12a2f6000): returning: /var/folders/lq/1z47wljj77gbhhrhc9z_yylw0000gn/C/com.apple.DeveloperTools/6.0.1/Xcode/942f46185227b6e098ea41a4548a0649/e269ac837383a4b805c1e212d18ffe36483ab24a/ManifestCache.plist
23/09/14 18:24:16,690 Xcode[421]: _AMDeviceCopyInstalledAppInfo (thread 0x12a2f6000): no app info
23/09/14 18:24:16,693 Xcode[421]: AMDeviceSecureInstallApplicationBundle (thread 0x12a2f6000): unable to get installed app info, falling back to old skool install
23/09/14 18:24:16,693 Xcode[421]: AMDeviceSecureInstallApplicationBundle (thread 0x12a2f6000): Blasting the bundle over to the device in an old skool way
23/09/14 18:24:27,005 Xcode[421]: AMDErrorForMobileInstallationCallbackDict (thread 0x114564000): GOT AN ERROR 0xe800003a
23/09/14 18:24:27,032 Xcode[421]: SZConduit: _MonitorResultDispatchFunction:140 (0x0x114564000): Got error from service: InstallationFailed
23/09/14 18:24:27,033 Xcode[421]: _AMDeviceTransferAndInstall (thread 0x12a2f6000): SZConduitSendPathWithPreflight failed: 0xe8008001
23/09/14 18:24:27,051 Xcode[421]: writeDictToFile:1258 ==== Successfully wrote Manifest cache to /var/folders/lq/1z47wljj77gbhhrhc9z_yylw0000gn/C/com.apple.DeveloperTools/6.0.1/Xcode/942f46185227b6e098ea41a4548a0649/e269ac837383a4b805c1e212d18ffe36483ab24a/ManifestCache.plist
23/09/14 18:24:27,053 Xcode[421]: AMDeviceSecureInstallApplicationBundle (thread 0x12a2f6000): returning 0xe8008001

编辑:

似乎证书的重新生成是解决方案但是在清洁之后有ne cessary也是一个Clean Build Folder,它解决了这个问题(至少目前为止)。

It seems that the regeneration of the certificates was the solution but after Clean there was necessary a Clean Build Folder too, which solved the issue (for now at least).

只是为了添加(并且感谢每个人都提供这里给出的提示)系统地找出原因,这对我解决这个问题至关重要。

Just to add (and thanks to everyone for the hints given here) that systematically finding out the cause of this was key for me resolving this.

使用Xcode6中的Devices窗口连接到插入的iPhone,可以查看实时日志 - 选择iPhone后,点击底部的微小向上箭头图标。在我的情况下,输出如下所示,强烈表明我的(自定义)捆绑框架之一的无法验证代码签名......是问题的症结所在。

Using the "Devices" Window in Xcode6 to then connect to the plugged in iPhone allows you to view the live log - once you have selected the iPhone click on the tiny up-arrow icon at the bottom. In my case the output was as shown below, strongly indicating that "Failed to verify code signature…" of one of my (custom) bundled frameworks was at the crux of the problem.

这导致我检查并发现它与过期证书(一切都在日期)无关,也没有任何剩余的DerivedData或临时构建文件(尽管总是很好干净!)

This lead me to check and find out it was nothing to do with out of date certificates (everything was in date) nor any left-over DerivedData or temp build files (although always good to do a clean!)

事实上,我的自定义框架的CFBundleExecutable有一个错字 - 所以签名实际上是一个错误。这并没有立即在Xcode中报告 - 即使嵌入式框架的复选框打开代码复制登录。尝试在命令行上单独签署一个框架,它会告诉你!

It was the fact that my custom framework’s "CFBundleExecutable" had a typo - so signing was actually throwing an error. This is not immediately reported in Xcode - even if the tick box is on for your embedded frameworks to "Code sign on copy". Try signing a framework separately on the command line and it will tell you!

Jul 13 09:40:43 Tims-iPhone installd[2302] <Notice>: 0x10048c000 -[MIClientConnection _doBackgroundInstallationForPath:withOptions:completion:]: Install of "/var/mobile/Media/PublicStaging/miin.app" type Developer requested by streaming_zip_conduit (pid 2303)
Jul 13 09:40:43 Tims-iPhone installd[2302] <Notice>: 0x10048c000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=com.timlukins.miin; Version=1, ShortVersion=1.0>
Jul 13 09:40:44 Tims-iPhone profiled[2107] <Notice>: (Note ) MC: Provisioning profiles changed
Jul 13 09:40:44 Tims-iPhone installd[2302] <Error>:  SecTrustEvaluate  [leaf CriticalExtensions IssuerCommonName]
Jul 13 09:40:44 Tims-iPhone installd[2302] <Error>:  SecTrustEvaluate  [leaf CriticalExtensions IssuerCommonName]
Jul 13 09:40:44 Tims-iPhone installd[2302] <Error>: unrecognized status -67049 from codesigning library
Jul 13 09:40:44 Tims-iPhone installd[2302] <Error>: 0x10048c000 -[MICodeSigningVerifier performValidationWithError:]: 188: Failed to verify code signature of <MIExecutableBundle : path = /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.J7tWkl/extracted/miin.app/Frameworks/libmiincore.framework identifier = com.timlukins.libmiincore type = Framework> : 0xe8008001 (Unknown error)
Jul 13 09:40:44 Tims-iPhone installd[2302] <Error>: 0x10048c000 -[MIInstaller performInstallationWithError:]: Verification stage failed
Jul 13 09:40:44 Tims-iPhone streaming_zip_conduit[2303] <Error>: 0x100484000 __MobileInstallationInstallForLaunchServices_block_invoke240: Returned error Error Domain=MIInstallerErrorDomain Code=13 "Failed to verify code signature of <MIExecutableBundle : path = /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.J7tWkl/extracted/miin.app/Frameworks/libmiincore.framework identifier = com.timlukins.libmiincore type = Framework> : 0xe8008001 (Unknown error)" UserInfo=0x12ee1fa30 {LibMISErrorNumber=-402620415, LegacyErrorString=ApplicationVerificationFailed, SourceFileLine=188, FunctionName=-[MICodeSigningVerifier performValidationWithError:], NSLocalizedDescription=Failed to verify code signature of <MIExecutableBundle : path = /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.J7tWkl/extracted/miin.app/Frameworks/libmiincore.framework identifier = com.timlukins.libmiincore type = Framework> : 0xe8008001 (Unknown error)}
Jul 13 09:40:44 Tims-iPhone streaming_zip_conduit[2303] <Warning>: ERROR: MobileInstallationInstallForLaunchServices returned nil
Jul 13 09:40:44 Tims-iPhone streaming_zip_conduit[2303] <Warning>: __dispatch_source_read_socket_block_invoke:203: Failed to install application at file:///var/mobile/Media/PublicStaging/miin.app/ : Error Domain=LaunchServicesError Code=0 "The operation couldn’t be completed. (LaunchServicesError error 0.)" UserInfo=0x12ed20140 {Error=ApplicationVerificationFailed, ErrorDetail=-402620415, ErrorDescription=Failed to verify code signature of <MIExecutableBundle : path = /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.J7tWkl/extracted/miin.app/Frameworks/libmiincore.framework identifier = com.timlukins.libmiincore type = Framework> : 0xe8008001 (Unknown error)}