LeeeSe
V2EX  ›  Apple

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

  •  
  •   LeeeSe · Oct 18, 2023 · 1812 views
    This topic created in 954 days ago, the information mentioned may be changed or developed.

    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 replies    2023-10-19 16:07:47 +08:00
    LeeeSe
        1
    LeeeSe  
    OP
       Oct 18, 2023
    来个吊大的指点一下
    shinsekai
        2
    shinsekai  
       Oct 18, 2023
    提示跳转 mac appstore 更新
    paopaosa
        3
    paopaosa  
       Oct 19, 2023
    不上架的话,不需要遵守 sandbox ,删除掉 sandbox ,随便移。
    unneeded
        4
    unneeded  
       Oct 19, 2023
    大致搜索了一下,可能用第三方库更方便点? https://sparkle-project.org/
    LeeeSe
        5
    LeeeSe  
    OP
       Oct 19, 2023
    昨天问朋友,朋友说他是不更新 .app 里的任何文件,只更新 application support 里的,第一次启动从.app 里复制一份
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   849 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 21:09 · PVG 05:09 · LAX 14:09 · JFK 17:09
    ♥ Do have faith in what you're doing.