这个应用程序在后台运行,并使用低能耗蓝牙识别在本地区域内运行该应用程序的其他人。当该应用程序在后台永久运行时,它会定期广播和监听其他支持蓝牙的设备(此时是iOS和Android),这些设备也会广播相同的唯一标识符。
我们的唯一标识符也称为我们的服务特性。在蓝牙规范中,设备可以广播服务的可用性。每个服务都可以有多个特征。我们使用一个特征来唯一地标识我们的服务,并将其与所有其他类型的蓝牙设备区分开来。
对于我们找到的每一台具有匹配特征的设备,我们都会记录我们看到的设备的标识符、时间戳和蓝光信号的RSSI,这将允许一个团队稍后确定谁与感染新型冠状病毒的人关系密切。
被动收集设备附近的其他应用程序用户的匿名ID(本地存储在设备上)。
从其他开发人员那里获取一份GoogleService-Info.plist的副本,并将其复制到.ret目录中。
如果Xcode已打开,请重新启动Xcode。Xcode不能很好地处理从它下面更改出来的配置文件。
这个应用程序目前依赖于远程(而不是推送)通知,不幸的是,我们还无法在模拟器上触发。推送通知(.apns文件形式)可以拖到模拟器窗口上或传递到simctl中,但远程通知只在设备上传递。
./bin/pu.sh是从pu.sh派生的脚本,其中有从AppleDeveloper帐户获取凭据的说明。但是,我们已经用完了可用的APNS密钥,因此您需要从其他开发人员那里获得该密钥。使用其中一个示例通知的路径运行脚本,以通过Apple:./bin/pu.sh";示例通知/2_Potential_Diagnosis.apns发送远程通知。您还需要设置以下环境变量来配置脚本:
构建是从配置项自动生成的。每隔两个小时,我们会将主版本中的任何更改合并到内部版本中,升级版本,并剪切一个上传到Test Flight的构建版本。