feat: 优化打包

This commit is contained in:
cheng zhen
2024-12-29 08:59:43 +08:00
parent bd45b1f1a6
commit 7dc3af0798
5 changed files with 33 additions and 139 deletions

View File

@@ -1,56 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['cursor_pro_keep_alive.py'],
pathex=[],
binaries=[],
datas=[
('turnstilePatch', 'turnstilePatch'),
('cursor_auth_manager.py', '.'),
],
hiddenimports=[
'cursor_auth_manager'
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='CursorPro',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=None
)
app = BUNDLE(
exe,
name='CursorPro.app',
icon=None,
bundle_identifier='com.yourcompany.cursorpro',
info_plist={
'CFBundleShortVersionString': '1.0.0',
'CFBundleVersion': '1.0.0',
'NSHighResolutionCapable': True,
'LSBackgroundOnly': False,
},
)

View File

@@ -5,7 +5,6 @@ a = Analysis(
pathex=[],
binaries=[],
datas=[
('config.ini', '.'),
('turnstilePatch', 'turnstilePatch'),
('cursor_auth_manager.py', '.'),
],
@@ -19,10 +18,6 @@ a = Analysis(
noarchive=False,
)
import os
if not os.path.exists('config.ini'):
raise FileNotFoundError('config.ini 文件不存在!请确保它在正确的位置。')
pyz = PYZ(a.pure)
exe = EXE(
@@ -46,16 +41,3 @@ exe = EXE(
entitlements_file=None,
icon=None
)
app = BUNDLE(
exe,
name='CursorPro.app',
icon=None,
bundle_identifier='com.yourcompany.cursorpro',
info_plist={
'CFBundleShortVersionString': '1.0.0',
'CFBundleVersion': '1.0.0',
'NSHighResolutionCapable': True,
'LSBackgroundOnly': False,
},
)

View File

@@ -1,44 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['cursor_pro_keep_alive.py'],
pathex=[],
binaries=[],
datas=[
('config.ini', '.'),
('turnstilePatch', 'turnstilePatch'),
('cursor_auth_manager.py', '.'),
],
hiddenimports=[
'cursor_auth_manager'
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='CursorPro',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=None
)

View File

@@ -2,34 +2,41 @@ import os
import platform
import subprocess
def build():
system = platform.system().lower()
spec_file = "CursorKeepAlive.spec"
if system == 'darwin':
spec_file = 'CursorKeepAlive.mac.spec'
output_dir = 'dist/mac'
elif system == 'windows':
spec_file = 'CursorKeepAlive.win.spec'
output_dir = 'dist/windows'
else:
if system not in ["darwin", "windows"]:
print(f"不支持的操作系统: {system}")
return
output_dir = f"dist/{system if system != 'darwin' else 'mac'}"
# 创建输出目录
os.makedirs(output_dir, exist_ok=True)
# 运行 PyInstaller
subprocess.run(['pyinstaller', spec_file, '--distpath', output_dir, '--workpath', f'build/{system}'])
subprocess.run(
[
"pyinstaller",
spec_file,
"--distpath",
output_dir,
"--workpath",
f"build/{system}",
]
)
# 复制配置文件
if os.path.exists('config.ini'):
if system == 'darwin':
os.makedirs(f'{output_dir}/CursorPro.app/Contents/MacOS', exist_ok=True)
subprocess.run(['cp', 'config.ini', f'{output_dir}/CursorPro.app/Contents/MacOS/'])
if os.path.exists("config.ini.example"):
if system == "darwin":
subprocess.run(["cp", "config.ini.example", f"{output_dir}/config.ini"])
else:
subprocess.run(['cp', 'config.ini', output_dir])
subprocess.run(["cp", "config.ini.example", f"{output_dir}/config.ini"])
print(f"构建完成,输出目录: {output_dir}")
if __name__ == '__main__':
if __name__ == "__main__":
build()

5
config.ini.example Normal file
View File

@@ -0,0 +1,5 @@
[Account]
email = xxx@mailto.plus
password = xxxx
first_name = xxx
last_name = xxx