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=[], pathex=[],
binaries=[], binaries=[],
datas=[ datas=[
('config.ini', '.'),
('turnstilePatch', 'turnstilePatch'), ('turnstilePatch', 'turnstilePatch'),
('cursor_auth_manager.py', '.'), ('cursor_auth_manager.py', '.'),
], ],
@@ -19,10 +18,6 @@ a = Analysis(
noarchive=False, noarchive=False,
) )
import os
if not os.path.exists('config.ini'):
raise FileNotFoundError('config.ini 文件不存在!请确保它在正确的位置。')
pyz = PYZ(a.pure) pyz = PYZ(a.pure)
exe = EXE( exe = EXE(
@@ -45,17 +40,4 @@ exe = EXE(
codesign_identity=None, codesign_identity=None,
entitlements_file=None, entitlements_file=None,
icon=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 platform
import subprocess import subprocess
def build(): def build():
system = platform.system().lower() system = platform.system().lower()
spec_file = "CursorKeepAlive.spec"
if system == 'darwin':
spec_file = 'CursorKeepAlive.mac.spec' if system not in ["darwin", "windows"]:
output_dir = 'dist/mac'
elif system == 'windows':
spec_file = 'CursorKeepAlive.win.spec'
output_dir = 'dist/windows'
else:
print(f"不支持的操作系统: {system}") print(f"不支持的操作系统: {system}")
return return
output_dir = f"dist/{system if system != 'darwin' else 'mac'}"
# 创建输出目录 # 创建输出目录
os.makedirs(output_dir, exist_ok=True) os.makedirs(output_dir, exist_ok=True)
# 运行 PyInstaller # 运行 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 os.path.exists("config.ini.example"):
if system == 'darwin': if system == "darwin":
os.makedirs(f'{output_dir}/CursorPro.app/Contents/MacOS', exist_ok=True) subprocess.run(["cp", "config.ini.example", f"{output_dir}/config.ini"])
subprocess.run(['cp', 'config.ini', f'{output_dir}/CursorPro.app/Contents/MacOS/'])
else: else:
subprocess.run(['cp', 'config.ini', output_dir]) subprocess.run(["cp", "config.ini.example", f"{output_dir}/config.ini"])
print(f"构建完成,输出目录: {output_dir}") print(f"构建完成,输出目录: {output_dir}")
if __name__ == '__main__':
build() 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