我已将我的应用程序提交到Apple App Store。我的应用程序请求访问用户相机胶卷的权限,并在此过程中显示系统生成的消息,内容为:
“ [应用名称]想要访问您的相机”
。话虽如此,苹果公司拒绝了该应用程序,因为该警报需要说明需要进行为什么访问以及应用程序将如何使用它。
话虽如此,我如何自定义警报消息?据我所知,此消息是系统生成的,因为我的代码未包含该消息...
ViewController.m
- (IBAction)selectPhoto:(id)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:NULL];
}
答案 0 :(得分:2)
AVFoundation Documentation指出,您必须在Info.plist中添加NSCameraUsageDescription,并提供清晰的消息来向用户说明您的应用为何需要使用相机。
这实际上是强制性的,文档对此很明确:
重要
如果在应用程序请求授权或尝试使用捕获设备时,应用程序的Info.plist文件中没有适当的密钥,则系统将终止您的应用程序。