読み取り専用データベースが事前設定された Core Data ベースの iPhone アプリがあります。著作権侵害の可能性を減らすためにデータベースにどのような保護を適用できますか (ある場合)、ジェイルブレイクされた iPhone からデータベースが読み取られますか?
事前入力された sqlite データベースを使用するためのほとんどのコード例は、データベースがアプリ バンドルから iPhone 上のアプリのドキュメント ディレクトリにコピーされることを示しており、これはジェイルブレイクされた iPhone で完全に表示されます。代わりに、次のようにアプリ バンドルからデータベースを直接使用することを考えました。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:
@"MyDatabaseName.sqlite"]];
<... followed by standard persistentStoreCoordinator code ...>
ストアの URL にブレークポイントを設定すると、別のファイルの場所が返されます。これは、ジェイルブレイクされた iPhone のドキュメント ディレクトリと同じように見えると思います。
<CFURL 0x139610 [0x38388ff4]>{type = 15, string = file://localhost/var/mobile/Applications/6ACD76F0-396D-4DB1-A46B-B2459A084063/MyiPhoneApp.app/MyDatabaseName.sqlite, base = (null)}
上記が正しいかどうか、および/またはこの問題に対処する他の方法があるかどうかを誰かが確認できますか (私は暗号化などを検討していません...迅速な保護ソリューションを望んでいます) ? 断固たるハッカーが彼らの望むものを手に入れることに感謝します -- できることなら、少なくとも抵抗を示したいと思います。
ありがとう