我创建了一个应用程序,当我构建发布模式时,它似乎工作正常。 以下是输出:otool -L RightDoneIt.app/Contents/MacOs/rightdoneit
/opt/local/lib/libMagick++.4.dylib (compatibility version 5.0.0, current version 5.0.0)
QtGui.framework/Versions/4/QtGui (compatibility version 4.7.0, current version 4.7.0)
QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 625.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
从第一行可以看出,我正在使用ImageMagick库
之后,我使用macdeployqt工具进行部署:deployqt RightDoneIt.app -dmg 这会产生所有预期的文件,当我输入otool时,我会检查
@executable_path/../Frameworks/libMagick++.4.dylib (compatibility version 5.0.0, current version 5.0.0)
@executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.7.0, current version 4.7.0)
@executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 625.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
如果我尝试运行使用deploytool创建的应用程序,每次尝试运行ImageMagick函数时都会出现运行时错误。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
我遇到了类似的情况,并且无法在网络上找到自动工具。只需使用otool检查libMagick ++。4.dylib,然后为libMagick ++运行install_name_tool.4.dylib
答案 1 :(得分:1)
供参考:
为Mac App Store开发QtCreator应用程序
此处xxxx
=申请名称
在发布模式浅构建中构建项目。
cd /Users/QtSDK/QtSources/4.7.4/bin
或/Users/xxxx/Desktop/abc/qt-everywhere-opensource-src-4.8.4/bin
./macdeployqt "path to .app file"
这将创建包含所有依赖库的app文件 在终端:
CD "Release folder (.app folder)"
install_name_tool -id @executable_path/../Frameworks/libtag.1.dylib xxxx.app/Contents/Frameworks/libtag.1.dylib
install_name_tool -change /Users/xxxx/wav/taglib-1.8/Build/taglib/libtag.1.dylib @executable_path/../Frameworks/libtag.1.dylib xxxx.app/Contents/MacOs/xxxx
install_name_tool -change /Users/xxxx/wav/taglib-1.8/Build/taglib/libtag.1.dylib @executable_path/../Frameworks/libtag.1.dylib xxxx.app/Contents/Frameworks/libtag.1.dylib
通过terminal命令检查其他依赖库,如taglib
CD "Release folder
在终端:tool -L appliaxtion
文件中,如果有任何错误,则CD xxxx.app/Contents/MacOS
然后键入tool -L xxxx
并查看所有相关库
并为所有依赖库执行步骤4.
app/contents/Frameworks
。ffmpeg
,lastfm
等(仅限所需的文件夹或文件)复制到app/contents/MacOs
制作DMG: - (details are here)或使用DMG画布。