首页 > 解决方案 > 使用 iTMSTransporter 更新应用内购买?

问题描述

我一直在检查 Apple 的iTMSTransporter,发现它将是我们在 CI/CD 管道中使用的非常有价值的工具。我查看了lookupMetadata操作,它提供了大量有价值的信息来监控我们的应用、状态和定义的应用内购买。不过,我们希望能够做的一件事获取该操作的输出元数据 XML,修改应用内购买详细信息,然后使用 iTMSTransporter 对其进行更新。这是受支持的选项吗?

有关更多信息,iTMSTransporter -m lookupMetadata <options>将输出一个名为 metadata.xml 的文件,其中包含有关应用程序的详细信息。此 XML 的片段如下所示...

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://apple.com/itunes/importer" version="software5.11">
   
    <metadata_token>1592855553024-a491289f7f79e4f8dcbdae34cf41ef4485928389987f3b4cc3323111c85b37</metadata_token>
    <provider>MyCorp12345</provider>
    <team_id>CQQR623213B5</team_id>
    <software>
        <vendor_id>com.myapp.PurchaseTest</vendor_id>
        <read_only_info>
            <read_only_value key="apple-id">342453443</read_only_value>
        </read_only_info>
        <software_metadata app_platform="ios">
            <versions>
                <version string="1.0">
                    <locales>
                        <locale name="en-US">
                            <title>PurchaseTestSN</title>
                        </locale>
                    </locales>
                </version>
            </versions>
            <in_app_purchases>
                <in_app_purchase>
                    <product_id>com.myapp.PurchaseTest.Consumable2</product_id>
                    <reference_name>Consumable2</reference_name>
                    <type>consumable</type>
                    <products>
                        <product>
                            <cleared_for_sale>true</cleared_for_sale>
                            <intervals>
                                <!--The following <interval> element represents a snapshot of present and future pricing and availability information.
In other words, past data may not be reflected by this interval.-->
                                <interval>
                                    <start_date>2020-06-22</start_date>
                                    <wholesale_price_tier>2</wholesale_price_tier>
                                </interval>
                            </intervals>
                        </product>
                    </products>
                    <locales>
                        <locale name="en-US">
                            <title>Consumable2</title>
                            <description>Consumable2</description>
                        </locale>
                    </locales>
                    <read_only_info>
                        <read_only_value key="apple-id">435324234</read_only_value>
                        <read_only_value key="iap-status">Waiting for Screenshot</read_only_value>
                    </read_only_info>
                </in_app_purchase>
  ...
</package>

我希望能够编辑 com.myapp.PurchaseTest.Consumable2 的详细信息——例如定价或描述——并使用 iTMSTransporter 以自动方式上传这些更改。这可以使用 iTMSTransporter 吗?我还调查了 App Store Connect API,但没有看到支持该功能。有没有不同的或更好的方法来实现这一点?

标签: iosautomationin-app-purchaseitmstransporter

解决方案


Medium上有一篇文章:

https://medium.com/@tonyspin/uploading-ios-in-app-purchase-downloadable-content-727e0d2c0531

这很好地解释了这个过程。您用于lookupMetadata获取itmsp捆绑包。里面有metadata.xml.

一些附加说明:

我的流程如下:

下载包

/usr/local/itms/bin/iTMSTransporter -m lookupMetadata -u your_user -p your_appspecific_pw  -vendor_id your_verndor -itc_provider your_provider -destination .

然后将下载的包重命名,修改里面的metadata.xml:

  • <versions>完全删除

  • <products>完全删除

  • 将评论图像添加到目录中,例如review.png

  • 对于每个 IAP,添加元数据和图像数据以及注释:

       <in_app_purchase>
          …all the metadata…
          <review_screenshot>
              <size>724661</size>
              <file_name>review.png</file_name>
              <checksum type="md5">34c788f999e81349f9a05342c3ccf144</checksum>
          </review_screenshot>
          <review_notes>Additional discounts</review_notes>
      </in_app_purchase>
    

验证:

 /usr/local/itms/bin/iTMSTransporter -m verify -u your_user -p your_appspecific_pw  -vendor_id your_verndor -itc_provider your_provider -f your_modified_package.itmsp

最后上传

 /usr/local/itms/bin/iTMSTransporter -m upload -u your_user -p your_appspecific_pw  -vendor_id your_verndor -itc_provider your_provider -f your_modified_package.itmsp

这将覆盖您在 IAP 中已有的内容,所以要小心。上传的数据不会立即出现,但大约 30 分钟或更长时间后,请耐心等待。


推荐阅读