簡體   English   中英

沒有讀取iCloud Drive文件的權限

[英]No permission to read iCloud Drive file

當用戶在Apple“文件”應用程序中點擊文件並選擇我的應用程序以查看它時,我正在嘗試讓我的應用程序打開iCloud Drive文件。一切設置都很好,因此該應用程序被打開,並在用戶點擊文件時得到通知。 但是無法打開文件,錯誤是應用程序無權打開文件。

我的應用程序在Info.plist中將“支持就地打開文檔”設置為“是”。 這意味着URL指向應用程序外部的iCloud目錄,這可能是問題的原因。 如果我將其設置為NO,則URL是應用程序內部文件的副本,並且一切正常。 但是應用程序需要將該設置設置為“是”。

我已經驗證了,該文件實際上實際存在於手機中。

有人知道如何進行這項工作嗎?

我的openURL:方法當前看起來像:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
    NSLog(@"path=%@", url);
    NSError *error = nil;
    NSData *data = [[NSData alloc] initWithContentsOfURL:url options:0 error:&error];
    NSLog(@"error=%@", error);
}

給出的錯誤是:

錯誤域= NSCocoaErrorDomain代碼= 257“無法打開文件“ Kili.gpx”,因為您沒有查看權限。” UserInfo = {NSFilePath = / private / var / mobile / Library / Mobile Documents / com〜apple〜CloudDocs / Kili.gpx,NSUnderlyingError = 0x283ac83f0 {Error Domain = NSPOSIXErrorDomain Code = 1“不允許操作”}}

我找到了解決方案。 您需要使用startAccessingSecurityScopedResourcestopAccessingSecurityScopedResource包圍url的讀取:

[url startAccessingSecurityScopedResource];
NSError *error = nil;
NSData *data = [[NSData alloc] initWithContentsOfURL:url options:0 error:&error];
[url stopAccessingSecurityScopedResource];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM