feat: 优化打包
This commit is contained in:
@@ -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,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
@@ -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,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
@@ -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
|
|
||||||
)
|
|
||||||
47
build.py
47
build.py
@@ -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
5
config.ini.example
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[Account]
|
||||||
|
email = xxx@mailto.plus
|
||||||
|
password = xxxx
|
||||||
|
first_name = xxx
|
||||||
|
last_name = xxx
|
||||||
Reference in New Issue
Block a user