本地原生iOS时间黑客证明背景倒计时器

 小白牛 发布于 2022-12-04 01:43

我想要一种创建本地iOS-time-hack proof背景倒计时器的方法,例如用于计算游戏中下一个奖励的停机时间.

对象的解释:

本地
- 没有互联网连接的作品

native-iOS
- 我想在(最好)Objective-C或Swift中找到解决方案

time-hack proof
- 当用户向前/向后更改设备时间时,剩余时间保持不变

背景
- 关闭/重新打开友好

倒计时器
- 一个计时器,它在启动后将提供一种检查剩余时间的方法

我希望在我的iOS游戏中有一个基于时间的奖励系统,仅仅通过移动设备时间就不会轻易攻击.

本来,我认为这是不可能的,使用保持[NSDate date]savedDate,比较它们一起找经过的时间.然而,最近我遇到了一个使用此功能的游戏:Crossy Road.据我所知,这是一款Unity游戏,但是我怀疑在Unity项目中可以使用的这种有点普遍的功能是在iOS上通过Objective-C或Swift访问的.

他们提供定时奖励系统,每6个小时一次,并且,据我测试,它不会通过更改设备时间来破解.它也适用于没有互联网连接.(如果你没有连接,我不确定它是否有效,但是当我连接,断开连接并尝试使用黑客时,它不起作用.)

1 个回答
  • 您可以使用当前系统正常运行时间(mach_absolute_time()).该功能易于使用CACurrentMediaTime(),可在几秒钟内轻松返回.然后你可能需要设置某种间隔来检查这个值.这当然可以使用NSDate来完成,因为它不是由用户设置时钟前进触发的问题.在重新启动时,只需保存起始值并在重新启动后将其用作偏移量.

    唯一的缺点是,它没有计算设备关闭的时间,但这些日子通常没什么大不了的.

    要获得实际的计时器功能,只需在开始时保存该值,然后根据预计的结束值定期检查它,可能随着结束的方式增加分辨率.

    2022-12-11 02:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有