我'm maintaining an old app on Mac that built with Qt 4.8.6 (It was using phonon so I can' t升级到Qt 5.x) . 构建之后,我得到一个.app文件,然后在这个.app上运行 macdeployqt
来部署Qt库 . 它运行良好 . 然后我需要 codesign
这个.app . 据我所知,有些问题与应用程序包的目录结构有关,而且Qt4 macdeployqt命令不符合新布局 . 我试图解决:cp /Library/Frameworks/phonon.faramework/Contents/Info.plist myApp.app/Contents/Frameworks/phonon.framework/Resources/
其他库/框架也是如此 . (复制... /Contents/Info.plist到myApp.app/Contents/Frameworks/*.framework/Resources/
然后 codesign
,获得了输出:带有Mach-O thin的签名包(x86_64)
然后验证,得到输出:嵌入式框架包含修改或无效版本在子组件中...
我在互联网上搜索了很多次,但找不到解决方案 . 如何协调/验证这种捆绑应用程序? (使用Qt 4.8.6 . 使用Qt 5.x,一切都还可以)
谢谢!
1 回答
我有一个用Qt 4.8.7构建的Mac应用程序,这是我写给自己的指令,以完成代码签名过程:
这是
fix_frameworks.sh
的内容#运行macdeployqt后,从应用程序包的根目录运行此命令
cd Contents / Frameworks / QtCore.framework
资源/版本/ 4
cd版本
ln -s 4当前
cd ..
ln -s版本/当前/ QtCore QtCore
ln -s版本/当前/资源资源
cd ../../../
cd目录/框架/ QtGui.framework
资源/版本/ 4
cd版本
ln -s 4当前
cd ..
ln -s版本/当前/ QtGui QtGui
ln -s版本/当前/资源资源
cd ../../../
cd Contents / Frameworks / QtNetwork.framework
资源/版本/ 4
cd版本
ln -s 4当前
cd ..
ln -s版本/当前/ QtNetwork QtNetwork
ln -s版本/当前/资源资源
cd ../../../
您可能需要进行一些更改:使用系统上安装Qt框架的路径,并添加处理除Core / Gui / Network之外的Qt框架的步骤 .