一、简介

什么是Platypus?

Platypus是一个开发东西,它可认为脚本创立本地的macOS运用程序包装。脚本因而被转化为普通的运用程序,能够从窗口环境中发动,例如Finder或Dock,而不需求运用指令行界面。

Platypus于2003年首次发布,此后阅历了许多严重更新。它是用Objective-C/Cocoa编写的,是在BSD许可证下发布的免费开源软件。

Platypus是怎么作业的?

惯例的macOS运用程序是bundles – 具有特定目录结构和.app后缀的特别文件夹。一个可履行的二进制文件与资源和装备文件一同存储在绑缚包中。当运用程序绑缚包在图形用户界面中发动时,这个二进制文件将被运转。

Platypus创立的运用程序绑缚包有一个特别的可履行二进制文件,能够运转一个脚本并捕获其输出。该二进制文件能够被装备为以各种办法呈现脚本的文本输出,例如,显现一个进展条、一个文本视图、一个状况项菜单或一个依据WebKit的网络视图。

Platypus不是什么?

Platypus不是一套本地macOS APIs和脚本语言之间的绑定。它不是一个完好的GUI开发环境,也不计划用来创立具有复杂和动态用户交互的实质性运用程序。假如你想创立高级macOS运用程序,你应该学习运用Cocoa APIs编程。Platypus不是也永远不会是学习运用本地运用编程接口的替代品。

也就是说,你或许能够运用CocoaDialog、Pashua或AppleScript增加一些GUI元的交互式素。

体系要求

Platypus和它生成的运用程序都需求macOS 10.11或更高版别,并以64位ARM/Intel二进制文件供给。假如你想针对macOS 10.8-10.10,请运用5.3版。假如你想以10.6和/或32位Intel体系为目标,4.9版仍然能够正常作业。

二、基础知识

根本界面

Platypus的根本界面相对简略。当你发动 Platypus 运用程序时,你会看到一个看起来像这样的窗口。

把脚本变成本地的macOS应用程序【Platypus】

运用程序称号

你的运用程序的称号。

脚本途径

你想创立一个运用程序的脚本的途径。能够运用挑选按钮来挑选一个脚本,或许将一个脚本文件拖到Platypus窗口上。你也能够手动输入一个途径(文本字段支撑支撑shell风格的tab主动补全)。

把脚本变成本地的macOS应用程序【Platypus】

一旦你挑选了一个脚本,你能够按下修改按钮,在你的默许文本修改器中翻开它。Platypus默许运用一个十分根本的内置文本修改器。假如你想运用一个功用更强的外部修改器,你能够在**偏好设置中改动它。

新建按钮在 Platypus 运用程序支撑文件夹中创立一个脚本文件,并在默许修改器中翻开它。显现按钮在Finder中显现该脚本文件。

解说器

运用脚本类型来为你的脚本指定一个解说器。你能够从弹出的菜单中挑选一种预界说的脚本语言,或许输入解说器二进制文件的途径。

