Swift 正在验证来自macOS应用程序扩展的收据?
macOS如何验证应用商店收据?即,验证应用程序的应用内购买是否有效(并继续有效) 显然,主捆绑指向应用程序扩展的捆绑,因此Swift 正在验证来自macOS应用程序扩展的收据?,swift,macos,receipt-validation,macos-app-extension,Swift,Macos,Receipt Validation,Macos App Extension,macOS如何验证应用商店收据?即,验证应用程序的应用内购买是否有效(并继续有效) 显然,主捆绑指向应用程序扩展的捆绑,因此appStoreReceiptURL属性bundle返回一个不存在的接收文件-即使主应用程序有appstore接收文件 例如,以下代码分别打印出主捆绑包和应用商店接收路径 let mainBundle=Bundle.main 打印(“主捆绑路径:\(mainBundle.bundleURL)”) 打印(“收据路径:\(字符串(描述:mainBundle.appStoreRe
appStoreReceiptURL
属性bundle
返回一个不存在的接收文件-即使主应用程序有appstore接收文件
例如,以下代码分别打印出主捆绑包和应用商店接收路径
let mainBundle=Bundle.main
打印(“主捆绑路径:\(mainBundle.bundleURL)”)
打印(“收据路径:\(字符串(描述:mainBundle.appStoreReceiptURL)))
当放置在应用程序扩展视图控制器的viewDidLoad
中时,它返回如下结果:
主捆绑路径:file:///Users/${userName}/Library/Developer/Xcode/DerivedData/${projectBuild}/Build/Products/Debug/${mainAppName}.app/Contents/PlugIns/${appExtensionName}.appex/
接收路径:可选(内容/_masreceive/receipt--file:///Users/${userName}/Library/Developer/Xcode/DerivedData/${projectBuild}/Build/Products/Debug/${mainAppName}.app/Contents/PlugIns/${appExtensionName}.appex/)
但是,查看
.appex
捆绑包内部,文件夹Contents/\u masreceive/
不存在。您解决过这个问题吗?我猜我们可以从主应用程序将收据复制到一个组容器中,但这看起来很脆弱。我就是这么做的。主应用程序在通过验证后复制收据。扩展将在每次运行时重新验证收据副本。