我的iOS应用通过ALAssetsLibrary访问用户的照片。当我更改应用程序的隐私设置(设置→隐私→照片)时,应用程序被系统杀死(SIGKILL)。这是一个bug吗?
ALAssetsLibrary
SIGKILL
wtlkbnrh1#
我认为这是一个错误,或者至少是记录不充分和意外的行为。但它并没有崩溃,只是被迫重新启动。您将收到SIGKILL消息,但没有崩溃日志。如果你是一个注册的苹果开发者,你可以查看他们的论坛来讨论这个问题
我不知道有什么方法可以防止这种行为,但请随时向苹果提交错误报告。有传言说他们使用bug副本作为衡量bug严重性的一种方法。也许你可以存储你的应用状态,以便在它重新启动时恢复它。
e3bfsja22#
使用UIImagePickerController时也会发生这种情况。序列是这样的:1.您将显示UIImagePickerController。第一次,小警报要求用户允许使用照片库。假设用户说不。1.此时,用户可以对选择器控制器执行的所有操作都是取消,因此让我们假设这就是所发生的情况。1.在以后的某个场合,您将显示UIImagePickerController。它现在包含一条不可自定义的消息,说明无法访问照片库,但用户可以在“设置”中启用访问。1.用户切换到“设置”并启用对此应用的照片库的访问。1.应用程序在后台崩溃。用户是取消了选择器还是让它一直显示都没有关系。我已经提交了一个bug,我建议你也这样做,为您的情况。苹果在iOS 6中引入了一个新的隐私系统,显然这些问题还没有解决。
kr98yfug3#
在此PDF文件中搜索单词“kill”:http://adcdownload.apple.com/wwdc_2012/wwdc_2012_session_pdfs/session_710__privacy_support_in_ios_and_os_x.pdf
iOS会在某些权限更改时杀死应用。
这个信息很难追踪。它不在任何“指南”中(例如,首选项编程指南)。
vecaoik14#
当您使用模拟器测试应用程序时。更改应用程序的权限会给您一个断点。您可以在控制台中键入“c”,使应用程序继续运行并返回原始状态。但在您的真实的设备中,情况并非如此。它只是重新启动应用程序。
8nuwlpux5#
有些时候SIGKILL错误作为中断错误工作,它给iOS的信号,你必须重新启动你的应用程序,同时我们正在管理应用程序的任务,并在该示例中发送中断消息的方式不处理的应用程序.在我的情况下...我不允许应用程序中的照片和相机访问,每当我允许访问这些功能时,我都会最小化应用程序并启用这些设置。当我启用这些时,iOS会收到一个中断,应用程序会收到这个中断,但无法处理,导致我们的应用程序终止或关闭。
ztmd8pv56#
您是否使用assetForURL:resultBlock:failureBlock:访问资源库?如果是这样的话,很可能您没有处理ALAssetLibrary的故障块。你可以这样做
assetForURL:resultBlock:failureBlock:
ALAssetLibrary
ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Access to Photo Library is Denied " message:@"Please allow <YOUR APP NAME> to access your Photo library from Privacy Settings" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; }
因此,当您的应用无法访问照片库时,它会要求用户进行访问。
3hvapo4f7#
我不知道这会有多大帮助,但我遇到了一个类似的问题,当我通过隐私设置(设置→隐私→蓝牙)关闭/打开蓝牙时,应用程序会崩溃,但当我直接更改蓝牙设置时,它不会崩溃(设置→蓝牙),所以我认为这里可以说两件事。1.这不是您正在使用的应用程序的特定错误,而是一个更一般的问题。1.查看隐私设置可能是原因所在。我也在寻找一个解决方案,就如何防止它虽然,所以只是分享一个见解,在那里的原因可能是现在,但希望它可以得到解决!谢谢!
7条答案
按热度按时间wtlkbnrh1#
我认为这是一个错误,或者至少是记录不充分和意外的行为。但它并没有崩溃,只是被迫重新启动。您将收到SIGKILL消息,但没有崩溃日志。
如果你是一个注册的苹果开发者,你可以查看他们的论坛来讨论这个问题
我不知道有什么方法可以防止这种行为,但请随时向苹果提交错误报告。有传言说他们使用bug副本作为衡量bug严重性的一种方法。也许你可以存储你的应用状态,以便在它重新启动时恢复它。
e3bfsja22#
使用UIImagePickerController时也会发生这种情况。序列是这样的:
1.您将显示UIImagePickerController。第一次,小警报要求用户允许使用照片库。假设用户说不。
1.此时,用户可以对选择器控制器执行的所有操作都是取消,因此让我们假设这就是所发生的情况。
1.在以后的某个场合,您将显示UIImagePickerController。它现在包含一条不可自定义的消息,说明无法访问照片库,但用户可以在“设置”中启用访问。
1.用户切换到“设置”并启用对此应用的照片库的访问。
1.应用程序在后台崩溃。用户是取消了选择器还是让它一直显示都没有关系。
我已经提交了一个bug,我建议你也这样做,为您的情况。苹果在iOS 6中引入了一个新的隐私系统,显然这些问题还没有解决。
kr98yfug3#
在此PDF文件中搜索单词“kill”:http://adcdownload.apple.com/wwdc_2012/wwdc_2012_session_pdfs/session_710__privacy_support_in_ios_and_os_x.pdf
iOS会在某些权限更改时杀死应用。
这个信息很难追踪。它不在任何“指南”中(例如,首选项编程指南)。
vecaoik14#
当您使用模拟器测试应用程序时。更改应用程序的权限会给您一个断点。您可以在控制台中键入“c”,使应用程序继续运行并返回原始状态。但在您的真实的设备中,情况并非如此。它只是重新启动应用程序。
8nuwlpux5#
有些时候SIGKILL错误作为中断错误工作,它给iOS的信号,你必须重新启动你的应用程序,同时我们正在管理应用程序的任务,并在该示例中发送中断消息的方式不处理的应用程序.
在我的情况下...我不允许应用程序中的照片和相机访问,每当我允许访问这些功能时,我都会最小化应用程序并启用这些设置。当我启用这些时,iOS会收到一个中断,应用程序会收到这个中断,但无法处理,导致我们的应用程序终止或关闭。
ztmd8pv56#
您是否使用
assetForURL:resultBlock:failureBlock:
访问资源库?如果是这样的话,很可能您没有处理
ALAssetLibrary
的故障块。你可以这样做
因此,当您的应用无法访问照片库时,它会要求用户进行访问。
3hvapo4f7#
我不知道这会有多大帮助,但我遇到了一个类似的问题,当我通过隐私设置(设置→隐私→蓝牙)关闭/打开蓝牙时,应用程序会崩溃,但当我直接更改蓝牙设置时,它不会崩溃(设置→蓝牙),所以我认为这里可以说两件事。
1.这不是您正在使用的应用程序的特定错误,而是一个更一般的问题。
1.查看隐私设置可能是原因所在。
我也在寻找一个解决方案,就如何防止它虽然,所以只是分享一个见解,在那里的原因可能是现在,但希望它可以得到解决!谢谢!