objective-c - 如何在 App Bundle 中嵌入 Automator Action 以进行交付
问题描述
我使用的是 Objective-c Xcode 11,macOS 不是 iOS。
我在objective-c中有一个沙盒小应用程序。为了使其更易于访问,我添加了脚本支持,因此开发了一些 Automator 操作。
我想将它们嵌入到应用程序包中,这样用户就不需要单独安装它们。
关于文档,这可以通过将它们放在应用程序包中来实现,如下所示:
myapp.app/Library/Automator/actionHere
我尝试了什么:
我创建了一个存档并将完成的产品(自动化操作)复制到我的应用程序文件夹(在查找器中)并将其添加到项目中(不复制)。然后我添加了一个复制文件阶段以将其复制到上面的文件夹(选择'Wrapper'+'Library/Automator')。我尝试了“在副本上签名”和没有。
不幸的是,应用程序的签名因“根目录中存在未密封的内容”而失败 - 没有它构建的自动化操作。
两个应用程序的代码签名和证书的团队 ID 匹配。基本标识符相同,例如 com.mycompany.product 和 com.mycompany.product.automator.action1
然后我尝试将 Automator 项目嵌入为子项目。但这完全失败了......
我如何将 Automator 项目添加为主应用程序项目的子项目并在上述目录中获得最终自动化,或者如何将已经代码签名的 Automator 操作正确添加到应用程序中,以便代码签名不会失败。
问候帕特
解决方案
自动化操作
- 创建用于分发的存档
- 使用与您的主应用程序相同的证书对其进行代码设计
主应用
- 将最终产品复制到您的主应用程序(在查找器中)并将其添加到您的项目中
- 从“复制资源”构建阶段中删除它
- 创建新的复制文件阶段(在复制资源阶段之后),选择“资源”并输入“库/自动化”
- 将其添加到新的复制文件阶段
测试一下
- 创建主应用程序的存档
- 将产品复制到应用程序文件夹(重要 - 否则 OSX 不会安装操作
- 打开 Automator,您应该在那里找到您的操作。如果没有 - 重新启动。
推荐阅读
- powerbi - 如何将 API 密钥身份验证添加到 oData 连接器?
- google-apps-script - 如何通过 id 和客户端进行 OAuth 2.0 授权?
- html - 引导下拉菜单未打开
- jquery - 使用 removeClass 调整 div 上的 css 不起作用
- python - 如何使用python将.csv文件中的一行复制到另一行
- google-chrome-extension - 从扩展背景脚本自定义 Chrome 选项卡宽度
- spring - 读取配置。数据,如果springCloudConfigServer连接到本地GIT目录是否正确。而不是直接连接到 GIT 存储库。通过 HTTPS URL?
- python - 如果之前使用过参数,请防止多次调用函数
- javascript - Ajax / Javascript 操作未出现在我的主页上
- javascript - 如何在jquery中按类名获取输入元素值