iOS 应用被拒绝 - 您的应用可以在地图上显示附近用户的位置,但没有采取必要的隐私保护措施

Posted

技术标签:

【中文标题】iOS 应用被拒绝 - 您的应用可以在地图上显示附近用户的位置,但没有采取必要的隐私保护措施【英文标题】:iOS app rejected - Your app enables the display of nearby users' locations on a map, but does not have the required privacy precautions in place 【发布时间】:2017-08-23 20:09:27 【问题描述】:

由于以下原因,我的 ios 应用被苹果拒绝了:-

您的应用可以在地图上显示附近用户的位置,但是 没有必要的隐私保护措施。

他们正在分享我的应用程序的屏幕截图以及拒绝消息。

在我的应用中,我使用用户的位置在地图上显示附近的事件。我还启用了在地图上显示用户位置的选项。

我正在使用以下代码在我的应用中设置位置服务。

//Declarting objects in .h file
CLGeocoder *geocoder;
CLPlacemark *placemark;

@property (nonatomic,retain) CLLocationManager *locationManager;

//Calling this method from viewDidLoad for setup location services..
-(void)getUserCurrentLocation

    geocoder = [[CLGeocoder alloc] init];

    self.locationManager=[[CLLocationManager alloc]init];
    self.locationManager.delegate=self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    _locationManager.distanceFilter=kCLDistanceFilterNone;

    if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
    
        [_locationManager requestWhenInUseAuthorization];
    

    [self.locationManager startUpdatingLocation];


-(void)StopUpdateLOcation

    if([CLLocationManager locationServicesEnabled])
    
        [self.locationManager stopUpdatingLocation];
    


- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

    CLLocation *currentLocation = newLocation;

    if (currentLocation != nil)
    

        //Saving location
        [USERDEFAULT setValue:[NSNumber numberWithFloat:currentLocation.coordinate.latitude] forKey:@"CurrentLocationLatitude"];
        [USERDEFAULT setValue:[NSNumber numberWithFloat:currentLocation.coordinate.longitude] forKey:@"CurrentLocationLongitude"];

       //Here reverseGeocodeLocation method for fetching address from location

        [self StopUpdateLOcation];
    


- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

    NSLog(@"didFailWithError: %@", error);

我还添加了属性“隐私 - 使用时的位置使用说明”以及正确的消息。另外,我在获得位置后禁用了位置服务。

不确定,为什么他们拒绝应用。我错过了什么。?

我该如何解决这个问题?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

终于找到了合适的解决方案。感谢@Anbu.kartik 帮助找到此解决方案。

我已启用在 MAP 上显示用户位置的选项。但是没有写出失败的委托方法来处理,如果找不到用户的位置。

所以我编写了以下委托方法并再次发送应用程序以供批准。该应用已获得苹果的认可。

- (void)mapView:(MKMapView *)mapView didFailToLocateUserWithError:(NSError *)error
    NSLog(@"didFailToLocateUserWithError %@", error.description);


- (void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error
    NSLog(@"mapViewDidFailLoadingMap %@", error.description);

所以我们必须编写故障委托来处理所有功能的错误。因此,绝不会发生与此类问题相关的应用被拒绝的情况。

希望,这就是您要找的。任何问题都可以回复我。 :)

【讨论】:

我的应用被拒绝了两次。这很奇怪。他们只是发送机器生成的消息。我会尝试您的解决方案,如果可行,我会更新。 THX【参考方案2】:

您是否已将此消息添加到 iTunes 商店说明中:

继续使用在后台运行的 GPS 可以显着提高 减少电池寿命。

例如:检查谷歌地图描述的最后一行:

https://itunes.apple.com/us/app/google-maps-navigation-transit/id585027354?mt=8

【讨论】:

以上是关于iOS 应用被拒绝 - 您的应用可以在地图上显示附近用户的位置,但没有采取必要的隐私保护措施的主要内容,如果未能解决你的问题,请参考以下文章

应用被拒绝,健康应用权限

iOS 应用因应用购买“错误”而被拒绝 - 无法复制

ios 应用商店拒绝 - 您的应用使用“prefs:root=”非公共 URL 方案

Xamarin iOS提交被拒绝,Call Kit功能/ API

性能:应用程序完整性 (iOS) - 应用程序被拒绝

所需的 iPv6 兼容性 - 被 Apple iOS 应用程序拒绝