我在didRegisterForRemoteNotificationsWithDeviceToken方法中按照文档写如下代码
[AVOSCloud handleRemoteNotificationsWithDeviceToken:deviceToken constructingInstallationWithBlock:^(AVInstallation *currentInstallation) { [currentInstallation setObject:application.appVersion forKey:@"version"]; }];

原本想观察_Installation里的 updatedAt字段看看参与测试的甲方人员的使用时间,
发现每次打开app时(是杀掉app进程重新打开),_Installation里的 updatedAt字段记录的时间,有时变为当前时间有时不变,毫无规律,后来用好几台机器从APPStore下载使用也是如此,除了这里以外,没有AVInstallation的任何操作,请问这里有逻辑判断吗?updatedAt会在哪种情况下改变?

你好,updatedAt 字段的改变情况:
当该字段所处的这条数据中的其中任何字段改变时都会更新 updatedAt 字段。
如果你使用了 IM ,IM 会更新 Installtion 表中的 channel 字段,同时推送时会影响到 badge 字段。
每次设备启动的时候,SDK 都会更新 _Installtion 数据中的 deviceToken,也会影响到 updatedAt 字段。

非常感谢您的回复。我没使用IM,也从没使用过推送。
这么说的话只有deviceToken改变才会更新了。但是deviceToken如果不卸载的话因该是不变的吧?可以确定app从未卸载过,但是不知为何updatedAt有时更改

另外翻阅了文档,如下
每当用户打开应用,我们都会更新该设备的 _Installation 表中的 updatedAt 时间戳。如果用户长期没有更新 _Installation 表的 updatedAt 时间戳,也就意味着该用户长期没有打开过应用。

似乎是个bug

抱歉上面有一点说的不清楚,现在是每次设备启动的时候,SDK 都会更新 _Installtion
数据中的 deviceToken,不管 deviceToken 是否有变化。
后面会做优化,减少 update deviceToken 的次数,避免不必要的更新。

设备启动时指:didFinishLaunchingWithOptions 这个方法被调用时,不是每次打开 App 时。

我在原帖里已经说明了是杀掉进程后运行了,你可以用你们的demo试试,并不是每次didFinishLaunchingWithOptions结束后updatedat都会更新。