ファイルをライブラリに追加するために、Cocoa アプリで NSAppleScript から iTunes をスクリプト化しようとしています。
資格ファイルに、次を追加しました。
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.itunes</key>
<array>
<string>com.apple.itunes.library.read-write</string>
</array>
</dict>
次に、AppleScript を次のように呼び出します。
var error: NSDictionary? = nil
let appleScript = NSAppleScript(source: "tell application \"iTunes\" to add (POSIX file \"\(path)\") to library playlist 1")
let result = appleScript?.executeAndReturnError(&error)
しかし、エラーで失敗します-10004
:iTunes got an error: A privilege violation occurred.
itunes
iTunes を両方の方法 (および)で大文字にしようとiTunes
しましたが、何も機能しないようです。また、読み書きの資格に加えて、資格を追加してみましたread
。最後に、ユーザーの Music フォルダ (iTunes ライブラリが保存されている場所) への読み取りおよび書き込みアクセスを追加しようとしましたが、これも役に立ちませんでした。
iTunes をスクリプト化するために、私が認識していない別の必要な資格はありますか?
ソリューションの検索でこのリンクを見つけました(リンク)が、ユーザーが自分のフォルダー内の特定のフォルダーを選択して、ユーザーが選択したLibrary
ファイルへのアクセスをアプリケーションに許可する必要があり、スクリプトを別のファイルに配置する必要があります.2やりたいことが多すぎる。スクリプト ファイルの管理に関してユーザーを信頼していません。AppleScript コード 1 行分のファイルは必要ありません。私が理解しているもう 1 つの欠点はNSUserAppleScriptTask
、スクリプトの状態を複数の呼び出しにわたって保持できないことです。これは私の場合は問題ではありませんが、他の人にとっては問題になる可能性があります。
ありがとう