应用程序删除后的iOS应用程序持久设置

2024-07-04

我们正在创建一个应用程序,如下所示:

  • 用户从 2 个免费“代币”开始
  • 用户可以通过应用内购买 0.99 美元购买一包 10 个代币

我们已经实现了这个使用NSUserDefaults保存令牌数量。

有没有办法让我们的免费 2 令牌设置持久化?即使他们删除了该应用程序?现在您可以删除该应用程序并重新安装以再次获得 2 个令牌。 iOS 5 有NSUbiquitousKeyValueStore将设置保存到 iCloud 更好吗?

如果没有,我们将不得不为此使用网络服务......

注意:此应用程序位于 MonoTouch 中,但可能与问题无关。此外,在我们的应用程序中,用户不会愿意重新安装应用程序来获得另外 2 个令牌(他们不会丢失其他设置或游戏进度)。


只是我的 2c 作为 @Almo 已经涵盖了大部分内容,应该得到学分:-)

NSUbiquitousKeyValueStore优势由用户使用,例如多个设备将共享相同的免费代币。 OTOH,这可能不是您想要在应用程序中出现的东西......

卸载后保留数据违反了沙箱应用程序。有很多方法可以做到这一点,例如您可以添加图像/照片/联系人/...,但不太可能获得“Apple 批准”,并且很可能很容易被破解。

所以我也建议你使用网络服务。一种简单的方法是在未找到应用程序数据(安装和重新安装)时使用服务进行验证(例如,使用设备的 MAC 地址,因为设备唯一标识符将消失)(安装和重新安装)是否是已知设备(无令牌) (拿到令牌)。

如果付费令牌是可重复使用的(可以通过重新安装包含它们作为数据的备份来重新播放),那么您可能希望使用 Web 服务来跟踪它们。不可重复使用的令牌不会受到此影响(并且可能更容易处理)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序删除后的iOS应用程序持久设置 的相关文章

