V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LeeeSe
V2EX  ›  Apple

Mac 应用内更新的逻辑应该是什么?

  •  
  •   LeeeSe · 2023-10-18 15:10:52 +08:00 · 1042 次点击
    这是一个创建于 404 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Mac 平台信息和邮件验证码提取:MessAuto

    目前的应用内更新逻辑:

    • 检测 GitHub 上是否有最新 release
    • 下载 zip 并解压出 MessAuto.app 文件到/tmp/MessAuto.app
    • mv /tmp/MessAuto.app /Applications/MessAuto.app

    目前 App 更新存在的问题:

    • 由于 MessAuto.app 是文件夹而不是文件,前者会被直接移动到后者文件内部,而不是直接替换,导致无法完成 app 替换更新
    • 直接手动下载 zip 替换后,原先赋予的辅助功能和磁盘权限均失效,必须手动从权限列表中删除 MessAuto 并重新添加才能运行,不删除即使赋予权限也无法生效

    目前的情况:

    • 没有开发者证书
    • 磁盘访问权限是通过 read 敏感文件位置使 macOS 自动弹出磁盘权限请求窗口,然后由用户后续操作
    • 辅助功能权限是依赖一个第三方库,但两者均有上述问题

    OP 想问的问题:

    • 正常应用内更新的逻辑应该是什么?
    • 权限问题是和开发者证书有关吗?还是和别的有关?
    5 条回复    2023-10-19 16:07:47 +08:00
    LeeeSe
        1
    LeeeSe  
    OP
       2023-10-18 15:35:30 +08:00
    来个吊大的指点一下
    shinsekai
        2
    shinsekai  
       2023-10-18 18:21:20 +08:00
    提示跳转 mac appstore 更新
    paopaosa
        3
    paopaosa  
       2023-10-19 09:27:03 +08:00
    不上架的话,不需要遵守 sandbox ,删除掉 sandbox ,随便移。
    zhaidoudou123
        4
    zhaidoudou123  
       2023-10-19 14:53:41 +08:00
    大致搜索了一下,可能用第三方库更方便点? https://sparkle-project.org/
    LeeeSe
        5
    LeeeSe  
    OP
       2023-10-19 16:07:47 +08:00
    昨天问朋友,朋友说他是不更新 .app 里的任何文件,只更新 application support 里的,第一次启动从.app 里复制一份
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5117 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 01:10 · PVG 09:10 · LAX 17:10 · JFK 20:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.