如何在Apple多设备间同步数据?

我正在开发一款离线app,而且该app会在多设备傻上使用,比如apple watch,iphone,ipad,mac等等。

如何在这些设备上同步数据,可能是一个字符串或者json data。

当用户在一个设备上修改数据时,其他的被绑定的附近的设备会收到最新的被修改的数据,可能这些设备处在同一个wifi网络。

这个同步过程不需要被用户操作和感知的。

如果您有好的建议,我非常感谢!

Apple Watch

发布日期 2022年6月28日 下午11:30

回复
回复量: 10

2022年6月29日 上午12:14 回应 CountryHarry

姑且認為你所謂的離線就是去中心化, 那麼你的要求是無法實現的(或者實現方法會導致無法上架)

在這種沒有中心服務器, 但處在同一子網的情況下, 最常規的實現方式是監聽端口+廣播, 一旦某台設備更新數據後全網廣播信息, 其他設備接收後更新自身數據.

但是, 你所要實現的設備中, Mac沒有問題, iPhone/iPad 不確定是否允許, Apple Watch 幾乎沒可能允許, 那麼這種實現方式會導致無法上架.

2022年6月29日 上午1:01 回应 CountryHarry

看了一下, 理論上可行, 但是只限於配對的設備.

那麼剩下的問題就是其他設備間通信的問題了.

另外, 複雜網絡環境下, 子網間通信不能默認認為是暢通的.

你可以研究一下基於 Bonjour 協議能否實現,

或者如果可以以 mac 為 master/server 的話, 基於/設計任何局域網內中心化協議實現.

2022年6月28日 下午11:46 回应 CountryHarry

developer CountryHarry 你好:

我个人认为,如果你的app处于离线的状况下,不太可能在非用户感知操作的情况下做到同步数据,我的idea是可以让两部设备通过蓝牙进行p2p的对话,两部设备在app运行的时候,如果哪部设备更新的数据就会向另外一部设备通过蓝牙发送信息,另一部设备在会话中发现新的数据,对本地数据进行更新。

2022年6月29日 上午1:33 回应 Sariel

是的,从离线程度上来讲,设备间进行通信可以不算完全离线。

我想实现的场景主要是基于对用户隐私的保护,以及你说的去中心化,不存在一台中心服务器来存储用户的任何数据,这样我也就不需要额外支出服务器的成本。

如果这个场景能实现,用户不需要访问公网,不需要上传数据到公网服务器,用户所有的数据都在他的多台配对设备上。

Bonjour协议也是个很好的建议,我可能会在后续做一些尝试。

既然去中心化,就不再考虑mac的master/server了,而且存在一种情况,用户没有mac设备,仅需要在iphone和apple watch之间通信,那mac server就没有意义了。

你的回答给了我很多启发,等后续app实现并上架了,我再来给您回复。再次非常感谢!

这个主题已被系统或社区团队关闭。 你可以为你认为有帮助的任何帖子投票,也可以在社区中搜索其他答案。

如何在Apple多设备间同步数据?

欢迎来到 Apple 支持社区
Apple 客户在其产品方面互相帮助的论坛。使用您的 Apple 帐户开始畅游其中吧!!