IOS運行報錯 "dyld: Library not loaded" 原因分析

來源:互聯網
上載者:User

標籤:find   frame   question   ons   ges   framework   安裝   var   play   

我們的遊戲IOS版在接入易接SDK後,啟動出現如下錯誤

dyld: Library not loaded: @rpath/OnlineAHelper.framework/OnlineAHelper  Referenced from: /var/mobile/Containers/Bundle/Application/35ED2A71-7F60-4A16-BA4C-ECD6493A1EE1/yzg.app/yzg  Reason: no suitable image found.  Did find:    /private/var/mobile/Containers/Bundle/Application/35ED2A71-7F60-4A16-BA4C-ECD6493A1EE1/yzg.app/Frameworks/OnlineAHelper.framework/OnlineAHelper: mmap() error 22 at address=0x0349E000, size=0x00014E70 segment=__LINKEDIT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/35ED2A71-7F60-4A16-BA4C-ECD6493A1EE1/yzg.app/Frameworks/OnlineAHelper.framework/OnlineAHelper    /private/var/mobile/Containers/Bundle/Application/35ED2A71-7F60-4A16-BA4C-ECD6493A1EE1/yzg.app/Frameworks/OnlineAHelper.framework/OnlineAHelper: mmap() error 22 at address=0x034C6000, size=0x00014E70 segment=__LINKEDIT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/35ED2A71-7F60-4A16-BA4C-ECD6493A1EE1/yzg.app/Frameworks/OnlineAHelper.framework/OnlineAHelper
 經過google後找到這個文章  https://stackoverflow.com/questions/32730312/reason-no-suitable-image-found裡面給出了一些解決方案,包括清理快取資料、重新安裝認證等等。一開始我把這些方法幾乎都嘗試了一遍,但還是沒有解決問題。 重新分析問題時,懷疑會不會是編譯目標的CPU架構問題。我的測試機子是iPhone5s + iOS 9.2,編譯目標架構選擇了armv7 用file命令查看易接的庫內容顯示其包含了armv7和arm64兩個版本。iPhone5s是arm64架構的CPU,於是重新編譯選擇了arm64,問題順利解決。 錯誤原因:32位的庫在載入到64位的機子的iOS9系統後,32位的pagesize由之前的4096位元組變成了16384位元組,從而導致32位的APP載入的動態庫不能在64位機子運行。 解決的方法有兩種:1.在動態庫的工程中的other linker flags中加入
-Wl,-segalign,4000
2.將APP升級到支援arm64架構(這也是我們現在的做法) 相關連結:https://stackoverflow.com/questions/34707643/32-bit-app-with-dynamic-library-crash-on-64-bit-device

 

 

IOS運行報錯 "dyld: Library not loaded" 原因分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.