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 来确保您的设备正在发射。

我可以确认(如文档所述)您不需要定义 minormajor

这是我使用的传递 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 接收器无法识别传输的信号

iOS 应用无法识别我的信标

如何监控多个 iBeacon 并根据每个信标更改 UILabel?

在后台使用 iBeacon 或 CoreBluetooth 识别 iOS 设备

无法生成 Apple Passbook 签名

iOS:如何确定广播作为 iBeacon 的功耗?