当前位置: 首页> 健康> 母婴 > 沈阳建设工程信息网 姚军_中国建筑校园招聘_关键词优化软件有哪些_产品网络推广

沈阳建设工程信息网 姚军_中国建筑校园招聘_关键词优化软件有哪些_产品网络推广

时间:2025/7/13 4:25:01来源:https://blog.csdn.net/daa20/article/details/144616360 浏览次数:0次
沈阳建设工程信息网 姚军_中国建筑校园招聘_关键词优化软件有哪些_产品网络推广

macos下,使用脚本制作dmg安装包脚本:

目录结构:

% tree helloworld/
test
|-- Applications -> /Applications
`-- Helloworld.app`-- Contents|-- Frameworks|   |-- QtCore.framework|   |   |-- QtCore -> Versions/Current/QtCore|   |   |-- Resources -> Versions/Current/Resources|   |   `-- Versions|   |       |-- 5|   |       |   |-- QtCore|   |       |   `-- Resources|   |       |       |-- Info.plist|   |       |       `-- QtCore.prl|   |       `-- Current -> 5|   |-- QtDBus.framework|   |   |-- QtDBus -> Versions/Current/QtDBus|   |   |-- Resources -> Versions/Current/Resources|   |   `-- Versions|   |       |-- 5|   |       |   |-- QtDBus|   |       |   `-- Resources|   |       |       |-- Info.plist|   |       |       `-- QtDBus.prl|   |       `-- Current -> 5|   |-- QtGui.framework|   |   |-- QtGui -> Versions/Current/QtGui|   |   |-- Resources -> Versions/Current/Resources|   |   `-- Versions|   |       |-- 5|   |       |   |-- QtGui|   |       |   `-- Resources|   |       |       |-- Info.plist|   |       |       `-- QtGui.prl|   |       `-- Current -> 5|   |-- QtNetwork.framework|   |   |-- QtNetwork -> Versions/Current/QtNetwork|   |   |-- Resources -> Versions/Current/Resources|   |   `-- Versions|   |       |-- 5|   |       |   |-- QtNetwork|   |       |   `-- Resources|   |       |       |-- Info.plist|   |       |       `-- QtNetwork.prl|   |       `-- Current -> 5|   |-- QtPrintSupport.framework|   |   |-- QtPrintSupport -> Versions/Current/QtPrintSupport|   |   |-- Resources -> Versions/Current/Resources|   |   `-- Versions|   |       |-- 5|   |       |   |-- QtPrintSupport|   |       |   `-- Resources|   |       |       |-- Info.plist|   |       |       `-- QtPrintSupport.prl|   |       `-- Current -> 5|   |-- QtSvg.framework|   |   |-- QtSvg -> Versions/Current/QtSvg|   |   |-- Resources -> Versions/Current/Resources|   |   `-- Versions|   |       |-- 5|   |       |   |-- QtSvg|   |       |   `-- Resources|   |       |       |-- Info.plist|   |       |       `-- QtSvg.prl|   |       `-- Current -> 5|   `-- QtWidgets.framework|       |-- QtWidgets -> Versions/Current/QtWidgets|       |-- Resources -> Versions/Current/Resources|       `-- Versions|           |-- 5|           |   |-- QtWidgets|           |   `-- Resources|           |       |-- Info.plist|           |       `-- QtWidgets.prl|           `-- Current -> 5|-- Info.plist|-- MacOS|   |-- HelloworldUI|   `-- HelloworldService|-- PlugIns|   |-- bearer|   |   `-- libqgenericbearer.dylib|   |-- iconengines|   |   `-- libqsvgicon.dylib|   |-- imageformats|   |   |-- libqgif.dylib|   |   |-- libqicns.dylib|   |   |-- libqico.dylib|   |   |-- libqjpeg.dylib|   |   |-- libqmacheif.dylib|   |   |-- libqmacjp2.dylib|   |   |-- libqtga.dylib|   |   |-- libqtiff.dylib|   |   |-- libqwbmp.dylib|   |   `-- libqwebp.dylib|   |-- platforms|   |   `-- libqcocoa.dylib|   |-- printsupport|   |   `-- libcocoaprintersupport.dylib|   `-- styles|       `-- libqmacstyle.dylib`-- Resources|-- AppCtrl.json|-- AppIcon.icns|-- font|   |-- Alibaba-PuHuiTi-Medium.otf|   `-- Alibaba-PuHuiTi-Regular.otf|-- auth|   |-- auth.html|   `-- images|       |-- error.png|       `-- logo.png|-- ui|   |-- images|   |   |-- search.png|   |   `-- warning.png|   |-- ui.css|   |-- ui.html|   |-- ui.js|   `-- ui_header.html`-- resourceList|-- images|   |-- logo.png|   `-- user.png`-- resource_list.html

制作dmg脚本:

#!/usr/bin/env python3
import os
import subprocess
import sys
import argparsedef extract_dmg(dmg_path, output_dir):"""Extracts the contents of a DMG file to a specified output directory."""# Create the output directory if it doesn't existif not os.path.exists(output_dir):os.makedirs(output_dir)# Mount the DMG filemount_point = "/Volumes/dmg_tool_mount"subprocess.run(["hdiutil", "attach", dmg_path, "-mountpoint", mount_point], check=True)# Copy contents to the output directorytry:subprocess.run(["cp", "-R", f"{mount_point}/.", output_dir], check=True)finally:# Unmount the DMG filesubprocess.run(["hdiutil", "detach", mount_point], check=True)print(f"Extracted {dmg_path} to {output_dir}")def create_dmg(source_dir, dmg_output):"""Creates a DMG file from the specified source directory."""# Create the DMG filesubprocess.run(["hdiutil", "create", dmg_output, "-srcfolder", source_dir, "-ov"], check=True)print(f"Created DMG {dmg_output} from {source_dir}")def main():parser = argparse.ArgumentParser(description="Extract or create DMG files.")subparsers = parser.add_subparsers(dest='command')# Subparser for extractingextract_parser = subparsers.add_parser('extract', help='Extract a DMG file')extract_parser.add_argument('dmg', help='Path to the DMG file')extract_parser.add_argument('output', help='Directory to extract to')# Subparser for creatingcreate_parser = subparsers.add_parser('create', help='Create a DMG file from a directory')create_parser.add_argument('source', help='Directory to create DMG from')create_parser.add_argument('dmg', help='Output path for the DMG file')args = parser.parse_args()if args.command == 'extract':extract_dmg(args.dmg, args.output)elif args.command == 'create':create_dmg(args.source, args.dmg)else:parser.print_help()if __name__ == '__main__':main()

测试:

抽取Helloworld.dmg中的文件到test目录:% ./dmg_tool.py extrace Helloworld.dmg test% ls test
Applications    Helloworld.app
使用test目录下的文件,重新制作dmg文件为Helloworld2.dmg:
% ./dmg_tool.py create test Helloworld2.dmg
% ls Helloworld2.dmg
关键字:沈阳建设工程信息网 姚军_中国建筑校园招聘_关键词优化软件有哪些_产品网络推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: