0

Mac App Storeのサンドボックス化に取り組んでいますが、.APPバンドルにあるSQLiteデータベースファイルへの読み取り/書き込みアクセスが検出されたため、ストアから拒否されたアプリがあります。ただし、必要なのはこのファイルへの読み取りアクセスのみであるため、.APPバンドルは適切な場所です。私はFMDBを使用しています。FMDBのopenWithFlags:メソッドを呼び出さない限り、デフォルトでsqlite3_openを使用してSQLiteデータベースを開きます。代わりにflagsパラメーターを使用してsqlite3_open_v2を呼び出します。

私の質問:SQLITE_OPEN_READONLYフラグを指定してsqlite3_open_v2を使用する場合、それはファイルシステムの読み取り専用アクセスと同等ですか?データベースへの読み取り専用アクセスがファイルシステムの読み取り専用アクセスとは異なることを意味する場合、アプリは再び拒否されます。SQLITE_OPEN_READONLYのSQLiteドキュメントには次のように記載されています(http://www.sqlite.org/c3ref/open.html)。

「データベースは読み取り専用モードで開かれています。データベースがまだ存在しない場合は、エラーが返されます。」

しかし、これは私の質問に答えていないようです。

4

1 に答える 1

0

SQLITE_READ_ONLYフラグを付けてアプリを送信したところ、アプリはAppStoreに受け入れられました。これにより、SQLITE_OPEN-READONLYフラグはファイルシステムの読み取り専用モードと同等であると私は信じています。

于 2012-07-12T22:17:17.307 に答える