URLスキームを動的に生成して登録するCocoa Macアプリを開発しています。ただし、アプリケーションが新しく生成された URL スキーム (myscheme1423:// など) を処理するためにそれ自体を登録する場合、アプリケーションが以前に登録された URL スキームに応答しないようにしたいと考えています。
LSSetDefaultHandlerForURLScheme()
URL スキームを登録する目的で使用しています。同時に、アプリケーションは Info.plist を自動的に上書きして、新しいスキームを含めます。ご存じのとおり、このLSSetDefaultHandlerForURLScheme()
関数は、指定された bundleID/scheme を Launch Services データベースに追加します。ただし、同じ bundleID/scheme ペアをデータベースから削除する同等の Launch Services 関数が見つかりませんでした。
アプリがアクティブに登録されている URL スキーム以外の URL スキームから発生した外部イベントを単純に無視できることはわかっていますが、以前のシステムの知識を完全に一掃する簡単な方法があるはずだと感じています。図式。私のアプリケーションが数百回以上新しいスキームに登録するプロセスを経ると、大量の無意味な部分によってディスク上でかなりの量のスペース (少なくとも Plist の場合) が占有されるポイントが来ます。のデータ (つまり、古い Launch Services エントリ)。