- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在WWDC 2013关于处理应用商店收据的演讲中,建议对于iOS应用,应尽快调用收据验证码。甚至在 application:didFinishLaunchingWithOptions:
之前 - 即在 main()
函数中。我想它的工作方式如下:
int main(int argc, char *argv[]) {
@autoreleasepool {
validateReceiptMethod(); // <---- HERE
int retVal = UIApplicationMain(argc, argv, nil, nil);
return retVal;
}
}
想法是 UIApplicationMain()
方法启动您的应用程序并调用 application:didFinishLaunchingWithOptions:
。如果将 validateReceiptMethod()
放在 UIApplciationMain()
之后,它将永远不会运行。
无论如何,这很好用。但是没有收据怎么办?然后你需要调用 SKReceiptRefreshRequest
从应用商店获取一个新的,这很好。但是,如果您在 UIApplciationMain()
之前运行此代码,它也会在您的任何 UI 显示之前运行。那么在向用户显示 Apple ID 登录对话框方面会发生什么情况呢?甚至可以从 main()
方法调用 SKReceiptRefreshRequest
吗?
最佳答案
So what would happen in terms of showing the user the apple ID login dialog?
Store Kit 警报出现在不属于您的应用程序的窗口中,因此可以在您的应用程序未处于事件状态时显示 - 甚至在它启动之前。但这并不是真正相关的。
Is it even possible to call
SKReceiptRefreshRequest
from themain()
method?
如果您设置自己的事件循环然后在接收请求完成时停止它,这可能是可行的,但您不应该这样做。不要因为等待网络请求而延迟启动您的应用程序;它可能永远不会完成。如果收据无效,我建议输入 UIApplicationMain()
并在启动完成时请求另一个收据。
编辑:由于在输入 UIApplicationMain()
之前没有有效收据,您无法做任何事情,我不明白为什么 Apple 建议此时检查。这在 OS X 上有意义,因为应用程序应该终止,但在 iOS 上没有意义,因为应用程序应该继续运行并且忽略无效收据是可以接受的。您可以提前检查,将状态存储在全局变量中,然后再响应;但为什么不只在您准备好回应时才检查。
关于ios - 是否可以从 main() 调用 SKReceiptRefreshRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204113/
我正在使用SKReceiptRefreshRequest来验证来自服务器的收据。问题是每次提示密码时它都会询问我。任何人都可以帮我建议一种更好的方法来验证用户收据 这就是我正在做的事情(应用程序启动时
我的应用启动并检查收据。因为是沙盒,app第一次从Xcode运行,需要向App Store索取回执。所以我使用 SKReceiptRefreshRequest 来请求它。 弹出一个窗口,要求提供 Ap
当我们需要刷新 iOS7 收据时,适当的方法是使用 SKReceiptRefreshRequest。这将打开一个 Apple 对话框,供用户使用其 Apple ID 登录。它还允许他们取消。 如何检测
我们目前正在开发一个 iOS 应用程序,该应用程序使用通过 IAP 购买的自动续订订阅。我们希望能够从用户那里获得收据或以前交易的列表,而无需他们输入 iTunes 密码。 文档说明如下: Users
我正在开发一个使用应用内购买的 iOS 应用,我不确定我对 SKReceiptRefreshRequest 是否有很好的理解。它只能在测试环境中使用,还是可以在商店的最终应用版本中使用? IAP 中的
我的应用使用订阅模式,我收到一些用户无法通过 SKPaymentQueue.restoreCompletedTransactions 恢复订阅的投诉。他们必须删除应用程序并从 AppStore 重新下
在WWDC 2013关于处理应用商店收据的演讲中,建议对于iOS应用,应尽快调用收据验证码。甚至在 application:didFinishLaunchingWithOptions: 之前 - 即在
从 stackoverflow 的所有其他答案中,我还没有找到这个特定问题的答案。 我正在使用 SKReceiptRefreshRequest 恢复购买。我正在使用沙盒帐户。我有以下代码: let r
当我使用 .storekit 运行应用程序时Xcode 12.2/iOS 14.2 模拟器中的配置文件,我的 SKReceiptRefreshRequest总是失败,我的 func request(_
我是一名优秀的程序员,十分优秀!