Использовать iTMSTransporter для обновления встроенных покупок?

Я проверил iTMSTransporter от Apple и нашел его. будет очень ценным инструментом для нашего конвейера 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? Я также исследовал API App Store Connect, но не нашел поддержки этой возможности. Есть ли другой или лучший способ сделать это?


person Shadowman    schedule 22.06.2020    source источник


Ответы (1)


На 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 минут или дольше наберитесь терпения.

person k1th    schedule 08.09.2020
comment
Спасибо за это. Мне пришлось оставить раздел «продукты» при загрузке новых IAP для приложения. - person guytz72; 15.12.2020