Я рассматриваю приложение Apple Apporter для автоматизации настройки подписок с автоматическим продлением, поскольку нам необходимо сделать то же самое на внутреннем портале вдоль AppStoreConnect.Пока я экспериментировал с примером приложения, я создал фиктивный профиль IAP в файле metadata.xml и загрузил его (режим Transporter upload
).
Ответ транспортера был успешной загрузкой, но AppStore Connect не отражает создаваемое автоматически обновляемое IAP.
Кроме того, при вызове режима status
приложения транспортера выводится нечто, называемое Import Error
,Не уверен, что это значит и как исправить или отладить дальше.
<upload_status apple_identifier="***"
vendor_identifier="com.demo.aaa.starter">
<content_status_info itunes_connect_status="">
<store_status not_on_store="N/A" on_store="N/A" ready_for_store="N/A"/>
<tickets/>
</content_status_info>
<upload_status_info created="2019-06-11 08:55:52" status="Import Error"/>
</upload_status>
</itunes_transporter>
Вот подробности того, как я использую транспортер:
- Приложение, которое я использую, представляет собой пример приложения, не публикуемого в App Store.Это в первую очередь для экспериментов с другими производственными приложениями.
- Я использую приложение-транспортер по умолчанию, установленное с Xcode на MacOS.
- Я использую metadata.xml только для настройки автоматического обновленияподписки и ничего больше.
Вот мой metadata.xml
файл:
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://apple.com/itunes/importer" version="software5.11">
<provider>DUMMYPROVIDER</provider>
<!--<team_id>A9B8C7D6E5</team_id>-->
<software>
<vendor_id>com.demo.aaa.starter</vendor_id>
<software_metadata>
<in_app_purchases>
<subscription_group name="AutoUploadTestSG">
<locales>
<locale name="en-US">
<title>Test Subscription Group</title>
<app_name>Test App</app_name>
</locale>
</locales>
<in_app_purchase>
<product_id>com.demo.aaa.starter.p1</product_id>
<reference_name>Product1</reference_name>
<type>auto-renewable</type>
<duration>1 Month</duration>
<cleared_for_sale>true</cleared_for_sale>
<rank>1</rank>
<prices>
<price>
<territory>US</territory>
<tier>5</tier>
</price>
<price>
<territory>GH</territory>
<tier>5</tier>
</price>
<price>
<territory>KH</territory>
<tier>5</tier>
</price>
<price>
<territory>ES</territory>
<tier>5</tier>
</price>
<!-- Additional territories here -->
</prices>
<!-- <products>
<product>
<cleared_for_sale>true</cleared_for_sale>
<wholesale_price_tier>3</wholesale_price_tier>
</product>
</products> -->
<locales>
<locale name="en-US">
<title>Product 1</title>
<description>This product provides access to product #1</description>
</locale>
</locales>
<review_screenshot>
<file_name>screenshot-01.png</file_name>
<size>107477</size>
<checksum type="md5">0cdbb1a31bd501f0425e0c30622a04da</checksum>
</review_screenshot>
<review_notes>Some notes for the reviewer.</review_notes>
</in_app_purchase>
<in_app_purchase>
<product_id>com.demo.aaa.starter.p2</product_id>
<reference_name>Product2</reference_name>
<type>auto-renewable</type>
<duration>3 Months</duration>
<cleared_for_sale>true</cleared_for_sale>
<rank>2</rank>
<prices>
<price>
<territory>US</territory>
<tier>5</tier>
</price>
<price>
<territory>GH</territory>
<tier>8</tier>
</price>
<price>
<territory>KH</territory>
<tier>8</tier>
</price>
<price>
<territory>ES</territory>
<tier>8</tier>
</price>
</prices>
<locales>
<locale name="en-US">
<title>Product 2</title>
<description>This product provides access to product #2</description>
</locale>
</locales>
<review_screenshot>
<file_name>screenshot-02.png</file_name>
<size>103040</size>
<checksum type="md5">2aded6313ed9e6ddeef9152d141027c8</checksum>
</review_screenshot>
<review_notes>Some notes for the reviewer.</review_notes>
</in_app_purchase>
</subscription_group>
</in_app_purchases>
</software_metadata>
</software>
</package>
PS: Фактический файл имеет конфигурации для всех 155 территорий.Я исключил большинство здесь для краткости.