8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

有没有什么方法可以区分 Mac App Store 应用程序的重新安装和更新?

Certes 3月前

74 0

我正在开发一款电子应用并发布到 Mac App Store。我的主要目标是在卸载(并重新安装)应用时清除应用创建的用户数据,但在更新时不清除。但...

我正在开发一款电子应用程序并发布到 Mac App Store。

我的主要目标是在卸载(并重新安装)应用程序时清除应用程序创建的用户数据,但在更新时不清除。但这在 MacOS 上是不可能的,因为在 MacOS 上卸载只是将应用程序文件夹拖到垃圾箱,无法进行干预。

因此,我尝试在应用程序首次从全新安装启动时删除用户数据,但我发现无法区分卸载(重新安装)和更新。我尝试通过记住并比较应用程序包文件夹的上次修改日期来检测全新安装,但这两个过程都涉及替换应用程序包文件夹,没有留下任何线索来确定它是全新安装还是更新。

有什么方法可以在重新安装时清除用户数据,但在更新应用程序时保留用户数据吗?

帖子版权声明 1、本帖标题:有没有什么方法可以区分 Mac App Store 应用程序的重新安装和更新?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Certes在本站《macos》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我目前在 Visual Studio Code 中使用 ESP32-DevKitC-32E 和 ESP-IDF v5.2.2。我的设置包括一个 TSMP98000 光电探测器电路和一个 IR LED 驱动器电路。我的目标是从

    我目前在 Visual Studio Code 中使用 ESP32-DevKitC-32E 和 ESP-IDF v5.2.2。我的设置包括一个 TSMP98000 光电探测器电路和一个红外 LED 驱动器电路。我的目标是捕获通用空调遥控器 (K-1028E) 上按钮按下的十六进制代码。

    我使用了 NEC 远程红外 RMT 示例( https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt/ir_nec_transceiver )并接收 NEC 帧,如下所示:

    NEC frame start---
    {1:3},{0:688}
    {1:31},{0:172}
    {1:7949},{0:7349}
    {1:3},{0:75}
    {1:10},{0:166}
    {1:8377},{0:0}
    ---NEC frame end: Unknown NEC frame
    
    NEC frame start---
    {1:3},{0:1054}
    {1:678},{0:474}
    {1:3},{0:87}
    {1:266},{0:268}
    {1:144},{0:171}
    {1:32},{0:298}
    {1:2095},{0:167}
    {1:0},{0:167}
    ---NEC frame end: Unknown NEC frame
    

    但是,我想获取精确的十六进制值(例如 0x41F5BBD1)或类似于这些地址和命令的值。我有以下问题可以解决我的问题?

    1. 我如何才能找到每个按钮按下事件的确切联系?
    2. 有人能帮助我使用 ESP-IDF 设置实现类似的功能吗?谢谢。
  • void 3月前 0 只看Ta
    引用 2

    如何在 Visual Studio(.net framework) 中处理由自动化测试软件控制的 Chrome 语言 C# 当我运行自动化测试用例时,chrome 会显示一个信息栏,提示 - chrome 由自动化测试软件控制

    如何在Visual Studio(.net framework)中处理由自动化测试软件控制的Chrome 语言C#

    1. 当我运行自动化测试用例时,chrome 会出现一个信息栏,提示“chrome 由自动化测试软件控制”。

    Microsoft Visual Studio Community 2022(64 位)- 当前版本 17.10.3

    Chrome 版本 - 版本 127.0.6533.73(官方版本)(64 位)

    private IWebDriver CreateHeadlessChromeDriverWithLogging()
    {
        var options = new ChromeOptions();
        options.AddArguments("--headless");
        options.AddArgument("start-maximized");
        options.AddArgument("window-size=1920,1080");
        options.AddArguments("force-device-scale-factor=0.50");
        options.AddArguments("disable-extensions");
        options.AddArguments("disable-popup-blocking");
        options.AddArguments("test-type");
        options.AddExcludedArguments("enable-automation");
        options.AddArguments("disable-infobars");
        options.AddAdditionalOption("useAutomationExtension", false);
        options.AddExcludedArguments("enable-automation");
    
        options.SetLoggingPreference(LogType.Browser, LogLevel.All);
        new DriverManager().SetUpDriver(new ChromeConfig(), "Latest");
        return new ChromeDriver(options);
    }
    

    }

  • 下载 vscode 时,它​​不允许我接受条款和条件,例如单击同意条款和条件没有任何作用,例如它不允许我单击它。我已经使用 vscode 3 天了……

    下载 vscode 时,它​​不允许我接受条款和条件,例如单击同意条款和条件没有任何作用,例如它不允许我单击它。我 3 天前就有了 vscode,但我因为正在做某事而卸载了它,现在我无法再次下载它。

    我尝试从 %temp% 中删除临时文件,并且我尝试检查兼容性,但这也不是问题所在,我尝试使用 vscode 的系统安装程序以管理员身份运行,但这不起作用,我的文件夹中有一个用于 docker 的 linux 扩展,但是 chatgpt 说这可能不是问题所在,我不知道问题是什么。这就是我尝试过的。

    好的,我发现,在尝试安装 revo 安装程序时也会出现此问题,因为我尝试在选择语言后单击“确定”,但当我单击“确定”继续时它没有注册。所以也许问题是我无法安装任何程序或其他东西,因为我可以轻松地重新下载 python。

  • Pie 3月前 0 只看Ta
    引用 4

    我尝试让玩家在地面上时跳跃,但即使在空中它也会继续跳跃,以下是代码:public class Player : MonoBehaviour{ float moveSpeed = 5; public

    我尝试让玩家在地面上跳跃,但即使在空中它也会继续跳跃

    以下是代码:

    public class Player : MonoBehaviour
    {
        float moveSpeed = 5;
        public Rigidbody2D rb;
        float jump = 5f;
        bool isGrounded;
        // Start is called before the first frame update
        void Start()
        {
            rb.GetComponent<Rigidbody2D>();
        }
     void Update()
     {
         isGrounded = Physics2D.Raycast(transform.position, Vector2.down, 0.1f);
    
         float moveHorizontal = Input.GetAxis("Horizontal");
         rb.velocity = new Vector2(moveHorizontal * moveSpeed, rb.velocity.y);
    
         if (isGrounded && Input.GetButtonDown("Jump"))
         {
             rb.AddForce(Vector2.up * jump, ForceMode2D.Impulse);
         }
     }
    
  • 您发布的代码自相矛盾:首先,它尝试使用以下代码完全隐藏浏览器

  • 我使用了上述代码,但当我启动 Chrome 浏览器时,我仍然可以在浏览器上看到消息“Chrome 被自动软件控制”

  • 你没有问问题,你发布的代码已经控制了 Chrome。你是在问如何使用 Selenium 吗?你检查过

  • 你的问题解决了吗?还有其他问题吗?@Ahmed Hussein

  • 引用 10

    关键思想是实现地面检测,当玩家按下跳跃键时判断角色是否在地面上,只有角色在地面上才可以进行跳跃操作。关键代码如下,尝试将它们添加到你的代码中:

    private float groundCheckDistance;
    private LayerMask whatIsGround;
    private void OnDrawGizmos()
    {
        Gizmos.DrawLine(transform.position, new Vector3(transform.position.x, transform.position.y) - groundCheckDistance));
    }
    void Update()
    {
        isGrounded = Physics2D.Raycast(transform.position, Vector2.down, groundCheckDistance, whatIsGround);
    }
    

    另外,你的代码中获取 Rigidbody2D 组件的语法是错误的,正确的方法如下:

    rb = GetComponent<Rigidbody2D>();
    

    请参阅“LayerMask”和“Raycast”的用法: 在 Unity 中使用 Layers 和 Bitmask 与 Raycast

  • 对于应用商店风格的沙盒应用,所有 iOS、Android 和 Windows 系统都会在应用卸载时清除整个沙盒容器,同时提供在应用生命周期之外保存数据的其他方式。只有 macOS 会在卸载时保留容器。

  • @AlexanderLeithner 这里的“用户数据”是指存储在

返回
作者最近主题: