2014-09-23 71 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

相關問題