gpt4 book ai didi

macos - 在 Firemonkey 应用程序中使用 OSX 安全范围书签

转载 作者:行者123 更新时间:2023-12-02 10:54:23 28 4
gpt4 key购买 nike

我一直在使用 Delphi XE3 开发 OSX 应用程序并遇到各种问题。最新版本是为 Apple Appstore 构建的沙盒版本。

用户必须选择任意文件夹,并且应用程序需要访问它。既然有problem with the OpenDialog ,我不得不转向拖放功能。
用户将文件夹拖到应用程序中,沙箱为应用程序提供对其的临时访问权限,并且一切正常。
为了在应用程序重新启动时保留对此文件夹的访问权限,我必须使用所谓的“security-scoped bookmarks

我遇到两个问题:
1) 如何将“com.apple.security.files.bookmarks.app-scope”权限添加到XE3 firemonkey应用程序?它在“项目选项”->“权利”中不可用。如果我在“.entitlements”文件中手动添加它,那么在构建应用程序时它会被覆盖。那么有没有办法添加项目选项列表中没有的自定义权利?

2) 要创建书签,我应该使用 NSURL.bookmarkDataWithOptions方法。我认为应该这样使用,但我不确定确切的语法:

var
URL: NSURL;
Err: NSError;
Data: NSData;
...
URL := TNSURL.Create;
Data := URL.bookmarkDataWithOptions(NSURLBookmarkCreationWithSecurityScope, nil, @Err);
...

也许应该调用 Wrap(...) 而不是 Create。我还没有尝试过,因为如果没有问题 1) 的答案,它就没有意义。

似乎没有人为 Delphi 写过任何关于这些问题的文章,但我希望这里有人有这方面的经验。

提前致谢。

编辑:
对于问题1)我尝试手动添加编辑OSX32文件夹中的“.entitlements”文件并将其设置为只读以防止其被覆盖。当然,这太容易让人难以置信了,因为链接器提示该文件无法修改......

最佳答案

好的,我终于找到了手动添加“项目选项”>“权利”中不可用的权利的方法。

您不必在项目管理器中选择“App Store”构建,而是必须选择正常发布构建并照常部署应用程序。
应用程序作为 APP 包部署在 PAServer 临时目录中。该包内有一个“Entitlements.plist”文件,该文件采用 XML 格式,可以使用文本编辑器进行编辑。打开文件后,如何添加新权利是非常明显的。

编辑后,必须手动对应用程序进行代码签名并准备包。它比使用 Delphi IDE 稍微复杂一些,但是 Embarcadero 上有相关说明。和苹果网站,实际上没有任何问题。

还没有尝试过 bookmarkDataWithOptions 功能。

关于macos - 在 Firemonkey 应用程序中使用 OSX 安全范围书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com