检查应用程序是否已购买

2024-03-22

我只是想问是否有办法检查用户是否确实以编程方式购买了应用程序。我看到《无尽之剑 3》和其他游戏如何强迫用户登录他们的苹果帐户,并以某种方式向商店检查该应用程序是否已被购买。这怎么可能以编程方式创建?我在整个网络上进行了搜索,只是为了找到如何打开 storkit 视图,您可以从中购买其他应用程序或视频等...提前致谢


您可以尝试检查应用程序的收据并通过 AppStore 进行验证 -

NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL]; // iOS 7+, do not use respondsToSelector as it will report YES for iOS 6 too

Here's 苹果的文档 https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateLocally.html关于如何验证您的收据。
如果收据为 nil 或者 url 指向不存在的路径,您可能需要刷新收据。
实施SKRequestDelegate并检查:

NSError* err = nil;
if (![url checkResourceIsReachableAndReturnError:&err]){
    SKReceiptRefreshRequest* request = [[SKReceiptRefreshRequest alloc] initWithReceiptProperties:nil];
    request.delegate = self; /* or your delegate's instance here */
    [request start];
}
....
-(void)requestDidFinish:(SKRequest*)request{
    if([request isKindOfClass:[SKReceiptRefreshRequest class]]){
        // The URL should be available now, if it's not - I guess the app is cracked
    }
}
-(void)request:(SKRequest*)request didFailWithError:(NSError *)error{
    ; // This does not mean the app is pirated, use this to schedule the test for later.
}

我会在调试模式下(以及在模拟器上)禁用这些检查。
您可能想检查这个项目 -验证商店收据iOS https://github.com/rmaddy/VerifyStoreReceiptiOS用于验证您的收据。

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

检查应用程序是否已购买 的相关文章

随机推荐

  • 关于 ASP.Net 中的弹出窗口

    我有一个gridview其中包含一个details button作为最后一栏 My aspx
  • Wildfly 17 服务器提供的 Maven 依赖项

    我刚刚开始使用 Wildfly 服务器版本 17 并且我一直在研究我应该在 pom 文件中提供的依赖项 我在文档中没有找到任何显示所提供的依赖项及其正确版本的内容 作为一个例子 这是我想要的
  • C# 泛型委托类型推断

    为什么 C 编译器无法在指定示例中将 T 推断为 int void Main int a 0 Parse 1 x gt a x Compiler error Cannot convert expression type int to ret
  • C/C++ 中两个 INT_MAX 数字的乘积不正确

    就我而言 两个 INT MAX 数字的乘积是296447233 这是不正确的 long long int product 0 product 2137483647 2137483647 printf product lli n produc
  • 将换行符附加到 NSString

    我有这个 if soapResults nil soapResults soapResults stringByAppendingString n 但我收到警告 构建时来自不同 Objective C 类型的分配 当我在设备上运行它时 我得
  • C++ 反序列化通过 UDP 从 C# 应用程序发送的对象

    我有一个申请c 它连接到另一个应用程序 编写为c 通过UDP 我更喜欢高性能的解决方案 因为我希望测量事件客户端 某些处理服务器端和客户端处理完成的响应之间的时间 本质上是 往返延迟 我有一个 C 对象 例如 public class Pa
  • C# - 显示最大值、最小值和平均值

    我是 C 新手 我一直在致力于这个计划并进行研究 但一无所获 目标是让用户输入数字 多少由用户决定 当他们输入0时 它将停止程序并显示输入的最小数字 输入的最大数字以及输入的所有数字的平均值 我没有收到任何错误 而且我收到了 如果有人可以请
  • Java中删除字符串中的特定字符

    例如 给定一个字符串Battle of the Vowels Hawaii vs Gronzy当我们指定要删除的字符为aeiou 该函数应将字符串转换为Bttl f th V wls Hw vs Grzny 在书上找到这个问题编程面试曝光
  • surfaceDestroyed()何时发生

    我不知道什么时候surfaceDestroyed 发生 我试图让我的线程停止运行surfaceDestroyed 方法 SurfaceView 但似乎我的表面从未真正被破坏 有人可以告诉我什么时候发生这种情况吗 或者说如何触发 每当您单击
  • Angular模板绑定,多次调用回调函数

    我尝试实现一个包含结构化数据的网格组件columns definition和它的data array 有一个callback每列定义中的函数 用于自定义显示该列的值 每一个里面callback 它调用了 console log 来显示回调函
  • NSArray:为什么发送 SIGABRT 而不是“索引越界”类型的错误?

    好的 所以我有这个非常奇怪的SIGABRT我正在开发的一个复杂的 Objective C iOS 程序上出现了错误 经过一天的跟踪 我找到了罪魁祸首 假设我们有以下代码 NSArray a NSArray arrayWithObjects
  • 检测 Node Express 中的社交机器人

    我正在尝试检测以下两个选项之一 特定的机器人列表 FacebookExternalHit LinkedInBot TwitterBot Baiduspider 任何不支持 Crawable Ajax 规范的机器人 我见过类似的问题 如何识别
  • 在 Cloud Function 上部署函数时出现错误,错误代码为 13 并显示消息“INTERNAL”

    我正在为我的应用程序部署 Firestore 触发器 onCreate 但每次我想部署时 它总是出错 控制台始终显示代码 13 和消息 内部 这是控制台上出现的内容 type type googleapis com google cloud
  • 在 R 中将实际日期转换为整数值

    使用 R 我希望能够将格式为 2014 12 31 的日期转换为整数 20141231 以便创建序列号 我的目标只是能够完成这个用户问题的反向 将整数字符串日期转换为实际日期 https stackoverflow com question
  • Socket.io:如何使用 Socket.io-redis 适配器计算房间内的客户端数量

    我开始使用构建聊天服务器Socket io http socket io 具有多个节点 它用Socket io redis https github com automattic socket io redis将所有服务器连接在一起并且ro
  • 使用 boost Spirit 语法(boost 1.43 和 g++ 4.4.1)第二部分构建错误

    我在编译一个小的spirit qi语法时遇到问题 我正在使用 boost 1 43 和 g 4 4 1 输入语法头 构建错误似乎指向 指令 规则的定义 也许是 sp val sp 1 以某种方式破坏了它 但这或多或少基于spirit文档教程
  • 使用自定义形状在画布上绘制位图

    我想在画布上绘制具有以下形状的图像 黑色必须用我的图像代替 我目前将图像绘制为一个整体 我只是不知道如何才能得到这样的形状 canvas drawBitmap header 0 0 mPaint 有人能帮我吗 感谢 pskink 我已经得到
  • 无法将 imgur 上的 gif 嵌入到 github 上的 README.md 中

    我想在 README md 上显示一个大 gif 首先 我把它上传到imgur 然后 我将 url 添加到 README md img alt YAP src http i imgur com dNYswmI gif 但无法加载 编译为 a
  • 在 JavaScript 中是否有更好的方法来执行可选函数参数? [复制]

    这个问题在这里已经有答案了 我总是像这样处理 JavaScript 中的可选参数 function myFunc requiredArg optionalArg optionalArg optionalArg defaultValue Do
  • 检查应用程序是否已购买

    我只是想问是否有办法检查用户是否确实以编程方式购买了应用程序 我看到 无尽之剑 3 和其他游戏如何强迫用户登录他们的苹果帐户 并以某种方式向商店检查该应用程序是否已被购买 这怎么可能以编程方式创建 我在整个网络上进行了搜索 只是为了找到如何