python二进制程序打包为 mac app(dmg)-材料准备

简介: python二进制程序打包为 mac app(dmg)-材料准备

python二进制程序打包为 mac app(dmg)-材料准备

前言

刚刚利用Pyinstaller打包了一个应用, 打包最终产物是一个二进制文件配合一些资源文件


本篇研究如何将终产物变成一个 app, 进一步变成 dmg, 就和你网上下载的工具一样


准备工作

  • 二进制打包产物
  • 一张logo图(png文件)1024x1024

你问我为啥要这么大图?不好意思,苹果规定的,我也不知道😂!

  • mac 电脑一台

新建一个文件夹

嗯, 就是一个正常的文件夹, 名字叫 garbevents(你们自己随意哈), 后面所有的修改除重命名本文件夹以外, 「都在这个文件夹里进行」


别问,就是这样你跟着我做

logo制作

这个东西是咱们的应用图标,接下来我们一起做logo!

  • 我们的文件大小是256x256的,需要调整大小
  • 用mac 自带的图片查看器,挑战分辨率为1024x1024
  • 接下来开始生产苹果专用的logo文件
// 这里直接在桌面路径下操作
// 把刚刚生成的图片命名为icon.png
cd /Users/lijiawei/desktop
// 新建临时文件夹
mkdir tmp.iconset
// 生成特定分辨率的图片,并保存到临时文件夹 
sips -z 16 16     icon.png --out tmp.iconset/icon_16x16.png
sips -z 32 32     icon.png --out tmp.iconset/icon_16x16@2x.png
sips -z 32 32     icon.png --out tmp.iconset/icon_32x32.png
sips -z 64 64     icon.png --out tmp.iconset/icon_32x32@2x.png
sips -z 128 128   icon.png --out tmp.iconset/icon_128x128.png
sips -z 256 256   icon.png --out tmp.iconset/icon_128x128@2x.png
sips -z 256 256   icon.png --out tmp.iconset/icon_256x256.png
sips -z 512 512   icon.png --out tmp.iconset/icon_256x256@2x.png
sips -z 512 512   icon.png --out tmp.iconset/icon_512x512.png
sips -z 1024 1024 icon.png --out tmp.iconset/icon_512x512@2x.png
// 生成.icns文件
iconutil -c icns tmp.iconset -o icon.icns
  • 依次执行完上面的神秘代码之后,你会得到一个icon.icns文件,如下所示

Contents 文件夹

新建一个 Contents 文件夹, 至于为什么要这么命名, 其实是苹果对于 app 的规定, 遵守就好

里面的东西如下:

lijiawei@bogon Documents % tree garbevents 
garbevents
└── Contents
    ├── MacOS
    │   └── gbweb
    ├── Resources
    │   └── icon.icns
    └── info.plist
3 directories, 3 files
  • info.plist app 的清单文件, 后面看
  • MacOS python打包的二进制产物复制进来
  • Resource 资源文件都会在这里,图标之类的

info.plist

这个是清单文件,一个 xml, 但是语法比较怪 ,key 和 value 分别是某个标签的 content。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>gbweb</string>
    <key>CFBundleIconFile</key>
    <string>icon.icns</string>
    <key>CFBundleIdentifier</key>
    <string>garbevents</string>
    <key>NSHighResolutionCapable</key>
    <false/>
    <key>LSUIElement</key>
    <false/>
</dict>
</plist>

这是我的,你们记得修改为自己的内容

  • CFBundleExecutable: 你要运行的二进制, 这里是 json_to_dart
  • CFBundleIconFile: 应用图标的指向, 相对 Resources 文件的路径
  • CFBundleIdentifier: 应用唯一标示, 这里根据你的情况写
  • NSHighResolutionCapable: 是否支持高清(Retina 屏,建议设置为 true)
  • LSUIElement: 是否后台运行,就是有没有前台进程

重命名.app

到最外面重命名文件夹, 加上.app 后缀, 就会自动变成一个 app 了

运行

到此为止,你就得到了一个app,你可以双击运行他!到了这步已经可以使用了, 但是一般情况下, 会使用 dmg 格式来分发应用!

下篇文章我们讲一下,如何发分应用!

相关文章
|
1月前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
1月前
|
缓存 监控 Android开发
京东 item_get_app 接口深度分析及 Python 实现
京东item_get_app接口可获取商品原始详情数据,包含更丰富的字段和细节,适用于电商分析、价格追踪等场景。需通过认证获取权限,支持字段筛选和区域化数据查询。
|
2月前
|
缓存 数据挖掘 API
淘宝 item_get_app 接口深度分析及 Python 实现
淘宝item_get_app接口是淘宝开放平台提供的移动端商品详情数据获取接口,相较PC端更贴近APP展示效果,支持获取APP专属价格、促销活动及详情页结构,适用于电商导购、比价工具、数据分析等场景。接口采用appkey+appsecret+session认证机制,需申请相应权限。本文提供Python调用示例及使用注意事项,帮助开发者高效对接移动端商品数据。
|
2月前
|
人工智能 Linux 开发工具
Python从零到一:手把手带你写出第一个实用程序
Python语法简洁易懂,适合编程新手入门。它广泛应用于人工智能、自动化办公、Web开发等领域。学习Python可快速搭建项目,拥有丰富库支持和强大社区资源。通过本教程,你将掌握基础语法、环境搭建、程序逻辑控制及实战项目开发,开启编程之旅。
239 0
|
15天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(一):认识Python、Py解释器作用;编写第一个Python程序;Python中的基本数据结构
认识Python 前提安装好Python,这里使用3.13版本 如今Python作为变成姐最炙手可热的编程语言,它的使用途径涵盖绝大部分生活中需要的开发需要。 许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA都大量地使用Python。
293 1
|
28天前
|
设计模式 决策智能 Python
Python条件控制:让程序学会"思考"的魔法
本文深入浅出地讲解Python条件控制,从基础if语句到多分支、嵌套结构,再到简洁的三元表达式与Python 3.10新增的match-case模式匹配,结合电商折扣、会员等级、ATM系统等实战案例,全面掌握程序“智能决策”的核心逻辑。
240 0
|
1月前
|
缓存 供应链 开发者
1688 item_get_app 接口深度分析及 Python 实现
1688平台item_get_app接口专为移动端设计,提供商品原始详情数据,包含批发价格、起订量、供应商信息等B2B特有字段,适用于采购决策、供应链分析等场景。接口需通过appkey+access_token认证,并支持字段筛选,返回结构化数据,助力企业实现智能采购与供应商评估。
|
5月前
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
372 68
|
2月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案
|
5月前
|
数据采集 存储 Web App开发
逆向音乐APP:Python爬虫获取音乐榜单
逆向音乐APP:Python爬虫获取音乐榜单
410 58

热门文章

最新文章

推荐镜像

更多