国内站产品与国际站产品的开发有些区别,本文主要介绍国际站设备端开发需要额外修改的内容。
背景介绍
目前在中国内地之外的国家和地区(包括港澳台地区)支持3个region:新加坡、美国和德国。中国内地之外的设备激活联网时,将统一连接到新加坡激活中心。在设备绑定时,平台将根据App用户所在区域,自动将设备切换到相应的region(示例如下)。
- 示例一:App用户注册时选择的国家为美国,平台会将该用户待绑定的设备切换到美国的服务器。
- 示例二:App用户注册时选择的国家为欧洲国家,平台会将该用户待绑定的设备切换到德国的服务器。
- 示例三:App用户注册时选择的国家为东南亚国家,设备连接新加坡服务器,此时无需切换region。
请确认您使用的生活物联网平台SDK版本,并确保版本为V1.1.0及以上版本。该版本SDK集成了设备自动切换region的功能,无需您额外修改代码。获取SDK请参见SDK概述与开发环境设置。
基于V1.3.0及以上SDK编译
您基于V1.3.0以上版本开发时,请根据以下步骤编译国际站的固件。
基于V1.1.0 SDK编译(linkkitapp)
如果基于AliOS Things中的linkkitapp开发应用,设备端固件需要修改以下两个配置来支持统一连接到新加坡激活中心。请您根据以下步骤操作。
基于V1.1.0 SDK编译(living_platform)
如果基于含AliOS Things中的living_platform开发应用,example/living_platform/gen_firmware.sh编译脚本支持通过不同选项编译中国内地和中国内地以外地区的固件。编译时根据该选项,domain type变量和宏FEATURE_MQTT_DIRECT会被自动配置,无需再手动修改。
请根据以下步骤基于gen_firmware.sh脚本编译固件。
常见问题
Q:国际站设备是否可以不关闭FEATURE_MQTT_DIRECT?
A:国际站设备必须关闭FEATURE_MQTT_DIRECT,否则会存在GDPR合规风险,以及设备通过公版App配网绑定后在部分区域无法正常激活的问题。
Q:如果已有FEATURE_MQTT_DIRECT未关闭的设备送样、出货应该怎么处理?
A:请尽快按本文档中描述的步骤修改,并进行设备固件OTA升级,设备升级时请注意选择静默升级(即App确认升级选项选否),并且升级策略选择动态升级(动态升级将持续维护需升级的设备范围,包括当前已经上报版本号的设备和新激活的设备),需要先做固件验证,再做批量升级,详细的OTA步骤请参见固件升级。
Q:国内站设备打开和关闭FEATURE_MQTT_DIRECT有什么区别?
A:打开FEATURE_MQTT_DIRECT为直连模式,关闭FEATURE_MQTT_DIRECT为预认证模式,国内设备在两种模式下都能建立连接,区别是后者连接速度慢一点。因此,建议国内站设备用直连模式,国际站设备用预认证模式。
Q:国内站设备和国际站设备需要维护两个固件吗?
A:是的,国内站设备和国际站设备的ProductKey是不一样的,生产烧录的时候对设备证书和固件要做相应的管理。
Q:国际站设备一定要用生活物联网平台SDK v1.1.0及以上的版本吗?
A:是的,中国内地以外国家和地区(包括港澳台地区)统一激活中心需要设备端支持region切换。
后续步骤
完成国际站设备端开发后,您还需要开发App端,请参见国际站开发实践专题。