iOS アプリケーションに関連するサーバー側の帯域幅のコストを節約するために、実行時にダウンロードできる一連のアセットを iOS アプリケーション バンドルにパッケージ化しました。書かれたアプリケーションのコンテキストでは、ユーザーが書き込み可能なディレクトリの1つからファイルにアクセスできれば理想的です([App Dir]/Library/Application Support/My Custom Subfolder/
例: )。
.../My Custom Subfolder/
APIを使用してバンドル内のファイルへのシンボリック リンクを正常に作成することができましたが、後でコンテンツにアクセスするために使用するフレームワークNSFileManager
APIcreateSymbolicLinkAtURL:withDestinationURL:error:
の一部が間抜けになり、シンボリックに関連する属性とデータを返してくれます。基になるファイルの代わりにリンク。他のフレームワーク API を利用することでこれらの問題を軽減できる可能性がありますが、不適切な使用の範囲によっては、多くの作業が必要になる可能性があります。
NSFileManager
シミュレーターでは、 APIを使用してバンドル コンテンツへのハード リンクを作成することで、この問題をうまく回避できましたlinkItemAtURL:toURL:error:
。ハード リンクは、アプリ全体で使用されるすべてのファイル アクセス API でうまく機能し、すべてがうまく機能しました。ただし、DEVICE (iOS 7.0.2 を実行する iPhone 5c および iOS 7.1 を実行する iPad でテスト) では、NSCocoaErrorDomain 513 error (Operation could not be completed. Operation not permitted.)
. でテスト ファイルを.../My Custom Subfolder/
作成し、同じフォルダーにそのファイルへのハード リンクを作成することはできますが、読み取り専用アプリケーション バンドル内の何かにハードリンクしようとすると、513 エラーが発生します。
私がやろうとしていることを達成するためにパーミッションエラーを回避する方法があるかどうかは誰にも分かりますか?