Macos 在其他Mac上的沙箱中测试Mac Appstore的IAP
我正在将IAP添加到Mac App Store上分发的Mac应用程序中。在我的Mac内部/外部XCode上,它似乎在本地运行良好,但由于某些原因,它在其他具有不同行为的Mac计算机上不起作用(SIGKILL或不下载App Store收据) 以下是我用来确保App Store收据存在或正确下载的代码:Macos 在其他Mac上的沙箱中测试Mac Appstore的IAP,macos,in-app-purchase,mac-app-store,Macos,In App Purchase,Mac App Store,我正在将IAP添加到Mac App Store上分发的Mac应用程序中。在我的Mac内部/外部XCode上,它似乎在本地运行良好,但由于某些原因,它在其他具有不同行为的Mac计算机上不起作用(SIGKILL或不下载App Store收据) 以下是我用来确保App Store收据存在或正确下载的代码: void EnsureAppstoreReceipt() { // TODO: Note: In OS X, if the appStoreReceiptURL method is not av
void EnsureAppstoreReceipt()
{
// TODO: Note: In OS X, if the appStoreReceiptURL method is not available (on older systems), you can fall back to a hardcoded path.
// The receipt’s path would be /Contents/_MASReceipt/receipt inside the app bundle.
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if(!receipt)
{
// Validation fails
qDebug() << "No AppStore receipt found. Exiting with 173 to force OSX to generate one in " << QString::fromNSString(receiptURL.absoluteString);
exit(173);
}
}
void-storereceipt()
{
//TODO:注意:在OSX中,如果appStoreReceiptURL方法不可用(在较旧的系统上),则可以退回到硬编码路径。
//收据的路径应该是应用程序包中的/Contents/\u MASReceipt/receipt。
NSURL*receiptURL=[[NSBundle mainBundle]appStoreReceiptURL];
NSData*receipt=[NSData DATA WITH CONTENTS OFURL:receiptURL];
如果(!收据)
{
//验证失败
qDebug()我终于找到了一种方法,这是基于一些教程,比如。我必须创建一个新的配置文件,以部署到其他Mac电脑上,对于这个配置文件,我必须添加每台Mac电脑,我想在上面测试我的应用程序,并启用“添加设备”
然后我必须刷新首选项中XCode
中的签名身份列表
=>帐户
,并访问新的配置文件。然后我存档
,分发
我的构建并导出为我使用给定配置文件签名的应用程序
,然后是应用程序pr在其他Mac电脑上使用沙盒启动AppStore