2014-09-23 38 views
4

我的应用程序在Xcode 5中构建并运行得很好。我昨天升级到Xcode 6,现在应用程序构建,但不会运行在我的设备或模拟器上。在Xcode 6中使用私有框架的应用程序“无法检查应用程序包”。丢失框架info.plist

我试图运行时出现错误“无法检查应用程序包”。

我检查了我的设备日志(的XCode> Windows>系统设备),并试图运行该应用程序后,我得到了我的日志以下错误:

月23日10时32分46秒XXXXXX's,iPhone streaming_zip_conduit [5476]: __dispatch_source_read_socket_block_invoke:203:无法在 文件来安装应用程序:///var/mobile/Media/PublicStaging/ActivateMachines.app/:错误 域= LaunchServicesError代码= 0“的操作不能完成 (LaunchServicesError error 0.)“UserInfo = 0x1355075a0 {Error = PackageInspectionFailed,ErrorDescription =加载失败在路径 /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.5lz5TS/extracted/ActivateMachines.app/Frameworks/GeLoSDK.framework从束的Info.plist}

我检查过GeLoSDK.framework确实有一个Resources/Info.plist文件。

我使用这个框架: https://github.com/GeLoInc/GeLoSDK-iOS

应该正确链接,因为它是工作的Xcode 5

难道在Xcode 6改变的东西是我不知道的?谢谢你的帮助。

回答

3

我能够通过将框架移动到“/ Library/Frameworks”并将其添加到项目中来构建应用程序。

此前,我一直在使用该框架,将其直接绑定到应用程序并手动链接二进制文件。这在Xcode 5中运行良好,但不在Xcode 6中。

我不确定这是Xcode 6中的一个新bug,还是发生了变化,但使用“/ Library/Frameworks”解决了问题。

+0

我不知道是否在图书馆/框架内部触发了一些东西,允许使用不允许位于别处的包的深度包。无论如何,我很高兴你找到了解决方案。很可能您在Xcode 5中使用Xcode 6而不是Xcode 6的声明可能有些过时。我怀疑这个问题更可能与iOS 8相比iOS 7中的安装更改,而不是工具更改。 – 2014-09-24 23:13:36

+0

我不能相信这个工作。有时候苹果是绝对荒谬的。 – lespommes 2015-11-02 18:51:42

1

我怀疑你确实没有在该包中的Info.plist,但该错误被忽略,并且在以前的版本中没有报告。确保你真的为GeLoSDK.framework安装Info.plist。

+0

我应该在哪里检查?我查看了'ActivateMachines.app/Frameworks/GeLoSDK.framework'目录的内部,并且有一个'Resources'文件夹包含'Info.plist'文件 – AnthonyM 2014-09-23 22:20:48

+1

我怀疑是这个问题。 iOS使用浅束,而OS X使用深束。看起来你的GeLoSDK.framework的构建好像OS X(深层)而不是iOS(浅层)。从你的链接看,你只是使用第三方提供的构建框架。你可以自己修复它,方法是将所有文件移动并自己扁平化(你也可能需要运行install_name_tool来更改二进制文件的标识符),但是我建议你只需要向该框架的维护者发送一个固定的版。 – 2014-09-23 22:59:17

+0

感谢迄今Jeremy的帮助。我应该如何压平它?如果框架在使其“浅”之后应该类似于哪种文件结构?你有链接到任何参考? http://www.meonbinary.com/2013/07/creating-universal-ios-framework 说,该框架使用的文件结构应该没问题。 – AnthonyM 2014-09-24 16:56:38

3

,如果你保持与定制的框架,并从模拟器日志运行的应用程序有问题如下:

10月21日16时27分54秒bunnydembp com.apple.CoreSimulator.CoreSimulatorService [1936年]:错误 域= LaunchServicesError代码= 0 “的操作无法 完成。(LaunchServicesError错误0)” 的UserInfo = 0x7fb7954c16c0 {误差= PackageInspectionFailed,ErrorDescription中=无法在路径 /用户来加载从束 的Info.plist /兔子/库/开发商/ CoreSimulator /设备/ 10D9FDBC-13B5-420B-9B9E-365E05551830 /data/Library/Caches/com.apple.mobile.installd.staging/temp.4mi9Mn/extracted/radio365.app/Frameworks/SOME。框架}

需要add/alias info.plist在框架子路径是这样的: http://i.stack.imgur.com/e8Dz2.png

如果使用从http://blog.db-in.com/universal-framework-for-ios/ 构建脚本,您可以只添加一行44

#ios8 bug in xcode 6.0.1 and 6.1 
ln -s "${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/Info.plist" "${INSTALL_DIR}/Info.plist" 
5

我以下GoogleInteractiveMediaAds.framework有这个问题:

com.apple.CoreSimulator.CoreSimulatorService [522]:错误 域= LaunchServicesError代码= 0 “(空)” 的UserInfo = {错误= PackageInspectionFailed,ErrorDescription中=在路径无法从束 负载的Info.plist /用户/XXX/Library/Developer/CoreSimulator/Devices/B5E6B8A7-017D-4FC2-9C22-0698DFD0AC13/data/Library/Caches/com.apple.mobile.installd.staging/temp.Ha6x7D/extracted/XXX-ios.app/Frameworks /GoogleInteractiveMediaAds.framework} configd [54]:inet_set_autoaddr(EN 0,1)失败,资源忙(16)

什么工作对我来说是在构建阶段为我的三重去除嵌入框架GoogleInteractiveMediaAds.framework ARGET。

+0

感谢您的提示! – 2016-12-26 21:54:21