Как MacOS Расширение приложения может проверить квитанцию магазина приложений? То есть, чтобы проверить, являются ли покупки в приложении для приложения действительными (и остаются действительными)
Очевидно, что основной пакет указывает на пакет расширения приложения, следовательно, свойство appStoreReceiptURL
Bundle
возвращает несуществующий файл квитанции - даже если основное приложение имеет файл квитанции App Store.
Например, следующий код распечатывает пути получения основного пакета и магазина приложений соответственно.
let mainBundle = Bundle.main
print("main bundle path: \(mainBundle.bundleURL)")
print("receipt path: \(String(describing: mainBundle.appStoreReceiptURL))")
При размещении в контроллере представления расширений приложения 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/
не существует.