問題タブ [launch-services]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - コマンドラインからデフォルトの Web ブラウザを設定しますか?
コマンドラインからOS XでデフォルトのWebブラウザーを設定する方法を見つけようとしています。このフォーラムの投稿を見つけましたが、彼らが取り組んでいる解決策は、特定のアプリケーションで特定の URL を開くことです。デフォルトのブラウザ システム全体を設定する方法を探しています。GitHub にはObjektivという名前のこの素敵なアプリがあり、まさに私が求めていることを実行しますが、それはアプリです。どうやら、NSWorkSpace のデフォルト ブラウザを設定するための Cocoa メソッドがあるようです。
このために設定ファイルcom.apple.LaunchServices
を変更する必要があります。
コマンドラインから別のデフォルトブラウザを設定する方法は?
手伝ってくれてありがとう。
objective-c - 同じバンドル ID を持つ複数のアプリを検索する
特定のバンドル ID で Mac にインストールされているアプリケーションを検索しようとしています。私はこの質問LSFindApplicationForInfo
で見つかったを使用してこれを行うことができます。
私が直面している問題は、同じバンドル ID を持つインストール済みアプリケーションを検索する方法がわからないことです。たとえば、 の 2 つのバージョンがインストールされている場合com.domain.coolapp
、両方を一覧表示するにはどうすればよいですか? を使用して .app ファイルを検索する以外に、解決策が見つからないようですlsregister
。
ドキュメントに記載されているように、これは使用できませんLSFindApplicationForInfo
:
指定された特性に一致するアプリケーションが複数見つかった場合、Launch Services は、アイテムを開くための優先アプリケーションを検索する場合と同じ方法で 1 つを選択します。
objective-c - 他のほとんどの OS X アプリと比較して、アプリケーションを「自然に」起動するには、-[NSApp activateIgnoringOtherApps:] に正確に何を渡す必要がありますか?
自分で NSApplications を起動する方法を学んだとき、使用したコード ( hereおよびhereに基づく) は
これにより、起動時にアプリが強制的に前面に表示されます。
他のほとんどのアプリが何をするのか知りたいです。バイナリとアプリバンドルの両方からプログラムを直接実行できるようにしたいのですが、これをビルドするために Xcode を使用していません (生のビルド)。だから、いわば自然に行動したい。
ドキュメントには Finder issues と書かれてNO
いますが、なぜ Finder なのですか? これは、プロセスの外ではなく、プロセス内から実行されるメソッドではないでしょうか。(私はその選択を制御できません。) そして、Dock やその他の可能性のあるエントリ ポイントについてはどうでしょうか。
10.8 を逆アセンブルして動作を確認するところまで行きましたNSApplicationMain()
が、32 ビット バージョンからわかる限り、この「軽い起動」がこのセレクターを発行しない限り、このセレクターは呼び出されません。
この質問に対する答えはありますか?ありがとう...そして、これが紛らわしい場合は申し訳ありません。できるだけわかりやすく言葉にしてみました。
python - OSX で初めてアプリケーションを開いたときに表示されるダイアログを無効にする
Python 2.7を使用してosx 10.9でアプリを作成しています。しかし、初めて起動すると、警告が表示されます。
アプリケーション MYAPP を初めて開いています。このアプリケーションを開きますか?
では、この警告を回避する方法。app の info.plist を変更する必要がありますか。
このQ&Aを確認しましたが、アプリ側の変更については何も言及されていません。
ユーザーが何らかのコマンドを使用して手動で実行または変更することは望ましくありません。ユーザーは"com.apple.LaunchServices LSQuarantine -bool NO"
、すべてまたは"xattr -rd com.apple.quarantine Application.app"
特定のアプリに対して無効にすることができます。
また、開発者 ID でアプリに署名しました。
それで、このダイアログボックスがポップしないようにする方法。
macos - OSX Yosemite: Launch Services には、実行パスではなく、アプリケーションへのビルド パスがあります
Mavericks (またはそれ以前の Mountain Lion) では問題がなかったので、これは Yosemite に固有の問題だと思います...
SMLoginItemSetEnabled を使用して起動時に実行するヘルパー アプリを登録するアプリケーションを作成しました。ここでは何の問題もありません。これはうまくいきます。
SMLoginItemSetEnabled は、バンドル識別子 (「com.MyCompany.MyApp」など) を取得し、Launch Services を介してそのバンドルのパスを見つけ、起動時に実行することで機能します。
問題は、プロジェクトを「アーカイブ」すると、アーカイブ ビルド出力が Launch Services のバンドルのパスとして自動的に登録されることです。Yosemite では、そのバンドルを /Applications にコピーして実行しても、Launch Services は引き続きビルド パスを指します。私のアプリはサンドボックス化されているため、OSX は起動時にヘルパーの実行を拒否します。
例えば:
バンドルを /Applications にコピーし、現在その場所から実行しているにもかかわらず、起動サービスはまだビルド パスを指しています。
Mavericks と Mountain Lion では、Launch Services がデバッグ ビルド ディレクトリを指すパスを持っているため、最後にアプリを実行したときに xcode の [再生] ボタンを使用してデバッグ モードにすると、同様の問題が発生しました。しかし、アーカイブを作成して /Applications にコピーし、そこから実行するとすぐに、すべてがうまくいきました。Yosemite は、バンドルのバージョンが変更された場合にのみ Launch Services データベースを更新するようです。バンドルをある場所から別の場所にコピーするだけでは更新されません。
誰にもアイデアはありますか?コードまたはコマンド ラインを使用して、強制的に Launch Services にバンドルへのパスを更新させる方法はありますか?
c++ - LSOpenApplication は廃止されましたか?
このページによると、この関数LSOpenApplication
はOS X v10.10
. 提案された代替案は、-[NSWorkSpace launchApplicationAtURL]
代わりに使用することです。残念ながら、Cocoa で書かれた GUI アプリケーションを起動する必要があるユーザー エージェントを C++ で書いています。これは、Cocoa 機能 (前述の代替機能を含む) にアクセスできないことを意味します。
非推奨としてマークされていない他のどの機能を使用してこれを行うことができますか?
前もって感謝します。
macos - Mac OS X ファイルの関連付けは機能するが、ファイル アイコンは変更されない
Qt 5.3.2 を使用して Mac アプリケーションを開発しました。このアプリケーションは、特定の拡張子 (たとえば.xyz
) を持つファイルを処理します。
XYZ.icns という名前のアイコン ファイルを作成し、アプリ バンドルのリソース フォルダー ( MyApp.app/Contents/Resources/XYZ.icns
) に追加しました。
ファイルの関連付けを設定するために、バンドルの Info.plist ファイルも変更しました。このエントリを追加しました:
結果:ファイルの関連付けは機能しましたが(ファイルをダブルクリックするとアプリケーションが開きます)、アイコンは置き換えられませんでした(まだ空白のドキュメントアイコンが表示されています)。
見逃したものはありますか?例として他のアプリケーションを調べましたが、私が行ったこと以上のものはないようです。
編集:さらにいくつかのテストを行いました。次のコマンドを使用して、Launch サービス データをダンプしました。
その結果、アイコン情報を含むファイル タイプのクレームをファイルで見つけることができます。
EDIT2 : しばらくして、ようやく単独で動作するようになりました。一晩で、インストールされた OS の更新があり、コンピューターもシャットダウンする必要がありました (Launch Service はおそらくそれ自体で何かを更新しました)。質問を次のように更新します。アプリケーションがインストールまたは変更されたときに、Launch Service が関連ファイルのアイコンを更新するようにするにはどうすればよいですか?
qt - OS X Yosemite ファイルの関連付けは機能するが、ファイル アイコンは機能しない
私の問題は、次のエントリと非常によく似ています: Mac OS X file association works, but file icon not changed .
Qt 5.3 を使用して、特定の拡張子のファイルを処理するアプリを開発しています (たとえば.xyz
)。私はテスト用にOS X Yosemiteしか持っておらず、ファイルの関連付けを機能させることができました(ファイルをダブルクリックするとアプリケーションが開きます)が、アイコン(xyz.icns
application.appリソースフォルダーにあるもの)は変更されていません(まだデフォルトの白い紙で、デスクトップと Finder から表示できます)。ファイルの関連付けに関連する info.plist の内容は次のとおりです。
私の状況で問題を解決したように見える起動サービスを更新しましたが、実際にはlsregister
ダンプにアプリケーションのエントリが 1 つしか表示されません。
私も再起動しましたが、新しい結果はありません。何が欠けているのだろうか...手がかりはありますか?ありがとう !
macos - OS x の `edit` バイナリを別のエディタに変更します
コマンド ラインで入力edit <folder/file name>
すると、長い間使用していなかった TextWrangler で開くことができます。バイナリがどのようにしてedit
そこにたどり着いたのかはわかりません — 私は oh-my-zsh を使用していますが、関連性がある可能性があります。subl
(入力しやすい) に変更したかったedit
のですが、既に存在することがわかりました。
TextWrangler をアンインストールしましたが、エラーが発生しました
LaunchServices データベースを変更する方法を探して再構築しましたが、それでもエラーが発生します。実行すると、 fwiwが表示されwhich edit
ます。/usr/local/bin/edit
この関連付けを制御するものは何ですか?どうすれば Sublime Text に切り替えることができますか?