大多数情况下,你不需求手动指定。每当你翻开一个脚本文件时,Platypus会主动尝试依据文件后缀和Shebang行(#!)来确认其类型。假如你在脚本文件自身中指定了这个元数据,Platypus通常会很聪明地把它找出来。

请注意,解说器必须存在于运转运用程序的体系中。所有预设的脚本语言解说器(除了Node.js)都是所有macOS装置中的规范部分。

Args让你向脚本和/或其解说器增加参数。

把脚本变成本地的macOS应用程序【Platypus】

界面

把脚本变成本地的macOS应用程序【Platypus】

界面设置运用程序的用户界面。Platypus供给了六种不同的界面类型。

无窗口的运用程序,不供给图形反应。所有的脚本输出都被重定向到stderr

进展条

在脚本履行过程中呈现一个小窗口,上面有一个不确认的进展条和一个 “取消 “按钮。脚本输出被逐行输入进展条上方的文本字段。显现细节 “按钮会显现一个包括完好脚本输出的小文本视图。

把脚本变成本地的macOS应用程序【Platypus】

文本窗口

显现一个含有脚本输出的文本视图的窗口。请注意,这个文本视图不是个完好的、交互式的终端会话,不能用来经过stdin提示用户输入。它不支撑任何规范的终端指令,不能用来显现依据ncurses的界面。

文本视图的风格能够在文本设置下进行装备。

把脚本变成本地的macOS应用程序【Platypus】

Web View

脚本的输出在WebView窗口中被渲染成HTML。这答应你运用HTML格局和其他网络技术来向用户展现脚本输出。

浏览器实例的基础目录是运用程序绑缚的资源目录,因而你能够经过将图画和其他支撑文件增加到绑缚的文件列表中,并相关于该目录引证这些文件来包括它们。

把脚本变成本地的macOS应用程序【Platypus】

状况菜单

当运用程序发动时,在菜单栏中创立一个状况项。每次点击状况项时,脚本被履行,其文本输出在菜单中逐行显现。假如一个菜单项被选中,脚本会被再次履行,所选项目的标题作为参数传递给脚本。

状况项的特点(图标、标题等)能够在状况项设置按钮下进行装备。

[!](github.com/sveinbjornt…)

Droplet

创立一个方形窗口,指示用户将文件放在上面进行处理。在处理过程中,脚本输出会逐行显现,并有一个不确认的圆形进展指示器。

[!](github.com/sveinbjornt…)

设置图标

把脚本变成本地的macOS应用程序【Platypus】

Platypus答应你为你的运用程序设置一个图标。你能够从预设的图标中挑选,粘贴你自己的图画或挑选一个图画或icns文件。

请注意,让Platypus从一个普通的图画文件中创立图标,通常不会发生一个在小尺度下看起来不错的图标。为了取得最佳作用,请运用专业的图标修改软件,并运用挑选.icns文件选项导入一个精心制作的.icns文件。

识别符、作者和版别

标识符文本字段指定了运用程序的仅有标识符。假如你现已设置了一个运用程序称号,这将默许为 “org.yourusername.YourAppName “的办法。

每个macOS运用程序都有一个独特的字符串,称为绑缚标识符,它选用反向DNS称号的办法(例如,”com.apple.iTunes “或 “org.sveinbjorn.Platypus”)。Platypus主动运用运用程序称号和默许用户名来格局化绑缚标识符,但你能够将其设置为你想要的任何内容。默许的绑缚标识符前缀能够在**偏好中进行装备。

把脚本变成本地的macOS应用程序【Platypus】

你还能够设置作者版别的元数据。这些信息将呈现在你的运用程序的Finder “获取信息 “窗口中,以及经过运用程序菜单拜访的 “关于 “窗口中。

特别选项

把脚本变成本地的macOS应用程序【Platypus】

**以root权限运转:**假如挑选了这个选项,运用程序会提示输入管理员暗码,并运用苹果的安全框架以晋级的(root)权限履行脚本。这并不严厉等同于以根用户身份运转脚本。概况请见macOS安全框架的文档。

请注意,因为某些原因,位于/bin/bash的macOS bash shell不能以root权限运转。

Platypus脚本不能运用’sudo’指令。这将导致脚本经过 “stdin “提示输入,而因为没有输入,运用程序将无限期地挂起。

请注意,假如挑选了这个选项,因为安全API的限制,stderr输出不能被捕获。这能够经过运用一个shell脚本来履行另一个脚本,一起将stderr输送到stdout来躲避(例如:python script.py 2>&1)。

**在后台运转:**假如挑选,该运用程序在Launch Services注册为用户界面元素(LSUIElement),发动时不会显现菜单栏或呈现在Dock中。

完结后持续运转。这个选项告知运用程序在脚本履行完毕后保持翻开。

绑缚文件

绑缚文件包括的文件应该被复制到运用程序绑缚的资源文件夹中。然后,这些文件能够被你的脚本运用,而你的脚本是在同一目录下运转的。

[!](github.com/sveinbjornt…)

另请拜见FAQ中的怎么在脚本中取得我的运用程序/绑缚文件的途径?。

高级选项

承受文件和拖动的项目

勾选承受拖放的项目使运用程序绑缚承受拖放的文件,或拖放的文本片段。你能够在**拖放设置中指定运用程序应该承受哪些文件类型和可拖放数据。

[!](github.com/sveinbjornt…)

承受丢掉的文件意味着丢掉或翻开的文件的途径被作为参数传递给脚本。你能够运用UTIs(引荐)或文件名后缀来指定承受哪些文件类型。

要承受拖动的文件夹,请增加UTI public.folder。提示:你能够从Finder中拖动文件到后缀或UTI列表中,增加它们各自的后缀/UTI。

能够挑选为你的运用程序 “拥有 “的文件挑选一个文件图标(.icns文件)。

挑选承受掉落的文本使运用程序承受拖动的文本片段。文本字符串经过stdin传递给脚本。

供给macOS服务使运用程序注册为文本处理的动态服务,可从运用程序菜单的服务子菜单中拜访。假如你想让你的运用程序承受在其Dock/Finder图标上的文本片段或URL,你也需求启用它。

注册为URI计划处理程序使运用程序注册为URI计划的处理程序。这些能够是规范的URI计划,如http或你挑选的自界说URI计划(如myscheme://)。假如你的运用程序是某个URI计划的默许处理程序,它将在每次翻开符合该计划的URL时发动。该URL将作为一个参数传递给脚本。

构建时间选项

Platypus答应你创立你的脚本运用程序的开发版别。通常情况下,脚本和任何绑缚的文件都会被复制到生成的运用程序中。假如在创立运用程序对话框中挑选了开发版别,则会创立一个指向原始脚本和绑缚文件的符号链接。这答应你在修改你的脚本文件的一起,将其作为一个Platypus运用程序进行测验。

把脚本变成本地的macOS应用程序【Platypus】

优化运用程序。剥离并编译运用程序中的nib文件,以减少其巨细。这使得nib不能被修改。只要在装置了Xcode的情况下才能作业。

内置修改器

Platypus包括一个十分根本的内置文本修改器来修改脚本。按修改按钮就能够把它调出来。

[!](github.com/sveinbjornt…)

一个功用更强的外部修改器能够在**首选项中设置。

语法查看

查看脚本语法菜单经过解说器的语法查看器来验证脚本的语法。

这个功用只适用于支撑语法查看的解说器(bash, Perl, Python, Ruby, PHP 和 Swift)。

[!](github.com/sveinbjornt…)

显现 Shell 指令

Platypus包括一个与Platypus.app运用程序相对应的指令行东西,platypus,它能够经过偏好**装置到/usr/local/bin/。这个东西的手册页能够从协助菜单中取得,也能够经过指令行取得。还有一个在线版别可用。

一旦 Platypus 运用程序被装置,该指令行东西就不会以任何办法依赖于它。

[!](github.com/sveinbjornt…)

行动菜单中的显现 Shell 指令,显现运用图形界面中挑选的所有选项履行 Platypus 指令行东西所需的指令。假如你装置了指令行东西,并想在更大的构建过程中主动创立脚本运用程序,这或许很有协助。

偏好

鸭嘴兽的首选项应该是不言自明的。你能够挑选一个修改器,设置默许的作者和绑缚标识符设置,设置Platypus在运用程序创立时的行为,以及装置/卸载platypus指令行东西。

[!](github.com/sveinbjornt…)

##装备文件

保存和加载

装备文件答应你保存Platypus运用程序的装备设置。然后能够由Platypus或platypus指令行东西加载这些设置。Profiles菜单用于保存和拜访装备文件。装备文件以文件办法存储,通常在Platypus运用支撑文件夹的Profiles文件夹中(~/Library/Application Support/Platypus/Profiles)。

你能够经过从菜单中挑选加载一个装备文件,它列出了装备文件文件夹中的所有装备文件。要在Finder中显现一个装备文件,按住Command键并挑选该装备文件。装备文件有一个.platypus的文件名后缀。

[!](github.com/sveinbjornt…)

在指令行东西中运用装备文件

装备文件能够与platypus指令行东西一同运用。这答应你在图形用户界面中为你的运用程序设置所有的设置,将它们保存为一个装备文件,然后用指令行运用程序加载这些设置。这使得主动化愈加便利。下面的指令将用指令行东西加载一个装备文件,并从中创立一个名为MyApp.app的运用程序。

/usr/local/bin/platypus -P myProfile.platypus MyApp.app

更多细节见指令行东西的手册页。该手册页面的HTML版别可在此取得。

Platypus装备文件格局

Platypus Profiles是规范的macOS特点列表的XML格局。它们能够用纯文本修改器或Xcode进行修改。

从5.2版别开端,Platypus能够理解并处理Profiles中的相对途径。然而,无论是Platypus运用程序仍是指令行东西都不能生成*相对途径,所以假如你想在Profile中运用它们,你将不得不手动修改它。

用脚本输出操控GUI

显现一个警报

假如你的脚本运用下面的语法打印出一行,能够让Platypus运用程序包装器显现一个警报。

ALERT:Title|Text\n

因而, 要显现一个标题为 “Hello “和信息性文本 “World “的警报, 你应该这样做:

ALERT:Hello|World\n

显现告诉

假如你的脚本运用以下语法打印出一行,就能够使Platypus运用程序包装器在用户告诉中心显现告诉。

NOTIFICATION:My title|My text/n

操控进展条

界面类型为**进展条的脚本运用程序能够经过告诉进展条的进展来与进展条进行通信。所有格局为 “PROGRESS:\d+\n”(例如:PROGRESS:75)的脚本输出行都会被解析并用于设置进展条的完结百分比。相同,DETAILS:SHOW和DETAILS:HIDE能够用来改动脚本履行过程中Details文本字段的可见性。

停止运用程序

假如你的脚本将字符串 “QUITAPP\n “打印到STDOUT,运用程序就会退出。

铲除输出

假如你的脚本向STDOUT打印字符串 “REFRESH\n”,文本输出缓冲区将被铲除。例如,这能够用来铲除一个Web View,为新的HTML输出做准备。

将一个网站加载到一个Web View中

假如界面类型被设置为Web View,而且你的脚本打印出 “LOCATION:some.url.com\n”,Web View将加载有关的URL。

用户与CocoaDialog的互动

Platypus运用程序能够运用CocoaDialog来构建脚本,用对话框来提示用户输入。截至发稿时,CocoaDialog项目好像现已死亡,所以下面的说明或许现已过时。

  • 下载CocoaDialog
  • 将CocoaDialog.app增加到绑缚文件的列表中。

下面的脚本显现了怎么运用绑缚的CocoaDialog副本查询输入。

#!/bin/bash
CD="CocoaDialog.app/Contents/MacOS/CocoaDialog"
rv=`$CD yesno-msgbox --string-output`。
$CD ok-msgbox --no-cancel --text "你按了$rv"

这个运用程序将向用户展现一个警报和几个按钮。当用户按下其中一个按钮时,会发生一个反应对话框,告诉用户他按了哪个按钮。尽管这个特别的脚本没有完结任何任务,但它能够作为一个根本的比如来说明怎么在脚本中增加交互式元素。

创立一个状况菜单运用程序

[!](github.com/sveinbjornt…)

Platypus生成的运用程序,其界面设置为状况菜单,发动时在菜单栏中显现一个状况项。当该项目被按下时,一个菜单被翻开,脚本被履行,每一行输出被显现为菜单中的一个项目。

当用户挑选一个菜单项时,脚本再次被履行,但这次它收到了菜单标题作为一个参数。依据它是否收到一个参数,脚本能够因而确认它被调用是为了列出菜单项,仍是为了对所选的菜单项进行某种操作。

假如这一点看起来不清楚,能够看看下面的脚本,它是MacbethMenu实例的一部分。

#!/usr/bin/perl
# 假如参数为0,我们就显现菜单
if (!scalar(@ARGV)) {
    print "Life's but a walking shadow, a poor player\n";
    print "That struts and frets his hour on the stage/n";
    print "And then is heard no more.\n";
} else {
    # 我们获取菜单标题作为参数
    system("/usr/bin/say "$ARGV[0]")。
}

这个脚本创立了一个状况菜单运用,将莎士比亚的《麦克白》中的几句话作为菜单项显现。当挑选时,有关菜单项的标题会经过/usr/bin/say送入macOS语音合成器。

为菜单项设置图标

MENUITEMICON|my_bundled_file.png|Bundled file example/n
MENUITEMICON|/path/to/icon.png|绝对途径 example/n
MENUITEMICON|https://www.6hu.cc/files/2023/02/1677228950-ce1bd97b8ab6d14.png|Remote URL example/n

创立一个菜单分隔符

----\n

创立一个名为 “标题 “的子菜单,有三个菜单项目:

SUBMENU|Title|Item1|Item2|Item3\n

显现一个禁用的菜单项:

DISABLED|Name of item/n

动态地改动状况项的标题和图标

标题。

STATUSTITLE|Title\n

图标。

STATUSICON|绑缚的图画文件名或绝对途径或URL/n

经过osascript/AppleScript提示输入

脚本也能够经过/usr/bin/osascript程序运转AppleScript代码来提示输入。请看下面Perl中的一个比如。

#!/usr/bin/perl
use strict;
sub osascript($) { system 'osascript', map { ('-e', $_) } split(/\n/, $_[0]); }
sub dialog {
    my ($text, $default) = @_;
    osascript(qq{
    tell app "System Events"
    text returned of (display dialog "$text" default answer "$default" buttons {"OK"} default button 1 with title "Riddle")
    end tell
    });
}
my $result = dialog("Answer to life, the universe and everything?", "42");

Source.

比如

内置的比如

Platypus包括许多内置的比如。这些比如能够经过Profiles菜单的Examples子菜单翻开。对每个比如的扼要解说。

  • AdminPrivilegesDemo。经过在/etc/中创立一个文件并测验其是否存在,演示以root权限运转一个脚本。
  • AlertMe: 演示ALERT:和PROGRESS:的语法,在操作进展条的一起显现警报。
  • DataURLifier。将一个文件放在一个窗口上,以取得其数据URI。
  • FastDMGMounter: 创立一个DiskImageMounter的替代品。运用hdiutil指令行东西快速挂载.dmg磁盘镜像,跳过验证并主动承受任何EULA。
  • IcnsToIconset: 将Apple .icns文件转换为.iconset文件夹,并为各种表现办法供给PNG。
  • ImageResizer: 展现了怎么运用内置的macOS脚本图画处理体系(见man sips)来调整掉的图画的巨细到512×512尺度。
  • MacbethMenu: 简略的交互式状况菜单运用,显现莎士比亚的台词,并在挑选时将其送入语音合成器。
  • PostToNotificationCenter。经过运用自界说NOTIFICATION: 语法的脚本输出,在macOS告诉中心创立告诉。
  • ProcessMenu。创立一个状况菜单,当点击时显现 ps cax 的输出。
  • ProgressBar: 演示了怎么用脚本输出来操控进展条。
  • SayURLSchemeHandler。一个用于自界说URI计划say://的处理器。试着创立运用程序并在浏览器中翻开一个URL,如say://hello-world
  • SpeakDroplet。运用macOS的语音合成器来读取所有翻开的文本文件。
  • SpotlightInfo。在窗口上拖动一个文件以查看其Spotlight元数据。
  • StatusMenuDemo。显现怎么在状况菜单界面中设置菜单项图标和创立子菜单。
  • SysLoadMenu。状况菜单运用程序,显现w的输出。
  • TarGzipper: 为任何丢掉的文件创立一个gzipped tar档案。
  • WordCountService: 动态服务运用程序,对收到的文本进行字数统计,并在警报中显现成果。

假如你想出了 Platypus 的一个特别风趣的用处,并认为它或许会成为这个列表中的一个合适的补充,请随时让我知道。

更新

更新Platypus

Platypus运用Sparkle进行更新。你能够经过在运用程序菜单中挑选**查看更新…**来更新到最新版别。未来的版别或许会或或许不会损坏你保存的装备文件。请查阅版别变更日志以了解概况。

AppCast的XML文件可在[这里](sveinbjorn.org/files/appca…

要取得 Platypus 的绝对最新开发版别,你能够在 GitHub 上查看源代码库。

常见的问题

我能够运用Platypus来创立专有软件吗?

能够。Platypus是依据三条款的BSD许可证的条款和条件发布的。

协助,文本输出在脚本完结之前不会被显现出来!

你需求对输出缓冲区进行主动改写。在Python中,你能够向解说器传递-u参数以取得无缓冲的输出,或许在代码中改写输出缓冲区。

输入sys
sys.stdout.flush()

在Perl中,这能够经过在脚本开端时运用以下指令完结。

$| = 1;

关于其他脚本语言的协助,[Stack Overflow](stackoverflow.com/)是你的朋友。

Platypus是否支撑本地化?

不支撑。但是假如你在创立运用程序时在保存对话框中取消勾选 “优化nib文件”,那么运用程序绑缚包中发生的nib能够用Xcode进行修改。因而,假如您想的话,您能够手动对您的运用程序进行本地化。对本地化的支撑不在功用路线图上。

?

假定你运用的是bash,你能够将解说器设置为/bin/bash,并在 “Args “下增加l标志作为参数。这使得bash的行为就像它被作为一个登录的shell调用相同。概况见man bash

另一种办法是在你的脚本中手动加载用户的shell装备文件。

source ~/.bashrc

关于其他的shells, 请查阅它们各自的文档。

我怎样才能向我的脚本传递特定的参数?

你能够经过按下解说器控件旁边的参数按钮来修改脚本解说器和脚本自身的参数。

我怎么卸载 Platypus?

Platypus只运用了大约9MB的磁盘空间,但假如你想把它连同支撑文件、装备文件等一同完全删去,你能够从Platypus运用程序菜单中挑选卸载Platypus。这将卸载指令行东西(假如曾经装置过),并将Platypus.app及其所有支撑文件–包括保存的Profiles–移到垃圾箱。

我怎么取得Platypus的源代码和Platypus生成的运用程序二进制文件?

能够在GitHub上找到Platypus的源代码库(github.com/sveinbjornt…

在Platypus生成的运用程序中运用的二进制文件的源代码是SEController.m。

假如你做了任何改善或修复了任何错误,请告知我,这样我就能够把它们纳入正式发布的版别中。

我怎样才能从脚本中取得我的运用程序和/或绑缚文件的途径?

由Platypus生成的运用程序履行的脚本从运用程序绑缚的资源目录中运转(例如:MyApp.app/Contents/Resources)。因而,任何绑缚的文件都能够从脚本的当前作业目录中拜访。

例如,假如你增加了file.txt作为绑缚文件,想用shell脚本把它复制到用户的主目录,你能够运转以下指令。

cp file.txt ~/

要取得运用程序绑缚包自身或其包括目录的途径,你能够运用.../...(运用程序绑缚包)或.../...(运用程序绑缚包的包括目录)。

Platypus生成的运用程序怎么作业?

Platypus生成的运用程序是macOS运用程序(.app)bundles,并具有以下目录结构。

MyApp.app/运用程序绑缚文件夹
MyApp.app/Contents
MyApp.app/Contents/Info.plist 运用程序的信息特点列表
MyApp.app/Contents/MacOS
MyApp.app/Contents/MacOS/MyApp 运用程序二进制文件
MyApp.app/Contents/Resources 资源文件夹
MyApp.app/Contents/Resources/AppIcon.icns 运用程序图标
MyApp.app/Contents/Resources/AppSettings.plist 运用程序设置
MyApp.app/Contents/Resources/MainMenu.nib Nib文件,存储界面布局。
MyApp.app/Contents/Resources/script 运用程序二进制履行的脚本

运用程序二进制文件从AppSettings.plist读取设置,然后运转脚本,运用nib文件中的用户界面财物来显现脚本的输出。

二进制文件的源代码在这里。浏览一下它应该能让你对这个可履行文件的作用有一个相当透彻的了解。这是比较直接的。

我能够改动我的运用程序窗口的尺度吗?

是的,但只能在运用程序创立后手动改动它。当你按下 “创立 “键时,你需求在对话框中取消勾选 “优化运用程序(剥离nib文件)”选项。然后你能够用Xcode修改nib文件中的用户界面财物。nib文件被存储在你的运用程序包中的以下途径。

目录/资源/主菜单.nib

假如你想保留你自己修改正的nib以便重复运用,你能够简略的保存一个副本,修改它并在你创立运用程序时将其增加到**绑缚文件中。然后它将掩盖默许的MainMenu.nib文件。

Platypus 指令行东西也答应你运用 -H 标志指定一个备用的 nib 文件。详见man page。

我能够在我的Platypus包装的脚本中经过stdin提示用户输入吗?

Platypus运用程序不会向用户供给一个交互式的外壳,因而不能运用规范输入进行双向通信。Platypus 运用程序只能捕获并显现你的脚本的文本输出。它们不能经过stdin提示输入,而且在可预见的将来也不能这样做。这意味着任何需求经过stdin输入的指令,如sudo,或Python的input(),都不能在Platypus运用程序中运用。

有什么办法能够签署Platypus生成的运用程序,使它们不需求GateKeeper的同意?

Platypus生成的运用程序默许是没有签名的。因为GateKeeper的存在,这意味着它们不会在没有提示用户同意的情况下在MacOS上运转。

Platypus运用程序,像任何其他运用程序相同,能够运用以下指令签名。

/usr/bin/codesign -s "your-signing-identity" path/to/MyApp.app

概况请拜见苹果公司的[代码签名指南](developer.apple.com/library/arc…

我能够经过指令行向Platypus生成的运用程序传递参数吗?

是的,你能够经过指令行履行一个Platypus生成的二进制文件。你供给的任何参数都将被传递给你的脚本。以下面的比如为例。

# ./MyApp.app/Contents/MacOS/MyApp -arg1 -arg2

在这种情况下,-arg1-arg2都将作为参数传递给你的脚本。这个功用使得为Firefox和其他从shell调用macOS运用程序二进制文件的程序创立协议处理程序成为或许。

该指令行东西装置在哪里?

Platypus指令行东西的装置脚本会在你的体系中创立以下文件。

/usr/local/bin/platypus程序二进制文件
/usr/local/share/platypus/ScriptExec 可履行二进制文件
/usr/local/share/platypus/MainMenu.nib 运用程序的Nib文件
/usr/local/share/platypus/PlatypusDefault.icns 默许图标
/usr/local/share/man/man1/platypus.1 手册页

这些文件都被Platypus运用程序菜单中的Uninstall Platypus所删去。

我能够自界说Platypus生成的运用程序的 “关于 “窗口吗?

假如你把一个名为Credits.rtfCredits.html的文件增加到绑缚的文件列表中,它将呈现在你的运用程序的 “关于 “窗口中。