gpt4 book ai didi

xcode - 在没有沙箱的情况下重新编译旧的 cocoa 应用程序

转载 作者:行者123 更新时间:2023-12-03 17:01:09 24 4
gpt4 key购买 nike

我有几个 Cocoa 应用程序,它们是私下分发的,不使用应用程序商店。他们至少一年没有被碰过。我需要做出一些改变。它们不能与 Apple 的沙箱一起正常工作。我尝试在 Xcode (9.4.1) 中关闭沙箱,但缺少权利文件似乎被解释为沙箱。我注意到命令行应用程序还没有这个问题。我怎样才能恢复旧的行为?过去,我对应用程序进行签名是为了最大程度地减少用户混淆,因此如果可能的话,我想继续对应用程序进行签名。

更新:我创建了一个仅调用 NSOpenPanel() 的简单应用程序,如下所示 -

@IBAction func browseFile(sender: AnyObject) {

let dialog = NSOpenPanel()

dialog.title = "Choose a .pdf file"
dialog.showsResizeIndicator = true
dialog.showsHiddenFiles = false
dialog.canChooseDirectories = true
dialog.canCreateDirectories = false
dialog.allowsMultipleSelection = false
dialog.allowedFileTypes = ["pdf"]

if (dialog.runModal() == NSApplication.ModalResponse.OK) {
let result = dialog.url // Pathname of the file

我尝试在 Xcode 8 和 Xcode 9 下构建。似乎签名过程中的某些内容发生了变化。如果我启用沙箱并给予适当的权利,那么应用程序运行时不会出现错误。否则,我会收到以下错误:

Faild to get owner UUID for url: file:///Users/david/Public error: Error

请注意,这是一个权利文件,其中包含:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<false/>
</dict>
</plist>

另外,我不清楚“david”是从哪里来的。

最佳答案

根据 Apple 技术支持,这显然是 NSOpenPanel 中的一个错误。目前他们无法解释错误消息的内容,或者为什么它只在沙箱关闭时发生。我向 Apple 提交了错误报告。

关于xcode - 在没有沙箱的情况下重新编译旧的 cocoa 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51220531/

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