将现有和工作的本机包装器应用程序更新到 Swift 4、Xcode 9.2,并使用 iPhone 6s iOS 11.2.6(来自 Swift 3、Xcode 7.2、iOS 9.2)进行测试。
地理围栏委托 (AppDelegate) 触发/执行didEnterRegion
并didExitRegion
当我使用 .gpx 文件通过 Xcode 模拟本地环境中的位置时。 当我使用快车道部署到 Testflight 测试版应用程序时,代表在越过地理围栏时不会触发。 我添加了警报以验证是否未调用委托。 根据其他堆栈溢出问题,除了Info.plist
文件中已有的密钥之外NSLocationAlwaysUsageDescription
我确保包括NSLocationAlwaysAndWhenInUseUsageDescription
和NSLocationWhenInUseUsageDescription
。
我已经打开了Location Updates
的后台功能,Remote Notifications
我在Info.plist
文件上看到它们。 我可以在我的数据库中看到,当我授予/授权位置权限(始终授权)时,地理跟踪记录是使用地理令牌创建的。
我正在使用半径为 100 米的CLCircularRegion
。 我已经region.notifyOnEntry = true
和region.notifyOnExit = true
.
我推断问题是我在使用 Fastlane 部署时缺少一些东西(尽管我没有收到任何错误)或者我缺少一些配置/设置。 有什么想法吗? 我该如何调试? 我的应用程序是否有登录测试飞行? 我还可以提供哪些其他信息来帮助解决问题?
这很痛苦。 显然,当我们保存纬度和经度时,有一点精确的舍入(或者那天我在方向盘上睡着了)。 当我绘制保存的纬度和经度时,我意识到它远未达到所需的围栏。 我重新调整了我的纬度和经度,一切又恢复正常。 始终检查输入数据的准确性。 希望这有助于其他人节省时间。