iCloud UIDocumentPicker间歇性崩溃并挂起

AJ9*_*AJ9 10 xcode objective-c ios icloud uidocumentpickervc

问题:

当从iCloud中选择文档时,应用程序会随机崩溃,大多数时候以下代码都会起作用,但在极少数情况下会失败.

我在应用程序中启用了iCloud权利,似乎无法找到间歇性失败的原因.有检查我错过了吗?

它也会偶尔悬挂5秒钟左右(通常在碰撞中)

码:

#pragma mark - iCloud =======================================================================================================
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentAtURL:(NSURL *)url {

BOOL fileUrlAuthozied = [url startAccessingSecurityScopedResource];
NSURL *ubiquityURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
NSLog(@"ubiquityURL - %@",ubiquityURL);

if(fileUrlAuthozied){
    NSFileCoordinator *fileCoordinator = [[NSFileCoordinator alloc] init];
    NSError *error;

    [fileCoordinator coordinateReadingItemAtURL:url options:0 error:&error byAccessor:^(NSURL *newURL) {

        NSData *data = [NSData dataWithContentsOfURL:newURL];
        //Do something with data
        selectedDocumentToUpload = [[UploadDocumentObj alloc] initWithiCloudDocument:data];
        [self performSegueWithIdentifier:@"goToRename" sender:nil];

    }];
    [url stopAccessingSecurityScopedResource];
}else{
     //Error handling
    [Lib showErrorMessageWithTitle:@"Alert" message:@"E-Sign could not retrive the document!\nPlease try again." delegate:self];

}
}
Run Code Online (Sandbox Code Playgroud)

错误:

2015-03-18 16:22:15.955 E-Sign[6338:1860982] *** Assertion failure in -[UIDocumentPickerViewController _commonInitWithCompletion:], /SourceCache/UIKit/UIKit-3318.93/UIDocumentPickerViewController.m:66
2015-03-18 16:22:15.960 E-Sign[6338:1860982] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application initializing document picker is missing the iCloud entitlement. Is com.apple.developer.icloud-container-identifiers set?'
Run Code Online (Sandbox Code Playgroud)

其他错误:

2015-03-18 16:33:45.884 E-Sign[6357:1864309] plugin com.apple.UIKit.fileprovider.default interrupted
2015-03-18 16:33:45.885 E-Sign[6357:1864309] plugin com.apple.UIKit.fileprovider.default invalidated
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个?

gut*_*uhu 10

我最近解决了同样的问题:

***断言失败 - [UIDocumentPickerViewController _commonInitWithCompletion:]

是由于缺乏App-Capabilities引起的.转到您的Build并选择Capabilities - > iCloud

通过右侧的开关激活它,并切换iCloud DocumentsCloudKit ON.(注意:这只适用于付费的开发者帐户)

Rebuild->运行

还要记住:

iCloud权利仅适用于提交到App Store或Mac App Store的应用程序. (资源)

  • 使用`UIDocumentPickerViewController`得到了同样的问题.在iOS 9/10上,该应用程序需要iCloud功能.从iOS开始就没有必要...... (2认同)

小智 0

似乎由于 iCloud 权限设置不正确而发生以下错误。请再检查一下。您的包含应用程序和扩展程序需要位于相同的应用程序组中。如果未启用,请从功能中启用应用程序组。如果两者都设置正确,但您仍然收到错误,则不知道它可能发生在哪里。

2015-03-18 16:22:15.960 E-Sign[6338:1860982] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application initializing document picker is missing the iCloud entitlement. Is com.apple.developer.icloud-container-identifiers set?'
Run Code Online (Sandbox Code Playgroud)

我还面临其他错误。这就是我在这里的原因。