记录迁移过程中的问题和解决方案:
1、svn 取消不需要版本控制的文件:
2、 在 mac 上编译
安装 zlib 依赖项:
brew install zlib
安装时终端提示:
冲泡:未找到
解决方案是执行:
红宝石-e“$(卷曲-fsSL)”
3、mac系统的程序路径后跟一个字符串,如下:
右键单击应用程序,“显示包内容”,然后输入真实路径。
如何复制4、mac下的文件路径
5、重头戏是节目包装。(假设程序名称为.app)流程如下:
6、打包成安装包mac系统软件进程名,执行:/Users//Qt5.12.2/5.12.2//bin/ /Users/ /-dmg
7、直接运行上一步到达的包。在mac上安装程序比较常见的方法是将安装包拖到“安装程序”中,程序会出现在中,可以从运行。你可以参考:
mac打包dmg文件(替换背景图片)
生成DMG包的操作:磁盘工具->选择新添加的图片->右键选择“xxx的图片”->保存。
8、上面的打包步骤太麻烦了mac系统软件进程名,每次修改程序都做这个太麻烦了。可以写成shell脚本进行处理。如下:
echo "------开始处理------"
appRealPath=/release/helloWorld.app/Contents/MacOS
appPath=/release/helloWorld.app/Contents/MacOS/helloWorld
pakegePath=/release/helloWorld.app
appRpath=/release/helloWorld.app/Contents/Frameworks
licensePath=/release/helloWorld.app/Contents/MacOS/license.lic
Cur_Dir=$(pwd) #当前路径
appFullPath=${Cur_Dir}${appPath} #app完整路径
pakegeFullPath=${Cur_Dir}${pakegePath}
appFullRealPath=${Cur_Dir}${appRealPath}
/Users/zhangsan/Qt5.12.2/5.12.2/clang_64/bin/macdeployqt ${pakegeFullPath}
liceseFullPath=${Cur_Dir}${licensePath}
if test -e ${liceseFullPath}
then
rm ${liceseFullPath}
fi
appFullRpath=${Cur_Dir}${appRpath}
libPath="${appFullRpath}/lib"
if [ -d ${libPath} ];
then
rm -r ${libPath}
fi
mkdir ${libPath}
libIndex=0
for filePath in ${appFullRealPath}/*;
do
fileName=`basename ${filePath}` #从文件的绝对路径提取文件名
if [[ "$fileName" =~ ^lib.* ]]; #文件以lib开头
then
libFileList[libIndex]=${filePath}
libFileNameList[libIndex]=${fileName}
libIndex=`expr ${libIndex} + 1`
fi
done
for index in "${!libFileList[@]}";
do
destFullPath="${libPath}/${libFileNameList[index]}"
libIndex=`expr ${libIndex} + 1`
cp -f ${libFileList[index]} ${destFullPath}
# echo "目标文件:${destFullPath}"
# echo "源文件:${libFileList[index]}"
done
#主程序库配置
install_name_tool -change "libquazip.1.dylib" "@rpath/lib/libquazip.1.dylib" ${appFullPath}
install_name_tool -change "libjsoncpp.1.dylib" "@rpath/lib/libjsoncpp.1.dylib" ${appFullPath}
install_name_tool -change "libcomment.1.dylib" "@rpath/lib/libcomment.1.dylib" ${appFullPath}
install_name_tool -change "libprotocol.1.dylib" "@rpath/lib/libprotocol.1.dylib" ${appFullPath}
install_name_tool -change "libprodoc.1.dylib" "@rpath/lib/libprodoc.1.dylib" ${appFullPath}
install_name_tool -change "libcrypt.1.dylib" "@rpath/lib/libcrypt.1.dylib" ${appFullPath}
#libprodoc.1.dylib配置
prodocFullPath="${libPath}/libprodoc.1.dylib"
install_name_tool -change "libcomment.1.dylib" "@rpath/lib/libcomment.1.dylib" ${prodocFullPath}
install_name_tool -change "libprotocol.1.dylib" "@rpath/lib/libprotocol.1.dylib" ${prodocFullPath}
install_name_tool -change "libquazip.1.dylib" "@rpath/lib/libquazip.1.dylib" ${prodocFullPath}
install_name_tool -change "libcrypt.1.dylib" "@rpath/lib/libcrypt.1.dylib" ${prodocFullPath}
echo "------处理完成------"
此脚本处理的操作是步骤 5 中的所有操作。
9、安装后发现找不到当前目录。解决方案:
QDir::currentPath()
将其更改为:
QCoreApplication::applicationDirPath()
10、png到苹果icns格式图标网站:.
11、mac在命令行打开可执行程序:
open ./helloWorld.app
发表评论