Mac App Storeのガイドラインでは、プライベートAPIは使用できないとされています。
ターミナルコマンド設定showAllFilesをtrueに使用してFinder設定を変更するアプリをいじっています。
defaults write com.apple.Finder AppleShowAllFiles TRUE
このようなものをMacAppStoreに送信できる方法はありますか?私にはプライベートAPIのようです。私の質問は:公的な同等物はありますか?
Mac App Storeのガイドラインでは、プライベートAPIは使用できないとされています。
ターミナルコマンド設定showAllFilesをtrueに使用してFinder設定を変更するアプリをいじっています。
defaults write com.apple.Finder AppleShowAllFiles TRUE
このようなものをMacAppStoreに送信できる方法はありますか?私にはプライベートAPIのようです。私の質問は:公的な同等物はありますか?
このコマンドの実行方法に依存すると思います。これを実行するためにどの C/ObjC API を使用していますか? このコマンドを実行するために使用できる公開 API が確かに存在します。
ただし、心に留めておくべき重要な点は、2012 年 3 月から、Apple が Mac App Store に提出されたアプリに「サンドボックス」方式を採用することを要求することです。ドキュメントはこちら:
サンドボックス化されたアプリでこのコマンドを (パブリック API を介しても) 実行するには、特別な資格が必要であることを宣言する必要があると思います。資格の詳細については、こちらをご覧ください。
具体的には、次の「一時的な資格」が必要になると思います。
com.apple.security.temporary-exception.files.home-relative-path.read-write
Finderのようなアプリのユーザーデフォルトを書き込むには、ユーザーのホームディレクトリの下にあるディスク上のファイルに書き込む必要があると私は信じています:
~/Library/Preferences/com.apple.finder.plist
使用しようNSUserDefaults
として、他のアプリケーションの設定を変更する実際の容量がないことがわかったと思います。幸いなことに、CFPreferences
API はこの種の目的のために存在し、任意のバンドル ID の下で設定を変更できます。
とはいえ、他のアプリケーションの実際の設定は、それらのアプリケーションに固有の実装の詳細です。文書化されていないツール/API を使用していなくても、別のプロセスに変更を加えているため、App Store の規則に違反する可能性があります。