I am reviewing Apples transporter app to automate Auto Renewable subscriptions configuration as we need to do the same on an internal portal along side AppStoreConnect. While I was experimenting with a sample app, I created a dummy IAP profile in a metadata.xml file and uploaded it (Transporter upload
mode).
The transporter's response was successful upload, but the AppStore Connect does not reflect the auto-renewable IAP being created.
Also, calling the transporter app's status
mode outputs something called Import Error
. Not sure what does it mean and how to rectify or debug further.
<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>
Here are the details of how I am using the transporter:
Here is my metadata.xml
file:
<?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>
P.S: The actual file has configurations for all 155 territories. I have excluded most here for brevity.
There was a problem with the resolution of one of the images that were uploaded.
How did I get to know that? Well, I received an email from AppStoreConnect stating the reason.
On rectifying the error and uploading it again, I was able to create the IAP in AppStoreConnect.
The status now looks like this:
<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="Imported"/>
</upload_status>