質問するログイン新規登録
AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

921閲覧

AppleScriptをXcodeなどでアプリケーション化できますか

kk_sato

総合スコア21

AppleScript

AppleScriptは、アップル社が開発しているMac OS用のスクリプト言語。AppleScript本体に限らず、同じ言語で多くのAppleScript対応アプリケーションを操縦することが可能です。 自然言語(英語)に近い構文を持ちます。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2022/10/03 02:58

0

0

AppleScriptのアプリケーション化をXcodeなどでできますか?
引数付きだとAppleScriptになるという事まではわかったのですが、そのAppleScriptをアプリケーション化するまでをXcodeなどからできないかというご相談です。

以下はUnity起動時にフルスクリーンにするソースです。
これをアプリケーション化までXcodeなどでできれば良いのですが。
ご教授頂ければ幸いです。

イメージ説明

AppleScript

1do shell script "Users/UserName/Desktop/Test.app/Contents/MacOS/Test -screen-fullscreen 0"

Unity スタンドアロンプレイヤーのコマンドライン引数
https://docs.unity3d.com/ja/2021.2/Manual/PlayerCommandLineArguments.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bongo

2022/10/08 10:27

ご提示のスクリーンショットはアイコンがアプリケーションのものになっているようですが、ご質問者さんはAppleScriptをアプリケーションとして保存しているのでしょうか(https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-08/fb4863f8-1d1a-4055-ab92-ad1f92c33988.png )。確かにXcodeを使ってアプリケーションを作ることもできるだろうとは思うのですが、スクリプトエディタでアプリケーションとして保存するのでも問題なさそうに感じるのですが... ※ちなみに「フルスクリーンにする」ということでしたら、オプションの引数は1...つまり do shell script "Users/UserName/Desktop/Test.app/Contents/MacOS/Test -screen-fullscreen 1" とするべきではないでしょうか。
kk_sato

2022/10/08 16:31

Bongo様 情報不足ですみません。 > AppleScriptをアプリケーションとして保存しているのでしょうか その通りです。 行いたいのはWindowsで言う「ショートカット」を作りたいのです。Macだとエイリアス。 Windowsではショートカットに引数を付けてアプリを起動できるので、Macでも似たような事ができないかなと。 色々調べたらShellスクリプトだとか、AppleScriptを介してとか出てきたので、Shellスクリプトを格納したAppleScriptアプリケーションじゃなきゃ駄目なのかと思った次第です。 単純に**アイコンクリックしたら、引数付きでアプリを起動**したいだけなのです。 それをXcodeとかで出力できないものかと。 --- > スクリプトエディタでアプリケーションとして保存するのでも問題なさそうに感じるのですが... TerminalでとかDos窓でとか、言語が表示される様な感じのものは一般人には受け入れてもらえないので、機能としてそこまでを作り込みたいという感じです。 --- フルスクリーン時はご指摘通り、以下でございます。ありがとうございます。 ```AppleScript do shell script "Users/UserName/Desktop/Test.app/Contents/MacOS/Test -screen-fullscreen 1" ```
guest

回答1

0

なるほど、ゲームのプレイヤーに対して「フルスクリーンで起動したい場合は、まずスクリプトエディタを起動して...」などとやってもらうのはさすがに不親切なので、もっと簡単に作れる手順を提供したいということでしょうかね?
あいにく使用経験が乏しくて自信がないのですが、Automatorでできないか試してみることにしました。

まずアプリケーションとしてワークフローを新規作成し...

図1

下記のようなワークフローを構成してみました。

  • ドロップされた項目を取得し、アプリケーションだけを抜き出して、変数applicationsに保存しておく。
  • ダイアログボックスを表示してオプション文字列を入力してもらう。
  • 入力された文字列の後ろにapplicationsの内容を添えて「シェルスクリプトを実行」に引き渡す。
  • 「シェルスクリプトを実行」ではオプション付きでアプリケーションを実行するシェルスクリプトを作成し、さらにそれをアプリケーションの体裁に整えて、元のアプリケーションと同じフォルダに保存する。

図2

「シェルスクリプトを実行」の「入力の引き渡し方法:」は「引数として」に変更し、下記のようなコードを記入しました。

sh

1# 最初の引数にオプション文字列が入っているので、それを取得する 2optString=$1 3 4# 残りの引数がアプリケーションのパスなので、それらについてループする 5shift 6for appPath in "$@" 7do 8 # Info.plistから実行ファイルの名前を取得する 9 execName=$(defaults read ${appPath}/Contents/Info CFBundleExecutable) 10 11 # appPathにexecNameをくっつけて実行ファイルのパスとする 12 execPath=${appPath}/Contents/MacOS/${execName} 13 14 # appPathの名前を変えてオプション付き実行用アプリケーションのパスとする 15 # (名前は自由に変えていいですし、アプリケーションを作った後でリネームしても動作上問題はないはずです) 16 newAppPath=${appPath/%.app/ (Options).app} 17 18 # アプリケーションのガワを作る 19 mkdir ${newAppPath} 20 mkdir ${newAppPath}/Contents 21 mkdir ${newAppPath}/Contents/MacOS 22 23 # アプリケーション起動を担当するスクリプトの名前とパスを決める 24 scriptName="launch.sh" 25 scriptPath=${newAppPath}/Contents/MacOS/${scriptName} 26 27 # scriptPathにコマンドを書き込む 28 { 29 echo "#!/bin/sh" 30 echo "${execPath} ${optString}" 31 } > ${scriptPath} 32 33 # すべてのユーザーによるscriptPathの実行を許可する 34 chmod a+x ${scriptPath} 35 36 # Info.plistのパスを決める 37 infoPath=${newAppPath}/Contents/Info.plist 38 39 # Info.plistに実行ファイルとしてscriptNameを設定する 40 defaults write ${infoPath} CFBundleExecutable ${scriptName} 41done

できあがったAutomatorアプリケーションに対してUnityで作ったゲームアプリケーションをドロップすると、ゲームをオプション付きで起動するためのアプリケーションが作られるかと思います。

起動用アプリケーションのガワを作ることについては「【Mac】シェルスクリプトをmacOS App化してみる - Qiita」をまねてみたのですが、アイコンについては手抜きして未設定です。
元のアプリケーションからアイコンファイルを持ってきて設定するように作ることもできるかもしれませんが、これぐらいでしたらプレイヤーの方に「情報を見る」でお気に入りのアイコンをペーストしてもらう(参考:Macでファイルやフォルダのアイコンを変更する - Apple サポート (日本))というのでも許してもらえませんかね?

投稿2022/10/10 03:55

Bongo

総合スコア10816

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kk_sato

2022/10/10 22:25

詳しい回答ありがとうございます。 Automatorは使った事がないので四苦八苦しておりますが、色々なコマンドが用意されてますね。 新しい視点ですので紆余曲折がありそうですが、ちょっと試してみようと思います。 Unityアプリに関しては仰るとおり、ユーザービリティを考えております。 パスがとかOSがと言った言葉が通じなかったりするので。 追って成果が出たらまたご報告させて頂きます。 貴重なお時間を頂戴致しまして、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問