如何在 App Bundle 中嵌入 Automator Action 以进行交付
How to embed Automator Action in App Bundle for delivery
我在 Objective-c Xcode 11,macOS 不是 iOS。
我在 objective-c 中有一个沙盒化的小应用程序。为了使其更易于访问,我添加了脚本支持,因此开发了一些 Automator 操作。
我想将它们嵌入到应用程序包中,这样用户就不需要单独安装它们了。
关于文档,将它们放在应用程序包中是这样的:
myapp.app/Library/Automator/actionHere
我尝试了什么:
我创建了一个存档并将完成的产品(automator 操作)复制到我的应用程序文件夹(在 finder 中)并将其添加到项目中(不复制)。然后我添加了一个复制文件阶段将其复制到上面的文件夹(选择'Wrapper' + 'Library/Automator')。我尝试了 "Sign on copy" 和不使用
不幸的是,应用程序签名失败 "unsealed contents present in root directory" - 如果没有自动操作,它可以正常构建。
两个应用的协同签名和证书的团队 ID 匹配。
基本标识符相同,例如com.mycompany.product 和 com.mycompany.product.automator.action1
然后我尝试将 Automator 项目作为子项目嵌入。但这根本失败了....
我如何将 Automator 项目添加为主应用程序项目的子项目并在上述目录中获取最终的自动化程序,或者我如何将已经协同签名的 Automator 操作正确添加到应用程序中,以便协同签名不会'没有失败。
问候
帕特
自动操作
- 创建用于分发的存档
- 使用与主应用程序相同的证书对其进行编码
主应用程序
- 将最终产品复制到您的主应用程序(在 finder 中)并将其添加到您的项目中
- 将其从 "Copy resources" 构建阶段删除
- 创建新的复制文件阶段(在复制资源阶段之后),select "Resources" 并输入 "Library/Automator"
- 将其添加到新的复制文件阶段
测试一下
- 创建您的主要应用程序的存档
- 将产品复制到应用程序文件夹(重要 - 否则 OSX
不会安装操作
- 打开 Automator,您应该可以在那里找到您的操作。如果没有 - 重新启动。
比
更好的解决方案
- 将自动操作添加为依赖项
- 添加新的复制文件阶段
- 目标更改为产品目录
- 将子路径更改为
${CONTENTS_FOLDER_PATH}/Library/Automator
(例如 Pixelmator)
为了正确的行为,app bundle 必须放在 /Applications
我在 Objective-c Xcode 11,macOS 不是 iOS。
我在 objective-c 中有一个沙盒化的小应用程序。为了使其更易于访问,我添加了脚本支持,因此开发了一些 Automator 操作。
我想将它们嵌入到应用程序包中,这样用户就不需要单独安装它们了。
关于文档,将它们放在应用程序包中是这样的:
myapp.app/Library/Automator/actionHere
我尝试了什么:
我创建了一个存档并将完成的产品(automator 操作)复制到我的应用程序文件夹(在 finder 中)并将其添加到项目中(不复制)。然后我添加了一个复制文件阶段将其复制到上面的文件夹(选择'Wrapper' + 'Library/Automator')。我尝试了 "Sign on copy" 和不使用
不幸的是,应用程序签名失败 "unsealed contents present in root directory" - 如果没有自动操作,它可以正常构建。
两个应用的协同签名和证书的团队 ID 匹配。 基本标识符相同,例如com.mycompany.product 和 com.mycompany.product.automator.action1
然后我尝试将 Automator 项目作为子项目嵌入。但这根本失败了....
我如何将 Automator 项目添加为主应用程序项目的子项目并在上述目录中获取最终的自动化程序,或者我如何将已经协同签名的 Automator 操作正确添加到应用程序中,以便协同签名不会'没有失败。
问候 帕特
自动操作
- 创建用于分发的存档
- 使用与主应用程序相同的证书对其进行编码
主应用程序
- 将最终产品复制到您的主应用程序(在 finder 中)并将其添加到您的项目中
- 将其从 "Copy resources" 构建阶段删除
- 创建新的复制文件阶段(在复制资源阶段之后),select "Resources" 并输入 "Library/Automator"
- 将其添加到新的复制文件阶段
测试一下
- 创建您的主要应用程序的存档
- 将产品复制到应用程序文件夹(重要 - 否则 OSX 不会安装操作
- 打开 Automator,您应该可以在那里找到您的操作。如果没有 - 重新启动。
比
- 将自动操作添加为依赖项
- 添加新的复制文件阶段
- 目标更改为产品目录
- 将子路径更改为
${CONTENTS_FOLDER_PATH}/Library/Automator
(例如 Pixelmator)
为了正确的行为,app bundle 必须放在 /Applications