私は Delphi XE3 で OSX アプリを開発しており、さまざまな問題が発生しています。最新のものは、Apple Appstore 用に構築されたサンボックス化されたバージョンです。
ユーザーは任意のフォルダーを選択する必要があり、アプリはそれにアクセスする必要があります。OpenDialog に問題があるため、代わりにドラッグ アンド ドロップ機能を使用する必要がありました。
ユーザーがフォルダーをアプリにドラッグすると、サンドボックスがアプリに一時的なアクセスを許可し、すべてが正常に機能します。
アプリの再起動時にこのフォルダーへのアクセスを保持するには、いわゆる「セキュリティ スコープのブックマーク」を使用する必要があります。
2 つの問題があります:
1) 「com.apple.security.files.bookmarks.app-scope」資格を XE3 firemonkey アプリに追加する方法 Project Options->Entitlements では利用できません。「.entitlements」ファイルに手動で追加すると、アプリのビルド時に上書きされます。プロジェクト オプションのリストにないカスタム資格を追加する方法はありますか?
2) ブックマークを作成するには、NSURL.bookmarkDataWithOptionsメソッドを使用する必要があります。このように使用する必要があると思いますが、正確な構文はわかりません。
var
URL: NSURL;
Err: NSError;
Data: NSData;
...
URL := TNSURL.Create;
Data := URL.bookmarkDataWithOptions(NSURLBookmarkCreationWithSecurityScope, nil, @Err);
...
Create の代わりに Wrap(...) を呼び出す必要があるかもしれません。問題1)への答えがなければ意味がないので、私はまだそれを試していません。
Delphi のこれらの問題について誰も書いていないようですが、ここにいる誰かがその経験を持っていることを願っています。
前もって感謝します。
編集:
問題1については、OSX32フォルダーの「.entitlements」ファイルを手動で編集して追加し、上書きされないように読み取り専用に設定しようとしました。もちろん、リンカーがファイルを変更できないと不平を言ったので、それはあまりにも簡単でした...