主要介紹 在打包中 遇到的問題,以及解決方法,
1>
採用Qt 自帶工具 macdeployqt 具體路徑根據你的安裝路徑(/Users/zhuomeng/Documents/Qt/5.4/clang_64/bin/macdeployqt )
macdeployqt app名稱
2>
執行完後,進入Frameworks目錄 (PCTOOL.app/Contents/Frameworks) 這裏就是 你app 運行 所依賴環境了(不一定全是)
如果你到哦app 沒有調用 第三方庫的話.那麼這裏 打包就算完成那個.如果調用了第三庫.那就繼續看了.
3>
進入 PCTOOL.app/Contents/MacOS/ 目錄 裏面有一個最終的執行 app ,
如圖: 運行OTOOL -L xxx(app 名稱)
你會看到,有的路徑有@executale_path 有的路徑沒有 是以絕對路路徑存在的. 有@的意味着 所需要的庫 已經成功打進app 中了,
相反 以絕對路徑存在的 庫是沒有打進去的. 運行的時候 會在 你 系統環境下 查找這些庫. 如果版本 外發, 客戶的系統環境下 沒有這些庫.那就運行不起來.(你可以回到 步驟2 查看Frameworks 目錄, 這些庫在Frameworks 目錄 下 是不存在的)
4> 下面就是 如何將 第三方庫 加載到 app 中了
咱們 就拿 /usr/lib/libSystem.B.dylib 來 做示範:
如圖所示:
將 /usr/lib/libSystem.B.dylib 複製放到app Frameworks 目錄下.
在用 install_name_tool -change old_name(老的絕對路徑) new_name (新的路徑 就是在Frameworks 目錄下) app (執行文件)
5> 以上操作,就是 MAC 打包的步驟. 如有不對,qq 聯繫.會更新改正
QQ :1049870353
微信 : yangsenhehe
如若不太瞭解 mac app 的結構:請參考 如下鏈接:
https://www.cnblogs.com/E7868A/archive/2012/12/02/2798225.html