2026/10/28 1:34:14

Quark Shell 上架 Mac App Store 指南:WebKit 沙盒、安全与兼容性注意事项

Quark Shell 上架 Mac App Store 指南:WebKit 沙盒、安全与兼容性注意事项 桌面应用开发工具【免费下载链接】quark-shell-macQuark Shell for Mac helps web developers to create native-like Mac menubar app using HTML and JavaScript without writing any native code.项目地址https://gitcode.com/gh_mirrors/qu/quark-shell-mac点击查看免费下载Quark Shell 是一个基于 WebKit 的 Mac 菜单栏menubar应用框架让你只用 HTML 和 JavaScript 就能打造原生体验的工具而无需编写任何原生代码。如果你准备用它开发的 Web 应用上架 Mac App Store本文会帮你逐一理清 WebKit 沙盒、代码签名与系统兼容性这三类核心注意事项让你的应用更顺利地通过 App Store 审核。一、认识 Quark Shell纯 Web 技术打造的菜单栏应用Quark Shell 将 app/index.html 作为应用入口app/preferences/目录下的 HTML 文件则作为设置页例如 app/preferences/general.html。页面中可以直接调用quark这个 JavaScript 对象获得通知、弹出窗口、菜单栏图标、全局快捷键等系统能力示例代码见 sample/index.html获取项目源码git clone https://gitcode.com/gh_mirrors/qu/quark-shell-mac二、上架前提沙盒与代码签名配置检查2.1 App Sandbox 已默认开启Mac App Store 强制要求应用开启沙盒App Sandbox。Quark Shell 主工程的 entitlements 中已包含com.apple.security.app-sandbox开启沙盒com.apple.security.files.user-selected.read-write用户选择的文件读写com.apple.security.network.client出站网络访问对应文件quark-shell.entitlements。如果你的应用不需要额外权限这一项基本不用动若需要访问更多资源请按需开启对应的 entitlement并理解每一项都会接受审核员审视。登录项辅助程序 quark-shell-helper.entitlements 中同样只开启了沙盒符合 MAS 对 helper 的要求。2.2 代码签名App Store 分发必须配置在 Xcode 的 Signing 中开启 Automatically manage signing并选择 App Store 分发身份。代码签名对自动更新也是硬性要求——Docs/AutoUpdate.md 明确说明出于安全考虑必须正确签名才能启用自动更新。2.3 注意 LSUIElement菜单栏应用要帮审核员找到入口quark-shell-Info.plist 中设置了LSUIElement true即应用没有 Dock 图标、只驻留菜单栏。这类 agent 应用完全可以上架 Mac App Store但建议在 App Store Connect 的审核说明Review Notes里写明应用入口在菜单栏图标处避免审核员启动后以为应用没有响应。三、WebKit 安全与行为要点3.1 存储机制LocalStorage 与 WebSQL 的位置Quark Shell 使用传统NSWebView其 LocalStorage 数据库被写入~/Library/Application Support/Bundle Identifier/LocalStorage配置见 QSHAppDelegate.m。沙盒允许应用读写自己的 Application Support 目录因此该机制在 MAS 下安全无虞。此外项目还开启了 WebSQL默认 5MB 配额见 QSHWebViewDelegate.m但不支持 IndexedDBREADME FAQ 中已说明。如果你的 Web 应用依赖 IndexedDB上架前需要改为使用 LocalStorage 或 WebSQL。3.2 导航控制外部链接一律交给系统浏览器框架的导航策略只允许file:协议在 WebView 内加载其余 URL 全部交给系统默认浏览器打开见 QSHWebViewDelegate.m。这是一个很好的安全实践网页内容无法劫持你的 WebView 窗口上架前建议保留该逻辑。3.3 发布前关闭调试模式设置quark.debug true会启用 Web 检查器相关的上下文菜单见 QSHWebViewDelegate.m。调试器本身只影响开发体验但正式发布版本中请确认未开启 debug保持发布构建干净。四、上架前的兼容性排查清单排查项结论与建议 沙盒 entitlements默认已开启符合 MAS 要求⚙️ Sparkle 自动更新与 App Store 互斥详见下文 登录项 helper必须更换 bundle identifier 通知 APINSUserNotification已弃用注意长期风险4.1 登录项 helper记得改 bundle identifierquark.setLaunchAtLogin(true)依赖 quark-shell-helper/ 这个登录项辅助程序其 identifiercom.hackplan.quark-shell-helper硬编码在 QSHWebViewDelegate.m 中。上架前必须将 helper 与主应用的 bundle identifier 一起更换为自己的团队标识README 中有相同提醒。在较新的 macOSVentura 及以后上登录项功能建议使用 Apple 新的SMAppServiceAPI 实现旧的登录项方案仍可用但 helper 必须保持沙盒内运行。4.2 Sparkle 自动更新与 Mac App Store 互斥Quark Shell 内置 Sparkle 作为更新引擎见 Podfile它通过替换应用 bundle 完成自更新——而沙盒禁止这种行为MAS 也不允许。上架 Mac App Store 的应用由 App Store 自动推送更新因此MAS 版本移除或不使用quark.checkUpdate把更新交给 App Store。自分发版本保留 Sparkle参考 updater/SampleAppcast.xml 同目录下的示例 AppCast 配置。4.3 通知 API 的弃用风险quark.notify底层使用NSUserNotification/NSUserNotificationCenter见 QSHWebViewDelegate.m。该 API 自 macOS 11 起已弃用目前仍能工作但长期来看建议迁移到UNUserNotificationCenter以规避未来系统版本的不兼容风险。4.4 较旧的第三方依赖Pdf 文件 依赖的 MASShortcut2014 年分支、Sparkle 1.13、RHPreferences 等库年代较久在较新 Xcode / macOS 上编译时可能需要做弃用 API 或架构相关的兼容性修复。建议先用 Makefile 中的make release目标构建 Release 归档确认工程可正常编译后再提交审核。五、Mac App Store 上架流程步骤更换身份信息修改 App 名称与 Bundle Identifier详见 README.md 的 Integrating Web App 一节。替换 Web 资源删除app/目录后放入你自己的 HTML/JS 文件入口保持为app/index.html。配置应用图标替换 AppIcon.appiconset 中的各尺寸图标Mac App Store 要求提供 1024×1024 的无 Alpha 图标目录中已预留icon-1024.png槽位。核对 entitlements确认沙盒与网络权限如第二节所述。构建归档在 Xcode 中选择 App Store 分发身份Archive 后通过 Xcode Organizer 上传。完善 App Store Connect 信息截图、描述中说明这是菜单栏应用图标位于屏幕右上角并在审核说明里描述如何唤起界面。提交审核通过后即可上架后续版本由 App Store 自动更新分发。 小提醒设置页的快捷键录制等原生组件说明见 Docs/Preferences.md这些功能在沙盒下均可正常工作。六、总结用 Quark Shell 把 Web 应用上架 Mac App Store 的关键可以归纳为三句话沙盒entitlements 默认配置已满足要求网络访问与用户文件权限按需保留安全保持外部链接交给浏览器的导航策略发布前关闭 debug注意通知 API 的弃用迁移兼容更换 helper 的 bundle identifier、放弃 Sparkle 自更新交给 App Store、在较新 Xcode 上先验证编译。按这份清单逐项核对后你的菜单栏应用就能以稳定的姿态进入 Mac App Store 了。赞分享桌面应用开发工具【免费下载链接】quark-shell-macQuark Shell for Mac helps web developers to create native-like Mac menubar app using HTML and JavaScript without writing any native code.项目地址https://gitcode.com/gh_mirrors/qu/quark-shell-mac点击查看免费下载相关推荐终极NW.js Mac App Store上架指南从开发到审核的完整流程终极NW.js Mac App Store上架指南从开发到审核的完整流程 NW.js作为一款能让开发者直接从DOM/WebWorker调用Node.js模块的桌面应用跨平台Electron 应用上架 Mac App Store 完整指南MAS 构建、代码签名与沙盒合规Electron 应用上架 Mac App Store 完整指南MAS 构建、代码签名与沙盒合规 导读 本文是围绕 Electron 官方仓库中 docs/t桌面应用跨平台深度解析CMAQ空气质量模型从架构设计到性能优化的完整实战指南深度解析CMAQ空气质量模型从架构设计到性能优化的完整实战指南 CMAQCommunity Multiscale Air Quality Model是美国上一篇Blender 3MF插件开启3D打印全彩创作新时代下一篇如何用Python实现百度网盘高速下载3分钟搞定限速烦恼的终极方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考