Files
nezhacursormac/build_mac_new.py

73 lines
2.3 KiB
Python

import PyInstaller.__main__
import os
import sys
import shutil
# 获取当前脚本所在目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 清理之前的构建
dist_dir = os.path.join(current_dir, 'dist')
build_dir = os.path.join(current_dir, 'build')
if os.path.exists(dist_dir):
shutil.rmtree(dist_dir)
if os.path.exists(build_dir):
shutil.rmtree(build_dir)
# 创建必要的目录
os.makedirs('dist', exist_ok=True)
os.makedirs('build', exist_ok=True)
# 创建logs目录
logs_dir = os.path.join(current_dir, 'logs')
os.makedirs(logs_dir, exist_ok=True)
# 打包参数
params = [
'gui/main_mac.py', # 主程序入口
'--name=听泉助手', # 应用名称
'-w', # 不显示控制台窗口
'--clean', # 清理临时文件
'--noconfirm', # 不确认覆盖
'--debug=imports', # 只显示导入相关的调试信息
'--osx-bundle-identifier=com.cursor.pro', # macOS包标识符
f'--distpath={os.path.join(current_dir, "dist")}', # 输出目录
f'--workpath={os.path.join(current_dir, "build")}', # 工作目录
f'--specpath={current_dir}', # spec文件目录
'--add-data=logger.py:.', # 添加额外文件 (Mac系统使用:分隔符)
'--add-data=update_cursor_token.py:.',
'--add-data=cursor_auth_manager.py:.',
'--add-data=reset_machine.py:.',
'--add-data=patch_cursor_get_machine_id.py:.',
'--add-data=exit_cursor.py:.',
'--add-data=go_cursor_help.py:.',
'--add-data=logo.py:.',
'--add-data=config.py:.',
'--add-data=browser_utils.py:.',
'--add-data=get_email_code.py:.',
'--hidden-import=PyQt5',
'--hidden-import=PyQt5.QtCore',
'--hidden-import=PyQt5.QtGui',
'--hidden-import=PyQt5.QtWidgets',
'--hidden-import=requests',
'--hidden-import=urllib3',
'--hidden-import=psutil',
'--hidden-import=colorama',
]
# 执行打包
PyInstaller.__main__.run(params)
print("打包完成!应用程序包(.app)已生成在dist目录下。")
# 创建必要的目录和文件
app_path = os.path.join(current_dir, 'dist', 'CursorPro.app', 'Contents', 'MacOS')
if os.path.exists(app_path):
# 创建logs目录
os.makedirs(os.path.join(app_path, 'logs'), exist_ok=True)
# 创建空的error.log文件
with open(os.path.join(app_path, 'error.log'), 'w') as f:
f.write('')
print("已创建必要的目录和文件")