【问题标题】:How to use an existing Mac app via command line? [closed]如何通过命令行使用现有的 Mac 应用程序? [关闭]
【发布时间】:2012-09-23 18:46:43
【问题描述】:

我正在寻找适应我从应用商店下载的 CSS 格式化程序应用程序,以便我可以从命令行控制它。基本上在我将文件推送到 github 之前,我想让应用程序格式化为 .css 文件。所以我想知道如何在不手动操作的情况下让应用程序运行它的进程。

我不知道从哪里开始...我有 xcode。

所以我的问题是,我从哪里开始?

你能指出我做过类似事情的人的任何文章吗? 应用程序中我最应该关注哪些文件?

感谢指导

【问题讨论】:

  • 您可以从命令行运行应用程序,方法是将它们作为任何正常的可执行文件执行...
  • “hack”是什么意思,为什么需要 Xcode?只需启动可执行文件。
  • 我正在尝试让应用程序在不离开终端的情况下运行其进程并格式化 css 文件。这样,在我将其推送到 github 之前,我可以先让应用程序格式化文件。
  • 我不明白为什么它被关闭了。这是一个真正的问题。

标签: xcode cocoa command-line terminal


【解决方案1】:

如果它是来自 Mac App Store 的常规应用,您可以在 Contents/MacOS/AppName 的应用包中找到可执行文件。

因此,例如,要启动 Mail 应用程序,您必须执行以下操作:

/Applications/Mail.app/Contents/MacOS/Mail

【讨论】:

    【解决方案2】:

    假设你不想只从命令行启动它,你想让它做一些有用的事情。

    1 - 反汇编和链接你自己的程序

    Mac 应用程序将在捆绑包(只是一个目录)中有一个可执行文件(在 TheApp.app/Contents/MacOS/APP_NAME 中)。 Xcode 并不会真的有那么大的帮助。

    应用程序很可能使用 AppKit / NSApp Cocoa 框架,并且可执行文件将创建一个应用程序实例,设置 GUI 等,注册东西。 Cocoa 应用程序在委托、回调等系统上工作。它不仅仅是一个同步运行的主要功能。它们几乎肯定不会导出您可以链接和调用的简单外部符号。即使你这样做了,你也需要头文件。

    您可以查看一个 Objective-C 反汇编程序,因为编译后的可执行文件可能有足够的符号来大致计算出正在发生的事情。但是你需要对 Objective-C 和 Cocoa 有一定的了解(至少要知道这会很困难)。

    因此,除非您知道自己在做什么,否则选项 1 并不是真正的选项,它是确定程序符号是什么/反汇编可执行文件,然后编写自己的应用程序链接到二进制文件并调用相关方法。

    2 - 编写 GUI 脚本

    另一方面,您可以查看它是否是 Apple 可编写脚本的。您可以启动应用程序,记录活动(查看 AppleScript 编辑器的记录功能)来编写实际 GUI 的脚本。这可能有效。

    3 - 与作者交谈

    如果你真的想要这个,我建议你和作者谈谈。也许他们可以将其用作命令行工具。

    【讨论】:

      猜你喜欢
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多