随机推荐

  • Zend Framework 2 SOAP AutoDiscover 和复杂类型

    我正在准备 SOAP 服务器并使用以下代码生成 WSDL Controller action code if key exists wsdl params autodiscover new AutoDiscover autodiscover
  • getline 函数的多个分隔符,C++ [重复]

    这个问题在这里已经有答案了 我想逐字阅读文本 以简单的方式避免任何非字母数字字符 从带有空格和 n 的文本 进化 之后 我需要解决这个问题 以防还有 例如 第一种情况只需使用带有分隔符 的 getline 即可解决 我想知道是否有办法使用g
  • React redux api 每 x 秒轮询一次

    我已经做到了这一点 但我正在寻求一种更 最佳实践的方法 它使用https icanhazdadjoke https icanhazdadjokeapi 显示一个随机笑话 每 x 秒更新一次 有更好的方法吗 最终我想添加停止 启动 重置功能
  • Java Web 应用程序的关闭钩子

    我需要在 java web 应用程序停止或 tomcat 停止时保存一些数据 如何才能做到这一点 编辑 如果我使用 jvm shutdown hook 有什么缺点吗 使用一个实现的类ServletContextListener https
  • 为什么需要将新事件添加到 IDL 接口的*末尾*?

    我发现 当我向现有 COM IDL 接口添加新事件时 有时会遇到奇怪的问题 除非将它们添加到接口的末尾 例如 假设我有以下界面 interface IMyEvents HRESULT FooCallback in long MyParam1
  • 在 Elixir 中缓存昂贵的计算

    我在 Elixir 中有一个 Web 应用程序 如下所示 defmodule Test do use Plug Router plug match plug dispatch def expensiveComputation do perf
  • 如何在Carbon实例中添加CarbonInterval实例

    我有一个碳实例 a Carbon Carbon now Carbon Carbon date 2018 06 11 10 00 00 timezone type 3 timezone Europe Vienna 和一个 CarbonInte
  • Parse Server - 如何使用调度程序一遍又一遍地运行“作业”

    我花了一整天的时间尝试让某种调度程序与我的 Parse Server 在 AWS Beanstalk Node js 上运行 一起使用 我能够在 js 文件中获取一些代码 但它似乎不起作用 有什么方法可以设置某种调度程序 这样我就不必通过仪
  • 测试最终字段的初始化安全性

    我试图简单地测试 JLS 保证的最终字段的初始化安全性 这是为了我正在写的一篇论文 但是 根据我当前的代码 我无法让它 失败 有人可以告诉我我做错了什么 或者这只是我必须一遍又一遍地运行然后在一些不幸的时机看到失败的事情吗 这是我的代码 p
  • 动态 iframe onload 未触发?

    我认为这是可能的 因为有大量类似的问题 已解决 但似乎没有一个涉及动态创建的 iframe 基本上 我使用 jquery 创建一个临时 iframe 来加载文件 从通过 ajax 调用提供的文件路径 然后打开文件下载提示 一切正常 但为了防
  • OpenCV (cv2) Python findChessboardCorners 在看似简单的棋盘上失败

    我有以下从相机拍摄的棋盘图像 这是我的最小工作示例代码 import cv2 print cv2 version left gray cv2 imread left raw jpg cv2 CV LOAD IMAGE GRAYSCALE p
  • 有没有办法为非 60hz 的高/低帧速率显示器设置 rAF 的 FPS?

    所以我有一台 120hz 显示器和一台 60hz 显示器 如果我在第一个显示器上运行游戏 它会运行得非常快 但是当我在第二个显示器上运行它时 它会变慢 我知道也有很多 30hz 显示器 但速度会更慢 还有一些 240hz 显示器 速度快如闪
  • 更改hadoop多集群中的ssh默认端口[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的Hadoop多节点集群有3个节点 一个namenode和两个datanode 我使用Hbase来存储数据 由于某些原因我想更改默认的s
  • 在线性时间内将整数列表拆分为总和相等的子列表

    我找到了一种算法 可以通过以下方式执行此操作 给定列表 l 计算其总和 s 计算下表 s acc s 0 s x1 x1 s x1 x2 x1 x2 名词 s x1 x n 1 x1 x2 x n 1 而在每一步中 您都会检查该对的左侧元素
  • 如何使用 XAML 在整个容器(如 Panel 或 GroupBox)上设置 IsReadOnly / IsEnabled?

    我有一个MVVM包含多个视图且某些复杂的应用程序IsReadOnly基于用户权限 查看 编辑模式和对象状态的规则 我想设置IsReadOnly and or IsEnabled同一容器中整组控件的属性 GroupBox StackPanel
  • 如何处理对象字面量?

    我是 Javascript 新手 试图提取存储在对象中的一些文本 该对象被定义为对象字面量并传递给 a 中的函数调用该函数 脚本 和对象 具有以下结构 foo query count 2 created 2009 07 25T08 17 5
  • 保存原始函数,在本地用 flet 重新绑定它并从 new 内部调用原始函数?

    主题 就像是 lexical let oldf original func flet original func arg do something funcall oldf arg do something 不工作 希望这对您的语法有所帮助
  • IFRAME 内的 AJAX 不适用于同一服务器

    我正在使用一个网站 abc com 即主持一个iframe的某个页面的123 com 里面的页面iframe正在向另一个页面发出 AJAX 请求123 com 但我们看到请求被取消 除非我错了 我还没有在互联网上找到任何关于此的官方信息 该
  • 一次只检查一个ListViewItem

    我正在使用 Compact Framework 开发一个智能设备项目 我有一个ListView有几个可检查的ListViewItem是 财产CheckBoxes是真的 我只需要检查一项ListViewItem当时 所以我订阅了ItemChe
  • 应用程序删除后的iOS应用程序持久设置

    我们正在创建一个应用程序 如下所示 用户从 2 个免费 代币 开始 用户可以通过应用内购买 0 99 美元购买一包 10 个代币 我们已经实现了这个使用NSUserDefaults保存令牌数量 有没有办法让我们的免费 2 令牌设置持久化 即