diff --git a/electron/build.js b/electron/build.js index ddba909eb..d58119106 100644 --- a/electron/build.js +++ b/electron/build.js @@ -492,12 +492,9 @@ async function startBuild(data) { console.log("版本:", config.version + ` (${config.codeVerson})`); console.log("系统:", platform.replace('build-', '').toUpperCase()); console.log("架构:", archs.map(arch => arch.toUpperCase()).join(', ')); - console.log("发布:", publish ? '是' : '否'); - if (publish) { - console.log("升级提示:", release ? '是' : '否'); - if (platform === 'build-mac') { - console.log("公证:", notarize ? '是' : '否'); - } + console.log("发布:", publish ? `是(${release ? '升级提示' : '静默升级'})` : '否'); + if (platform === 'build-mac') { + console.log("公证:", notarize ? '是' : '否'); } console.log("===============\n"); // drawio @@ -707,14 +704,13 @@ if (["dev"].includes(argv[2])) { { name: "MacOS", value: platforms[0], - checked: true }, { name: "Windows", value: platforms[1] } ], - validate: function(answer) { + validate: (answer) => { if (answer.length < 1) { return '请至少选择一个系统'; } @@ -725,18 +721,26 @@ if (["dev"].includes(argv[2])) { type: 'checkbox', name: 'arch', message: "选择系统架构", - choices: [ - { - name: "arm64", - value: architectures[0], - checked: true - }, - { - name: "x64", - value: architectures[1] + choices: ({platform}) => { + const array = [ + { + name: "arm64", + value: architectures[0], + }, + { + name: "x64", + value: architectures[1] + } + ] + if (platform.find(item => item === 'build-mac')) { + array.push({ + name: "通用" + (platform.length > 1 ? " (仅MacOS)" : ""), + value: 'universal' + }) } - ], - validate: function(answer) { + return array; + }, + validate: (answer) => { if (answer.length < 1) { return '请至少选择一个架构'; } @@ -754,28 +758,25 @@ if (["dev"].includes(argv[2])) { name: "是", value: true }] - } - ]; - - // 根据publish选项动态添加后续问题 - const publishQuestions = [ + }, { type: 'list', name: 'release', - message: "选择是否弹出升级提示框", + message: "选择升级方式", + when: ({publish}) => publish, choices: [{ - name: "是", + name: "弹出提示", value: true }, { - name: "否", + name: "静默", value: false }] }, { type: 'list', name: 'notarize', - message: "选择是否需要公证MacOS应用", - when: (answers) => answers.platform === 'build-mac', // 只在MacOS时显示 + message: ({platform}) => platform.length > 1 ? "选择是否需要公证应用(仅MacOS)" : "选择是否需要公证应用", + when: ({platform}) => platform.find(item => item === 'build-mac'), choices: [{ name: "否", value: false @@ -786,42 +787,44 @@ if (["dev"].includes(argv[2])) { } ]; - // 先询问基本问题 - inquirer.prompt(questions).then(async answers => { - // 如果选择发布,继续询问发布相关问题 - if (answers.publish) { - const publishAnswers = await inquirer.prompt(publishQuestions); - Object.assign(answers, publishAnswers); + // 开始提问 + const prompt = inquirer.createPromptModule(); + prompt(questions) + .then(async answers => { + answers = Object.assign({ + release: false, + notarize: false + }, answers); - if (!PUBLISH_KEY && (!GITHUB_TOKEN || !utils.strExists(GITHUB_REPOSITORY, "/"))) { - console.error("发布需要 PUBLISH_KEY 或 GitHub Token 和 Repository, 请检查环境变量!"); - process.exit() + // 发布判断环境变量 + if (answers.publish) { + if (!PUBLISH_KEY && (!GITHUB_TOKEN || !utils.strExists(GITHUB_REPOSITORY, "/"))) { + console.error("发布需要 PUBLISH_KEY 或 GitHub Token 和 Repository, 请检查环境变量!"); + process.exit() + } } + // 公证判断环境变量 if (answers.notarize === true) { if (!APPLEID || !APPLEIDPASS) { console.error("公证MacOS应用需要 Apple ID 和 Apple ID 密码, 请检查环境变量!"); process.exit() } } - } else { - // 如果不发布,设置默认值 - answers.release = false; - answers.notarize = false; - } - // 开始构建 - for (const platform of answers.platform) { - for (const data of config.app) { - data.configure = { - platform, - archs: answers.arch, - publish: answers.publish, - release: answers.release, - notarize: answers.notarize - }; - await startBuild(data); + // 开始构建 + for (const platform of answers.platform) { + for (const data of config.app) { + data.configure = { + platform, + archs: answers.arch, + publish: answers.publish, + release: answers.release, + notarize: answers.notarize + }; + await startBuild(data); + } } - } - }); + }) + .catch(_ => { }); } diff --git a/electron/entitlements.plist b/electron/entitlements.plist index 9a84bf72a..741901f2e 100644 --- a/electron/entitlements.plist +++ b/electron/entitlements.plist @@ -12,5 +12,7 @@ com.apple.security.device.camera + com.apple.security.app-sandbox + diff --git a/electron/package.json b/electron/package.json index de3634d13..fa8554e55 100755 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "DooTask", - "version": "1.0.0", + "version": "0.43.73", "description": "DooTask is task management system.", "main": "electron.js", "license": "MIT", @@ -36,7 +36,7 @@ "electron-builder": "^25.1.8", "electron-notarize": "^1.2.2", "form-data": "^4.0.1", - "inquirer": "^8.2.0", + "inquirer": "^12.4.2", "ora": "^4.1.1" }, "dependencies": { @@ -66,10 +66,10 @@ }, "build": { "appId": "com.dootask.task", - "artifactName": "${productName}-v${version}-${os}-${arch}.${ext}", + "artifactName": "DooTask-v${version}-${os}-${arch}.${ext}", "asar": true, "directories": { - "output": "dist" + "output": "dist/com-dootask-task/build-mac-generic" }, "files": [ "render/**/*", @@ -83,14 +83,19 @@ { "from": "updater/${os}/${arch}", "to": "Resources/updater", - "filter": ["**/*"] + "filter": [ + "**/*" + ] } ], "npmRebuild": false, "publish": { - "provider": "generic" + "provider": "generic", + "url": "https://www.dootask.com/desktop/publish" + }, + "releaseInfo": { + "releaseNotes": "## [0.43.73-Silence]\n\n### Bug Fixes\n\n- 全屏预览图片关闭窗口\n- 点击排序导致任务不显示的情况\n\n### Performance\n\n- 新增录音转文字\n- 优化数据排序\n\n## [0.43.49]\n\n### Performance\n\n- 添加全局搜索功能\n- 优化消息搜索\n- 团队管理支持调整部门区域尺寸\n- 任务详情支持调整聊天区域尺寸\n- 优化团队部门支持3级部门\n- 可见群组ID\n- 支持在团队管理打开群聊\n- 优化回复消息自动@逻辑\n- 转发预览隐藏表情回应部分\n- 优化任务日志\n- 已删除任务支持按标签搜索\n- 归档任务支持按标签搜索\n- 项目面板添加按标签筛选\n- 优化 AI 提示词\n- 优化 AI 设置\n\n## [0.43.18]\n\n### Bug Fixes\n\n- 首次跟ai聊天没有记录的问题\n\n### Performance\n\n- 工作报告支持查看仅未读\n- AI 支持引用文件\n- 优化图文消息\n- 优化文本信息复制\n- 优化样式\n- 无法再AI机器人页面看到模型的问题\n\n## [0.43.7]\n\n### Features\n\n- 添加 Grok AI、Ollama AI\n\n### Performance\n\n- 优化MD消息过长处理\n- 优化AI支持分析指定文件\n- 支持在AI对话中直接引用任务提问\n- 优化 AI 参数\n- 优化 Ollama AI\n- 优化设置\n- 优化AI设置\n- 优化AI消息\n\n## [0.42.85]\n\n### Bug Fixes\n\n- 撤回消息是消息列表不更新的情况\n\n### Performance\n\n- 表情回复时更新对话列表\n- Onlyoffice 支持打开超过100m的文件\n- 优化点击上传列表效果\n- AI支持自定义模型列表\n\n" }, - "releaseInfo": {}, "mac": { "icon": "../resources/assets/statics/public/images/logo-app.png", "entitlements": "entitlements.plist", @@ -99,16 +104,18 @@ "target": [ { "target": "zip", - "arch": [ - "x64", - "arm64" - ] + "arch": [] }, { "target": "dmg", "arch": [ - "x64", - "arm64" + "universal" + ] + }, + { + "target": "pkg", + "arch": [ + "universal" ] } ] @@ -118,19 +125,17 @@ "target": [ { "target": "nsis", - "arch": [ - "x64", - "arm64" - ] + "arch": [] } ], "verifyUpdateCodeSignature": false }, "nsis": { "oneClick": false, - "artifactName": "${productName}-v${version}-${os}-${arch}.${ext}", + "artifactName": "DooTask-v${version}-${os}-${arch}.${ext}", "allowToChangeInstallationDirectory": true - } + }, + "afterSign": "./notarize.js" }, "config": { "forge": { @@ -158,5 +163,6 @@ } ] } - } -} + }, + "appId": "com.dootask.task" +} \ No newline at end of file