请问iOS端的jpush sdk中有定位相关的代码么?

标签: #<Tag:0x00007f657ae80b48> #<Tag:0x00007f657ae80a08> #<Tag:0x00007f657ae808c8>

最近苹果机审严格,静态代码扫描到定位的代码,不管有没有调用,都需要添加权限,否则被拒,由于我们的项目中没有用到Location Always Usage Description,所以没有AlwaysLocation的权限,请问jpush的sdk中有相关的代码么?

iOS SDK 最新版本中由于增加了地理围栏功能,有涉及到定位代码,但并未实际使用地理位置,还需要开发者主动调用才会去使用。基于 Apple 最新发出的要求,是需要添加权限的。

你如果不想添加的话,可以降低版本到 3.1.1+1.2.6,极光预期在下一待发布的 iOS SDK 版本中进行优化处理,可关注更新列表。
https://docs.jiguang.cn/jpush/updates/

已优化处理,可升级到最新的 JPush 3.2.1 版本

好的非常谢谢

@Lris, 下载了JPush3.1.1和JCore1.2.6, 发现其中仍然有定位相关的代码

> strings libjcore-ios-1.2.6.a | grep locationManager
                                                                                                        
_OBJC_IVAR_$_JCORELocationController._locationManager
_OBJC_IVAR_$_JPUSHHttpSessionController._locationManager
locationManager
locationManager:didUpdateToLocation:fromLocation:
locationManager:didUpdateLocations:
locationManager:didUpdateHeading:
locationManagerShouldDisplayHeadingCalibration:
locationManager:didDetermineState:forRegion:
locationManager:didRangeBeacons:inRegion:
locationManager:rangingBeaconsDidFailForRegion:withError:
locationManager:didEnterRegion:
locationManager:didExitRegion:
locationManager:didFailWithError:
locationManager:monitoringDidFailForRegion:withError:
locationManager:didChangeAuthorizationStatus:
locationManager:didStartMonitoringForRegion:
locationManagerDidPauseLocationUpdates:
locationManagerDidResumeLocationUpdates:
locationManager:didFinishDeferredUpdatesWithError:
locationManager:didVisit:
_locationManager
locationManager
T@"CLLocationManager",&,N,V_locationManager
locationManager
_locationManager
locationManager
T@"CLLocationManager",&,N,V_locationManager

而且实际项目中我们使用的是更早的3.0.2版,在上传AppStore包后收到了苹果的定位api使用警告邮件
image
image
请问有什么解决方案吗?

该问题已优化完毕,可以升级到 JPush 3.2.1 版本,上架不会再有问题。

@Lris 新开一个新的空项目, 使用最新的JPush3.2.2版本, 在iOS13中启动后, app系统设置页面出现位置权限选项, 请问一下, sdk中是不是还有引用CoreLocation相关的代码? 能不能给一个不包含任何定位相关代码的sdk?
image

最新版本的只要不使用地理围栏功能,没有主动申请地理位置,SDK就不会申请位置权限,

是没有主动调用使用位置服务, 但是我猜测你们代码中应该初始化了CoreLoaction相关的代码, 我测试了一下, 新建一个空的项目,设置中是没有这个选项的, 但是如果只加一行代码, 初始化一个CLLocationManager实例, 什么都没有调用, 设置中就会有这个权限选项.

因为这个显示可能会误导用户以为我们使用了定位权限, 烦请开发者在iOS13中调研看一下原因.

我之前也反映了一个跟地理位置有关的问题,链接是 极光推送不使用地理围栏功能会导致api调用延迟,严重问题 ,我测试了最新的 iOS 3.2.2 版本仍然有这个问题,请问一下你这边没有发现这个问题吗?我觉得这个消息延迟问题还挺麻烦的

该问题已处理,可以在新版本发布之后升级一下

最新的iOS 3.2.2 版本还存在这个问题,你是指后面会发布更新的版本来解决这个问题吗?

之后发版本来解决。

你用最新版本的试一下看看还有没有问题
https://docs.jiguang.cn/jpush/updates/#jpush-ios-sdk-v324