我在控制台中收到此消息:
此外,我的扩展程序不显示在系统偏好设置中:
(不,我不是在开发OneNote)
以下是我用来安装扩展程序的命令,每个命令都声称它成功了:
这里证明扩展名确实是沙箱:
我能想象的唯一可能的问题涉及我们的代码签名过程.由于各种原因,它在编译后进行了编码,使用如下命令:
codesign --force --entitlements "$ENTITLEMENT" --sign "$CODESIGN_ID" --deep "$APPEX_PATH"
Run Code Online (Sandbox Code Playgroud)
这是一项要求,遗憾的是,不能绕过.必须在生成工件后进行协同设计appex
.
但是,这在过去并不是一个问题.这就是说它已经做了一段时间,它运行良好.我能想到的唯一区别是,现在我们正在捆绑两个新.framework
的......但是那些也签了,所以我不知道该怎么做.
当我从项目中删除框架并将代码签名转移到Xcode时,它可以工作......但这不是一个永久的解决方案,因为我们仍然需要在我们的流程中稍后手动编码.
如何安装此扩展程序并保留我们的代码签名要求?
code-signing sandbox entitlements codesign macos-app-extension
我正在开发一个 safari 应用程序扩展。我必须像在旧的 Safari JS 扩展中一样收听“beforeNavigate”事件,我们可以使用Safari 的 Windows & Tabs API收听这些事件。
我浏览了How to create Safari App Extension,但不幸的是在那里找不到与这些事件相关的任何内容。
任何人都可以帮助我使用 Safari App Extensions 的类似 API,就像我们在旧的 Safari JS 扩展中一样。
safari safari-extension safari-app-extension macos-app-extension
根据 Apple 的说法,我们应该新建缩略图或预览扩展,而不是旧的快速查看生成器,后者将被弃用(可能在Big Sur中)。
也不再有Quick Look plug-in project
在Xcode中创建的选项。相反,您需要创建一个包含 Quicklook 扩展的应用程序target
。
我的问题是:如果没有无用的包装应用程序,我是否可以不再创建独立的Quick Look 扩展(或插件)来预览文件?有没有人尝试过或发现这是否仍然是一个选择?
谢谢。
macOS应用扩展如何如何验证应用商店收据?即验证应用内购买是否有效(并且持续有效)
\n\n显然,主捆绑包指向应用程序扩展的捆绑包,因此appStoreReceiptURL
属性Bundle
也会返回不存在的收据文件 \xe2\x80\x94 。
例如,以下代码分别打印出主包和应用程序商店收据路径。
\n\nlet mainBundle = Bundle.main\nprint("main bundle path: \\(mainBundle.bundleURL)")\nprint("receipt path: \\(String(describing: mainBundle.appStoreReceiptURL))")\n
Run Code Online (Sandbox Code Playgroud)\n\n当放置在应用程序扩展视图控制器内时viewDidLoad
,它返回如下结果:
main bundle path: file:///Users/${userName}/Library/Developer/Xcode/DerivedData/${projectBuild}/Build/Products/Debug/${mainAppName}.app/Contents/PlugIns/${appExtensionName}.appex/\nreceipt path: Optional(Contents/_MASReceipt/receipt -- file:///Users/${userName}/Library/Developer/Xcode/DerivedData/${projectBuild}/Build/Products/Debug/${mainAppName}.app/Contents/PlugIns/${appExtensionName}.appex/)\n
Run Code Online (Sandbox Code Playgroud)\n\n然而,看看.appex
捆绑包的内部,文件夹Contents/_MASReceipt/
不存在。
我已按照“ 创建您的第一个Safari扩展应用程序”中提到的所有说明进行操作。运行FirstSafariExtensionApp
目标后,我打开了Safari首选项的“扩展”选项卡,但是My Extension
在左窗格中找不到。我在KeyChain中具有Apple Developer
成员资格,已安装Mac Developer
和Safari Extension Developer
证书。
如何使我的第一个Safari扩展应用正常工作?
在我的 macOS 应用程序中,我尝试使用以下扩展名创建一个目录
\n\nextension URL {\n static func createFolder(folderName: String, folderPath:URL) -> URL? {\n let fileManager = FileManager.default\n let folderURL = folderPath.appendingPathComponent(folderName)\n // If folder URL does not exist, create it\n if !fileManager.fileExists(atPath: folderURL.path) {\n do {\n // Attempt to create folder\n // try fileManager.createDirectory(at: folderURL, withIntermediateDirectories: true, attributes: nil)\n // try fileManager.createDirectory(atPath: folderURL.path, withIntermediateDirectories: true, attributes: nil)\n try fileManager.createDirectory(atPath: folderURL.relativePath, withIntermediateDirectories: true, attributes: nil)\n } catch {\n print(error.localizedDescription + ":\\(folderURL.path)")\n return nil\n }\n }\n return folderURL\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n … macos file-manager macos-app-extension swift4.2 macos-mojave
macos ×3
safari ×2
code-signing ×1
codesign ×1
entitlements ×1
file-manager ×1
macos-mojave ×1
preview ×1
quicklook ×1
sandbox ×1
swift ×1
swift4.2 ×1
xcode ×1