3

Mac App Storeのガイドラインでは、プライベートAPIは使用できないとされています。

ターミナルコマンド設定showAllFilesをtrueに使用してFinder設定を変更するアプリをいじっています。

defaults write com.apple.Finder AppleShowAllFiles TRUE

このようなものをMacAppStoreに送信できる方法はありますか?私にはプライベートAPIのようです。私の質問は:公的な同等物はありますか?

4

2 に答える 2

5

このコマンドの実行方法に依存すると思います。これを実行するためにどの C/ObjC API を使用していますか? このコマンドを実行するために使用できる公開 API が確かに存在します。

ただし、心に留めておくべき重要な点は、2012 年 3 月から、Apple が Mac App Store に提出されたアプリに「サンドボックス」方式を採用することを要求することです。ドキュメントはこちら:

http://developer.apple.com/library/mac/#documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html

サンドボックス化されたアプリでこのコマンドを (パブリック API を介しても) 実行するには、特別な資格が必要であることを宣言する必要があると思います。資格の詳細については、こちらをご覧ください。

http://developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/EntitlementKeyReference/Introduction/AboutEntitlements.html%23//apple_ref/doc/uid/TP40011195

具体的には、次の「一時的な資格」が必要になると思います。

com.apple.security.temporary-exception.files.home-relative-path.read-write

Finderのようなアプリのユーザーデフォルトを書き込むには、ユーザーのホームディレクトリの下にあるディスク上のファイルに書き込む必要があると私は信じています:

~/Library/Preferences/com.apple.finder.plist
于 2011-11-06T19:05:04.057 に答える
1

使用しようNSUserDefaultsとして、他のアプリケーションの設定を変更する実際の容量がないことがわかったと思います。幸いなことに、CFPreferencesAPI はこの種の目的のために存在し、任意のバンドル ID の下で設定を変更できます。

とはいえ、他のアプリケーションの実際の設定は、それらのアプリケーションに固有の実装の詳細です。文書化されていないツール/API を使用していなくても、別のプロセスに変更を加えているため、App Store の規則に違反する可能性があります。

于 2011-11-06T20:43:56.557 に答える