Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

无法恢复购买 #4

Open
hiifong opened this issue Nov 27, 2024 · 11 comments
Open

无法恢复购买 #4

hiifong opened this issue Nov 27, 2024 · 11 comments

Comments

@hiifong
Copy link

hiifong commented Nov 27, 2024

No description provided.

@hiifong hiifong changed the title 无法回复购买 无法恢复购买 Nov 27, 2024
@jaywcjlove
Copy link
Owner

@hiifong 能描述整个购买过程吗

@jaywcjlove
Copy link
Owner

@hiifong 无法恢复购买错误有许多可能的错误,所以我需要更多的描述判断 问题出在什么地方

  1. 网络问题
    • 如果网络连接不稳定或无法连接到 App Store,恢复购买请求可能会失败。
    • 在 restore 方法中,捕获的错误信息会打印到控制台,但没有进一步处理。
  2. 用户未登录
    • 如果用户未登录到他们的 App Store 账户,恢复购买请求将无法进行。
    • 这种情况通常会触发系统提示用户登录,但如果用户取消登录,恢复购买将失败。
  3. App Store 同步失败
    • AppStore.sync() 方法可能会因为各种原因失败,例如 App Store 服务暂时不可用。
    • 在 restore 方法中,捕获的错误信息会打印到控制台,但没有进一步处理。

@jaywcjlove
Copy link
Owner

@hiifong 问题测试出来了,第一次如果购买失败,退出重新进入就好了,我看怎么解决一下

@hiifong
Copy link
Author

hiifong commented Nov 28, 2024

@hiifong 能描述整个购买过程吗

我是在Mac上购买的,我现在想在手机上使用,但是在恢复购买的时候,没有任何报错,也恢复不了,反复输了几次密码也不行

@jaywcjlove
Copy link
Owner

@hiifong 我查阅了文档,理论上在 macOS 端购买后,可以在 iOS 端恢复购买

因为这部分没有涉及复杂的业务逻辑。问题可能出在 Apple 账号设置上,需要确保“登录账号”和“媒体与购买项目”账号与 macOS 保持一致。

image image

@hiifong
Copy link
Author

hiifong commented Nov 28, 2024

@hiifong 我查阅了文档,理论上在 macOS 端购买后,可以在 iOS 端恢复购买

因为这部分没有涉及复杂的业务逻辑。问题可能出在 Apple 账号设置上,需要确保“登录账号”和“媒体与购买项目”账号与 macOS 保持一致。

image image

是同一个ID
image

@jaywcjlove
Copy link
Owner

@hiifong 这个恢复购买并不是我能控制的,是直接调用 StoreKit 2 IAP,没有什么代码逻辑

我阅读文档很有可能是登录的账号是一样的,应用商店支付账号不一致引发的

image

并且在新的版本中,添加了恢复购买错误提示,到时候可以更新再看看有没有错误提示

// MARK: 恢复购买
/// 恢复购买
/// This call displays a system prompt that asks users to authenticate with their App Store credentials.
/// Call this function only in response to an explicit user action, such as tapping a button.
@MainActor func restore() async throws {
    do {
        try await AppStore.sync()
        await updatePurchasedProducts()
    } catch {
        // 可以在这里更新 UI,比如显示错误提示给用户
        print("Restore purchases failed: \(error.localizedDescription)")
        SSApp.showAlert(message: "Restore purchases failed: \(error.localizedDescription)")
    }
}

@hiifong
Copy link
Author

hiifong commented Nov 28, 2024

@hiifong 我查阅了文档,理论上在 macOS 端购买后,可以在 iOS 端恢复购买

因为这部分没有涉及复杂的业务逻辑。问题可能出在 Apple 账号设置上,需要确保“登录账号”和“媒体与购买项目”账号与 macOS 保持一致。

image image

APP store的账号也是同一个

@jaywcjlove
Copy link
Owner

@hiifong 目前我还排查不出什么问题,购买是不支持家庭共享的,但是同一账号,官方文档说是支持,应用开发调试目前十分有限,还需要在这方面研究一下具体是什么问题

@hiifong
Copy link
Author

hiifong commented Nov 28, 2024

@hiifong 目前我还排查不出什么问题,购买是不支持家庭共享的,但是同一账号,官方文档说是支持,应用开发调试目前十分有限,还需要在这方面研究一下具体是什么问题

刚刚升级app重新试了一下,现在可以恢复购买了

@jaywcjlove
Copy link
Owner

@hiifong 我就添加了错误处理,啥也没有干,会不会是苹果服务器的问题😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants