在其他 Mac 上的沙盒中测试 IAM for Mac 应用商店



我正在将IAP添加到Mac App Store上分发的Mac应用程序中。它似乎在XCode内部/外部的Mac上本地工作正常,但由于某种原因,它不适用于其他具有不同行为的Mac计算机(SIGKILL或未下载App Store收据)。

以下是我用来确保App Store收据存在或正确下载的代码:

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);
  }
}

我在XCode中Archive应用程序,然后选择Distribute然后选择Application。如果我选择Don't resign,那么即使在我的电脑上,它也不会下载App Store收据。但是,如果我选择"Mac Appstore Distribution"身份或"Mac Development"配置文件,那么它会在我的开发Mac上正确加载收据,但在其他计算机上不起作用。它启动应用程序并始终以代码 173 退出,没有其他内容。

是否可以在尚未构建应用程序的 Mac 上的沙盒中测试 IAP?如果是这样,我在这里错过了什么?

我终于根据像这样的一些教程找到了一种方法来做到这一点。我必须创建一个新的配置配置文件以部署到其他 Mac,对于此配置配置文件,我必须添加要在其上使用证书、标识符和配置文件上的"添加设备"测试我的应用程序的每台 Mac 计算机。

然后,我必须在 Preferences => Account 中刷新XCode中的签名标识列表,并有权访问新的预配配置文件。然后我ArchiveDistribute我的构建并导出为我使用给定的配置文件签名的Application,然后应用程序在其他 Mac 计算机上使用适用于 AppStore 的沙盒正确启动。

相关内容