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

sdk
jpush
ios
标签: #<Tag:0x00007f83d4471d50> #<Tag:0x00007f83d4471c10> #<Tag:0x00007f83d4471ad0>

(Mario Hui) #1

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


#2

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

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

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


(已解决)NSLocationAlwaysUsageDescription问题
(Mario Hui) #3

好的非常谢谢


(Mr Robot) #4

@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
请问有什么解决方案吗?


#5

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