【问题标题】:Swift (iOS 8) - User is not being prompted for permission to use locationSwift (iOS 8) - 没有提示用户允许使用位置
【发布时间】:2015-03-24 21:56:50
【问题描述】:

我已经在Info.plist中添加了NSLocationWhenInUseUsageDescription

我也申请了授权,但是应用没有提示权限,隐私设置中的位置设置在应用名称下没有使用时的选项。我有一种感觉,Info.plist 文件在构建时没有在应用程序本身中更新,但是我无法查明问题的真正原因。有什么建议吗?感谢所有帮助。

NSLocationAlwaysUsageDescription 密钥已添加到 Info.plist 并已清理构建并重建项目,但仍然没有成功。

【问题讨论】:

  • 设置always plist键并清理构建以开始

标签: ios xcode swift cllocationmanager cllocation


【解决方案1】:

这是我在使用位置管理器时使用的代码。

func viewDidLoad(){
super.viewDidLoad()


if ( ios8() ) {
        locationManager.requestAlwaysAuthorization()
        locationManager.requestWhenInUseAuthorization()
    }
 }
locationManager.startUpdatingLocation()

  /*
iOS 8 Utility
*/
func ios8() -> Bool {
    if ( NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1 ) {
        return false
    } else {
        return true
    }
}

我的 plist 中也有以下内容。

Privacy - Location Usage Description
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription

【讨论】:

  • 您的代码错误。 requestWhenInUseAuthorization()requestAlwaysAuthorization() 仅适用于 ios 8。如果要支持 ios7,请使用 startUpdatingLocation()
  • 我的 plist 中有相同的键,但我认为由于某种原因,应用程序构建时 plist 不会更新。有没有可以防止这种情况的设置?我记得在 Objective-C 中做过同样的事情,我没有遇到任何问题。
  • 在您的目标和构建设置中,包装部分是什么样的?
  • 一切如我所愿,我没有改变任何东西,有什么需要注意的吗?
  • 您从头开始项目并且没有移动 info.plist?您是否从设备或模拟器中删除了该应用,然后再次尝试运行它?
猜你喜欢
  • 2014-11-29
  • 1970-01-01
  • 2015-01-29
  • 2016-06-14
  • 2015-04-02
  • 2017-12-12
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多