4

macOS应用扩展如何验证应用商店收据?即验证应用内购买是否有效(并继续有效)

显然主包指向 App Extension 的包,因此该appStoreReceiptURL属性Bundle返回一个不存在的收据文件——即使主应用程序有 App Store 收据文件。

例如,以下代码分别打印出主包和应用商店收据路径。

let mainBundle = Bundle.main
print("main bundle path: \(mainBundle.bundleURL)")
print("receipt path: \(String(describing: mainBundle.appStoreReceiptURL))")

当放置在 App Extension 视图控制器中viewDidLoad时,它会返回如下结果:

main bundle path: file:///Users/${userName}/Library/Developer/Xcode/DerivedData/${projectBuild}/Build/Products/Debug/${mainAppName}.app/Contents/PlugIns/${appExtensionName}.appex/
receipt path: Optional(Contents/_MASReceipt/receipt -- file:///Users/${userName}/Library/Developer/Xcode/DerivedData/${projectBuild}/Build/Products/Debug/${mainAppName}.app/Contents/PlugIns/${appExtensionName}.appex/)

但是查看.appex捆绑包内部,该文件夹Contents/_MASReceipt/不存在。

4

0 回答 0