iOS的停止询问用户对图片库权限(iOS stopped asking user for Photo

2019-07-18 02:09发布

iOS版是不是要求用户对图片库的权限了。 甚至当我从设备中删除该应用。 这也发生在模拟器。

switch ([ALAssetsLibrary authorizationStatus])
{
    case ALAuthorizationStatusAuthorized:
        RPMLog(@"authorized");
        break;
    case ALAuthorizationStatusDenied:
        RPMLog(@"denied");
        break;
    case ALAuthorizationStatusNotDetermined:
        RPMLog(@"not determined");
        break;
    case ALAuthorizationStatusRestricted:
        RPMLog(@"restricted");
        break;
}

当我安装的应用程序,第一次我已经授权。 在此之前,有询问的照片触发用户提示没有其他事件或屏幕。

然后我要求numberOfAssets在SavedPhotos并得到它没有访问的提示:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

    if (!group) return;

    UIActionSheet *actionSheet = nil;
    if (([group numberOfAssets] > 0))
    {
        actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Take new photo", nil), NSLocalizedString(@"Use last photo taken", nil), NSLocalizedString(@"Choose existing", nil), nil];
    }
    else
    {
        actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Take new photo", nil), NSLocalizedString(@"Choose existing", nil), nil];
    }

    actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
    [actionSheet showFromTabBar:self.tabBar];
    [TestFlight passCheckpoint:@"New Look: Tab Bar"];

} failureBlock:^(NSError *error) {

    NSAssert(!error, [error description]);
}];

Answer 1:

正在发生的事情是iOS的是节省授予您的应用程序映射到捆绑ID的权限,如果应用程序被删除24小时,这个数据仍然存在,这样就避免了再提示用户,如果他们重新安装应用程式(也许以后mistakingly删除应用程序) 。

这也发生了推送通知的提示。

作为一种变通方法,我引用有关苹果推送通知:

重置iOS上的推送通知权限警报

第一时间推送通知启用推送应用程序注册,iOS的询问用户是否他们希望收到通知该应用程序。 一旦用户回应此警报,除非该设备恢复或应用程序已被卸载了至少一天,它不会被再次提出。

如果你想模拟首次您的应用程序的运行,你可以离开卸载了一天的应用程序。 您可以实现后者没有通过设置系统时钟向前一天或更长时间,完全关掉设备,然后重新打开该设备实际上等待了一天

资料来源: 苹果技术说明TN2265



Answer 2:

因为这个问题是图片库的权限,也没有改变系统时钟和关掉设备等方式。

您只需进入“设置”应用

(通用>还原>还原位置和隐私)。

这将使应用程序的照片库,位置和其他权限再次询问。



Answer 3:

通过设置应用程序Restting是难以实现自动化。 我们使用simctl到模拟器的内容和设置恢复以自动方式重置权限对话框。 这将需要重新安装在模拟器上的应用程序,但再次simctl可以做到这一点。



Answer 4:

您可以通过两种检查此权限 -

  • 在模拟器
    你可以做仿真器/重置内容和设置
  • 在物理设备(的iPhone,iPad)
    您可以更改日期,至少差应是24小时。

但是从设备先卸载应用程序,然后重新再申请这个东西,然后它会工作。



Answer 5:

如果您使用的是iPhone模拟器, 模拟器使用它重置/重置内容和设置...似乎重置此设置。 当然,你则需要重新安装你的应用程序在其上。



Answer 6:

你只需要按照波纹管点无需重新安装或删除应用程序。

  • 应用从背景中消除
  • 进入设置>通用>重置- >点击复位位置和隐私

希望你有帮助。



文章来源: iOS stopped asking user for Photo Library Permission