Passbook 无法识别 iBeacon
Posted
技术标签:
【中文标题】Passbook 无法识别 iBeacon【英文标题】:Passbook not recognizing iBeacon 【发布时间】:2013-10-11 01:20:11 【问题描述】:我一直试图通过安装它并靠近 iBeacon 来让我的通行证变得相关,但我所做的一切似乎都不起作用。有没有人知道为什么会发生这种情况?
以下是一些相关的细节:
签署或创建通行证没有问题。我在命令行上执行此操作并将通行证通过电子邮件发送给自己 我使用 Apple 的 AirLocate 示例代码将另一部 iPhone 5s 变成信标。 我确保邻近 UUID 匹配 我已在首选项中打开存折开发者调试功能,但在控制台中未发现明显错误。这是我的 pass.json 的相关部分,我的团队信息已被删除。 (您可能会从 WWDC 中识别出信标标签):
"formatVersion" : 1,
"passTypeIdentifier" : "pass.com.[valid stuff here]",
"serialNumber" : "100",
"teamIdentifier" : "[valid team id here]",
"beacons":[
"proximityUUID":"99C759FE-C660-4B95-981A-0C53E0EE6124",
"relevantText":"Delicious food nearby"
],
...
所以我使用该 UUID 设置 AirLocate,启用信标,然后在安装了通行证的情况下四处走动,但没有得到任何响应....
有人在这方面取得了成功或有一些问题可以帮助我吗?
【问题讨论】:
iBeacon 警报将仅显示在锁定屏幕上 - 设备将在使用电源按钮唤醒时扫描信标。还要确保没有设置主要和次要参数,因为它们会阻止匹配。 您是否尝试过使用 CoreLocation CLBeaconRegion 来查看是否可以触发 Passbook 之外的 iBeacon 检测? 第二台 ios 设备(有存折的设备)上的 AirLocate 是否看到 iBeacon? 考虑到通行证的类型对于相关通知确实很重要。对于 iBeacons,规则与位置规则基本相同。使用storeCard
100% 确保您不属于其他相关规则。
JSON 对我来说看起来不错,我使用了与泛型类型相同的东西并且它工作正常。主要问题是我真的必须四处走动才能触发事件(呆在办公桌前打开和关闭信标是不够的)
【参考方案1】:
由于您没有在通行证定义中指定主要/次要,因此您需要确保您的 iBeacon 设置方式相同。我还建议确认您的 pass.json 是正确的,确认的一种方法是使用 CoreLocations 编写一个简单的应用程序,看看您是否可以通过这种方式与您的信标通信,或者,您可以使用其中一个生成您的通行证在线工具(http://essentialtechnologies.ca)只是为了确认您的语法没有导致您的问题
【讨论】:
“由于您没有在通行证定义中指定主要/次要,因此您需要确保您的 iBeacon 设置方式相同。”这是不正确的。信标将始终传输 UUID,主要和次要。只听 UUID 是完全合法的。【参考方案2】:在 Passbook pass 中测试 iBeacons 时,请记住以下几点:
我们始终为您尝试定位的蓝牙信标提供主要和次要定义(默认均为 1)。主要属性用于一组信标,次要字段可以指向特定的信标。 确保您已为 Passbook 启用位置服务(设置 -> 隐私 -> 位置服务)和 通知(设置 -> 通知中心)。 通知的显示方式与常规推送通知不同。当您靠近信标时,通知会以不显眼的方式显示在您的锁定屏幕上。 您可以使用许多应用程序来模拟 iBeacon,例如 MacBeacon for OSX (http://www.radiusnetworks.com/macbeacon-app.html) 或 Locate for iOS (https://itunes.apple.com/us/app/locate-for-ibeacon/id738709014?mt=8) iOS 7.0.3 中存在一个错误(在 iOS 7.1 中已修复),该错误会在打开通知时导致 iOS 崩溃 (https://discussions.apple.com/thread/5517831?tstart=0)【讨论】:
“我们始终对您尝试定位的蓝牙信标进行主要和次要定义。”这不是必需的。只听 UUID 是完全合法的。【参考方案3】:检查蓝牙是否已打开并且您的应用是否启用了定位服务。此外,如果您身边有任何 android 设备,您可以使用iBeacon Locate 来确保您的设备正在发射。
我可以确认(如文档所述)您不需要定义 minor
或 major
。
这是我使用的传递 JSON,并与我们在这里拥有的 iBeacon 一起使用:
"formatVersion" : 1,
"passTypeIdentifier" : "pass.com.[...]",
"serialNumber" : "E5982H-I2",
"teamIdentifier" : "[...]",
"webServiceURL" : "https://example.com/passes/",
"authenticationToken" : "vxwxd7J8AlNNFPS8k0a0FfUFtq0ewzFdc",
"barcode" :
"message" : "123456789",
"format" : "PKBarcodeFormatPDF417",
"messageEncoding" : "iso-8859-1"
,
"beacons": [
"proximityUUID": "[...]",
"relevantText": "You are here!"
],
"organizationName" : "Paw Planet",
"description" : "Coupon for a free lollipop at Example Candy Store",
"logoText" : "Example Candy Store",
"foregroundColor" : "rgb(255, 255, 255)",
"backgroundColor" : "rgb(206, 140, 53)",
"coupon" :
"primaryFields" : [
"key": "offer",
"value": "Free lollipop",
"label": "On July 29"
]
【讨论】:
【参考方案4】:我会在下面添加主要值和次要值,其中 aaaaa 是主要值,bbbbb 是来自信标的次要值。
"beacons": [
"proximityUUID": "[...]",
"relevantText": "You are here!"
"major":aaaaa
"minor":bbbbb
],
【讨论】:
这不是必需的。只听 UUID 是完全合法的。【参考方案5】:如果没有任何帮助,请尝试重新启动您的设备和/或关闭/打开蓝牙。 有人说 iOS 可以意外停止测距信标。 http://beekn.net/2014/05/beacon-bug-apple-loses-ibeacon-ranging-drives-developers-mad/
就我而言,Passbook 在我靠近 iBeacon 10 分钟后通知我)
编码愉快!
【讨论】:
以上是关于Passbook 无法识别 iBeacon的主要内容,如果未能解决你的问题,请参考以下文章
如何监控多个 iBeacon 并根据每个信标更改 UILabel?