itunes_transporter_generator 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +199 -55
- data/example/config.yaml +69 -18
- data/example/test-h568-2@2x.png +0 -0
- data/example/test-h568@2x.png +0 -0
- data/example/test-ipad.png +0 -0
- data/example/test.png +0 -0
- data/example/test@2x.png +0 -0
- data/lib/itunes.rb +2 -2
- data/lib/itunes/transporter.rb +30 -10
- data/lib/itunes/transporter/commands/package.rb +2 -1
- data/lib/itunes/transporter/generator.rb +6 -4
- metadata +12 -85
- data/doc/Itunes.html +0 -198
- data/doc/Itunes/Transporter.html +0 -380
- data/doc/Itunes/Transporter/Achievement.html +0 -165
- data/doc/Itunes/Transporter/AchievementLocale.html +0 -165
- data/doc/Itunes/Transporter/Generator.html +0 -700
- data/doc/Itunes/Transporter/Helpers.html +0 -427
- data/doc/Itunes/Transporter/InAppPurchase.html +0 -165
- data/doc/Itunes/Transporter/Interval.html +0 -165
- data/doc/Itunes/Transporter/Leaderboard.html +0 -165
- data/doc/Itunes/Transporter/LeaderboardLocale.html +0 -165
- data/doc/Itunes/Transporter/Locale.html +0 -256
- data/doc/Itunes/Transporter/Product.html +0 -165
- data/doc/Itunes/Transporter/PurchaseLocale.html +0 -165
- data/doc/Object.html +0 -307
- data/doc/Rakefile.html +0 -112
- data/doc/bin/itmsp.html +0 -60
- data/doc/created.rid +0 -16
- data/doc/example/achievements_rb.html +0 -54
- data/doc/example/in_app_purchases_rb.html +0 -54
- data/doc/example/leaderboards_rb.html +0 -54
- data/doc/example/test_rb.html +0 -54
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +0 -110
- data/doc/js/darkfish.js +0 -116
- data/doc/js/jquery.js +0 -32
- data/doc/js/quicksearch.js +0 -114
- data/doc/js/thickbox-compressed.js +0 -10
- data/doc/lib/itunes/transporter/achievement_rb.html +0 -52
- data/doc/lib/itunes/transporter/commands/package_rb.html +0 -54
- data/doc/lib/itunes/transporter/commands_rb.html +0 -56
- data/doc/lib/itunes/transporter/generator_rb.html +0 -58
- data/doc/lib/itunes/transporter/helpers_rb.html +0 -60
- data/doc/lib/itunes/transporter/in_app_purchase_rb.html +0 -52
- data/doc/lib/itunes/transporter/leaderboard_rb.html +0 -54
- data/doc/lib/itunes/transporter/locale_rb.html +0 -52
- data/doc/lib/itunes_rb.html +0 -52
- data/doc/rdoc.css +0 -763
- data/example/config copy.yaml +0 -75
- data/example/metadata.xml +0 -227
- data/example/sample sku.itmsp/achievement_first_achievement_test.jpg +0 -0
- data/example/sample sku.itmsp/en-US_1_iOS-3.5-in_test.jpg +0 -0
- data/example/sample sku.itmsp/en-US_1_iOS-4-in_test.jpg +0 -0
- data/example/sample sku.itmsp/en-US_1_iOS-iPad_test.jpg +0 -0
- data/example/sample sku.itmsp/iap_Sample_Product_Group_test.jpg +0 -0
- data/example/sample sku.itmsp/iap_another_level_test.jpg +0 -0
- data/example/sample sku.itmsp/iap_new_level_test.jpg +0 -0
- data/example/sample sku.itmsp/iap_one_hundred_dollars_test.jpg +0 -0
- data/example/sample sku.itmsp/leaderboard_top_scores_en_test.jpg +0 -0
- data/example/sample sku.itmsp/metadata.xml +0 -227
- data/example/test.jpg +0 -0
- data/itunes_transporter_generator.sublime-project +0 -8
- data/itunes_transporter_generator.sublime-workspace +0 -407
- data/metadata.xml +0 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9506c1671c5b2bc24941d82e2fb87690df8f3e43
|
4
|
+
data.tar.gz: f61fb7019a6825baf081bf7474b4b6bc454a7c75
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 007f7e3b81fe0d08205bf23a02c4ac060ecb57eeda54835268482bec69656a55b34638d3e4a985135dd397a31315cb6e52376a1ab579bf1a228b7f7e67271e5f
|
7
|
+
data.tar.gz: 88803d1830f5dc03e5244d2c134398259e8d623297bcf8efc87ac15839deb548f89dd68450f2aecfaeb14ee13d87f1ed418f55d1d86d6c8f505f43d952f6f194
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# itunes_transporter_generator [![Gem Version](https://badge.fury.io/rb/itunes_transporter_generator.png)](http://badge.fury.io/rb/itunes_transporter_generator)
|
2
2
|
**CLI for generating and packaging app store assets for Game Center and In-App Purchases**
|
3
3
|
|
4
|
-
Apple recently released their Transporter app (http://bit.ly/UcEhAh) which is a handy way to manage your App Store Packages (.itmsp) instead of having to input achievements, leaderboards, and in-app purchases through iTunes Connect. Unfortunately, there isn't an easy way to generate these packages. Why write XML by hand and deal with the hassle of calculating MD5 and file sizes? Why not define your Game Center and In-App Purchases in a simple format and have your App Store Package generated for you?
|
4
|
+
Apple recently released their Transporter app (http://bit.ly/UcEhAh) which is a handy way to manage your App Store Packages (.itmsp) instead of having to input version information, achievements, leaderboards, and in-app purchases through iTunes Connect. Unfortunately, there isn't an easy way to generate these packages. Why write XML by hand and deal with the hassle of calculating MD5 and file sizes? Why not define your Game Center and In-App Purchases in a simple format and have your App Store Package generated for you?
|
5
5
|
|
6
6
|
## Installation
|
7
7
|
```sh
|
@@ -14,27 +14,31 @@ $ gem install itunes_transporter_generator
|
|
14
14
|
First, you'll need to be familiar with the app metadata specification, available from the bottom navigation in the Manage Your Applications section of iTunes Connect, which outlines all the possible information describing an achievement, leaderboard, or in-app purchase.
|
15
15
|
|
16
16
|
### Describe your application metadata
|
17
|
-
Next, you'll need to create a YAML file describing your company information and achievement, leaderboard, and/or in-app purchase details. The beauty of describing your app store assets in YAML is no hand writing XML making it understandable at a glance, and you can store your configuration in source control.
|
17
|
+
Next, you'll need to create a YAML file describing your company information, locale-specific version information, and achievement, leaderboard, and/or in-app purchase details. The beauty of describing your app store assets in YAML is no hand writing XML making it understandable at a glance, and you can store your configuration in source control.
|
18
18
|
|
19
19
|
### Generate the .itmsp
|
20
20
|
This is as simple as running the following command in the folder containing your YAML config file and all referenced images.
|
21
21
|
|
22
22
|
```sh
|
23
|
-
$ itmsp package -i <configuration file>
|
23
|
+
$ itmsp package -i <configuration file> --[no-]prefix-images
|
24
24
|
```
|
25
25
|
|
26
|
+
#### Options
|
27
|
+
- ```-i / --input``` Required. Specified the config YAML used to generate the itmsp package
|
28
|
+
- ```--[no-]prefix-images``` Options. False, if not specified. If true, all images specified will be prefixed with the locale, display target, and type (achievement, IAP, leaderboard) as appropriate
|
29
|
+
|
26
30
|
### That's It!
|
27
31
|
You can now upload your .itmsp package to iTunes Connect using the Transporter tool. Alternatively, there is another great open-source tool which wraps some of the complexities of running Transporter directly (https://github.com/sshaw/itunes_store_transporter)
|
28
32
|
|
29
33
|
## Sample Config file
|
30
|
-
Below is a sample configuration file describing an achievement, leaderboard, and in-app
|
34
|
+
Below is a sample configuration file describing an app version for the en-US and fi locale, achievement, leaderboard, and different types of in-app purchases. The specific metadata required for each item type is fully described in the [App Metadata Specification guide](http://bit.ly/TtHMF6)
|
31
35
|
|
32
36
|
IMPORTANT: please note the syntax for multiline descriptions with extra line breaks. This is the literal syntax for [YAML used for multiline strings](http://www.yaml.org/YAML_for_ruby.html#extra_trailing_newlines_with_spaces). Also note the indentation.
|
33
37
|
|
34
38
|
```yaml
|
35
39
|
provider: SampleCompany # optional if team_id is supplied
|
36
40
|
team_id: ABCDE12345 # optional if provider is supplied
|
37
|
-
vendor_id: sample
|
41
|
+
vendor_id: sample-sku # the application's SKU as defined in iTunes Connect
|
38
42
|
id_prefix: com.samplecompany.applicationname. # if supplied, this will be prefixed to achievement, leaderboard, and in-app purchase IDs
|
39
43
|
versions:
|
40
44
|
- name: 1.1.3.1
|
@@ -52,17 +56,43 @@ versions:
|
|
52
56
|
Version Whats New. extra
|
53
57
|
line
|
54
58
|
breaks
|
55
|
-
|
59
|
+
|
60
|
+
software_url: 'http://example.com'
|
61
|
+
privacy_url: 'http://example.com'
|
62
|
+
support_url: 'http://example.com'
|
63
|
+
screenshots:
|
64
|
+
iphone_4in:
|
65
|
+
- 'test-h568@2x.png'
|
66
|
+
- 'test-h568-2@2x.png'
|
67
|
+
iphone_3.5in:
|
68
|
+
- 'test.png'
|
69
|
+
ipad:
|
70
|
+
- 'test-ipad.png'
|
71
|
+
- name: fi
|
72
|
+
title: sampleApp-FI
|
73
|
+
description: |+
|
74
|
+
Description of sampleApp. This description
|
75
|
+
spans multiple lines using the pipe
|
76
|
+
characters. All newlines are preserved.-FI
|
77
|
+
keywords:
|
78
|
+
- Sample-FI
|
79
|
+
- App-FI
|
80
|
+
version_whats_new: |+
|
81
|
+
Version Whats New. extra
|
82
|
+
line
|
83
|
+
breaks
|
84
|
+
|
56
85
|
software_url: 'http://example.com'
|
57
86
|
privacy_url: 'http://example.com'
|
58
87
|
support_url: 'http://example.com'
|
59
88
|
screenshots:
|
60
89
|
iphone_4in:
|
61
|
-
- 'test.
|
90
|
+
- 'test-h568@2x.png'
|
91
|
+
- 'test-h568-2@2x.png'
|
62
92
|
iphone_3.5in:
|
63
|
-
- 'test.
|
93
|
+
- 'test.png'
|
64
94
|
ipad:
|
65
|
-
- 'test.
|
95
|
+
- 'test-ipad.png'
|
66
96
|
achievements: # the order in which achievements are defined will be the order in which they appear in Game Center
|
67
97
|
- id: first_achievement
|
68
98
|
name: First Achievement
|
@@ -72,10 +102,15 @@ achievements: # the order in which achievements are defined will be the order in
|
|
72
102
|
title: First Achievement
|
73
103
|
before_earned_description: Complete a task
|
74
104
|
after_earned_description: Completed a task
|
75
|
-
achievement_after_earned_image: test.
|
105
|
+
achievement_after_earned_image: test.png
|
106
|
+
- name: fi
|
107
|
+
title: First Achievement-FI
|
108
|
+
before_earned_description: Complete a task-FI
|
109
|
+
after_earned_description: Completed a task-FI
|
110
|
+
achievement_after_earned_image: test.png
|
76
111
|
|
77
112
|
leaderboards: # the order in which leaderboards are defined will be the order in which they appear in Game Center
|
78
|
-
- default: true # only one leaderboard can be set as default.
|
113
|
+
- default: true # only one leaderboard can be set as default.
|
79
114
|
id: top_scores
|
80
115
|
name: Top Scores
|
81
116
|
locales:
|
@@ -84,13 +119,20 @@ leaderboards: # the order in which leaderboards are defined will be the order in
|
|
84
119
|
formatter_suffix: ' Points' # note the space. This must be provided if you want a space between the value and suffix
|
85
120
|
formatter_suffix_singular: ' Point'
|
86
121
|
formatter_type: INTEGER_COMMA_SEPARATOR
|
87
|
-
leaderboard_image: test.
|
122
|
+
leaderboard_image: test.png
|
123
|
+
- name: fi
|
124
|
+
title: Top Scores-FI
|
125
|
+
formatter_suffix: ' Points' # note the space. This must be provided if you want a space between the value and suffix
|
126
|
+
formatter_suffix_singular: ' Point'
|
127
|
+
formatter_type: INTEGER_COMMA_SEPARATOR
|
128
|
+
leaderboard_image: test.png
|
88
129
|
|
89
130
|
purchases:
|
90
131
|
auto_renewable_purchases:
|
91
132
|
family:
|
92
133
|
name: Sample Product Group
|
93
|
-
review_screenshot_image: test.
|
134
|
+
review_screenshot_image: test.png
|
135
|
+
review_notes: 'Review notes!'
|
94
136
|
purchases:
|
95
137
|
- product_id: six_month_subscription
|
96
138
|
type: auto-renewable # products in a family group must be of auto-renewable type and be the same product but with different durations
|
@@ -110,57 +152,71 @@ purchases:
|
|
110
152
|
title: Sample Product Group
|
111
153
|
description: All your products in this sample group
|
112
154
|
publication_name: Sample Product Group
|
155
|
+
- name: fi
|
156
|
+
title: Sample Product Group-FI
|
157
|
+
description: All your products in this sample group-FI
|
158
|
+
publication_name: Sample Product Group-FI
|
113
159
|
other_purchases:
|
114
160
|
- product_id: one_hundred_dollars
|
115
161
|
reference_name: 100 dollars
|
116
162
|
type: consumable
|
117
|
-
review_screenshot_image: test.
|
163
|
+
review_screenshot_image: test.png
|
118
164
|
cleared_for_sale: true
|
119
|
-
wholesale_price_tier: 1 # pricing tier matrix is available in Exhibit C of the iOS Paid Applications contract in the Contracts, Tax, and Banking section of iTunes Connect
|
165
|
+
wholesale_price_tier: 1 # pricing tier matrix is available in Exhibit C of the iOS Paid Applications contract in the Contracts, Tax, and Banking section of iTunes Connect
|
120
166
|
locales:
|
121
167
|
- name: en
|
122
168
|
title: $100
|
123
169
|
description: An extra $100 for you
|
170
|
+
- name: fi
|
171
|
+
title: $100-FI
|
172
|
+
description: An extra $100 for you-FI
|
124
173
|
- product_id: new_level
|
125
174
|
reference_name: Unlocks a new level
|
126
175
|
type: non-consumable
|
127
|
-
review_screenshot_image: test.
|
176
|
+
review_screenshot_image: test.png
|
128
177
|
cleared_for_sale: true
|
129
178
|
intervals:
|
130
179
|
- start_date: 2013-01-31
|
131
180
|
end_date: 2013-02-28
|
132
181
|
wholesale_price_tier: 3
|
133
|
-
- start_date: 2013-03-01
|
134
|
-
|
135
|
-
wholesale_price_tier: 3
|
182
|
+
- start_date: 2013-03-01 # no end date specified. The price will not change after this point.
|
183
|
+
wholesale_price_tier: 2
|
136
184
|
locales:
|
137
185
|
- name: en
|
138
186
|
title: Unlocks a new level
|
139
187
|
description: Try your luck at this new level
|
188
|
+
- name: fi
|
189
|
+
title: Unlocks a new level-FI
|
190
|
+
description: Try your luck at this new level-FI
|
140
191
|
- product_id: another_level
|
141
192
|
reference_name: Unlocks another new level
|
142
193
|
type: non-consumable
|
143
|
-
review_screenshot_image: test.
|
194
|
+
review_screenshot_image: test.png
|
144
195
|
cleared_for_sale: true
|
145
196
|
intervals:
|
146
|
-
-
|
197
|
+
- start_date: 2013-08-01
|
198
|
+
end_date: 2013-08-13
|
147
199
|
wholesale_price_tier: 3
|
148
200
|
- start_date: 2013-08-14
|
149
|
-
wholesale_price_tier:
|
201
|
+
wholesale_price_tier: 2
|
150
202
|
locales:
|
151
203
|
- name: en
|
152
204
|
title: Unlocks a new level
|
153
205
|
description: Try your luck at this new level
|
206
|
+
- name: fi
|
207
|
+
title: Unlocks a new level-FI
|
208
|
+
description: Try your luck at this new level-FI
|
209
|
+
|
154
210
|
```
|
155
211
|
|
156
|
-
This configuration will generate the following metadata.xml
|
212
|
+
This configuration will generate the following metadata.xml if run with the --no-prefix-images option.
|
157
213
|
```xml
|
158
214
|
<?xml version="1.0" encoding="UTF-8"?>
|
159
215
|
<package xmlns="http://apple.com/itunes/importer" version="software5.1">
|
160
216
|
<provider>SampleCompany</provider>
|
161
217
|
<team_id>ABCDE12345</team_id>
|
162
218
|
<software>
|
163
|
-
<vendor_id>sample
|
219
|
+
<vendor_id>sample-sku</vendor_id>
|
164
220
|
<software_metadata>
|
165
221
|
<versions>
|
166
222
|
<version string="1.1.3.1">
|
@@ -189,19 +245,69 @@ breaks
|
|
189
245
|
<support_url>http://example.com</support_url>
|
190
246
|
<software_screenshots>
|
191
247
|
<software_screenshot display_target="iOS-4-in" position="1">
|
192
|
-
<file_name>
|
193
|
-
<size>
|
194
|
-
<checksum type="md5">
|
248
|
+
<file_name>test-h568@2x.png</file_name>
|
249
|
+
<size>15580</size>
|
250
|
+
<checksum type="md5">87c19e9afd9bb2f0deee5d08233c7473</checksum>
|
251
|
+
</software_screenshot>
|
252
|
+
<software_screenshot display_target="iOS-4-in" position="2">
|
253
|
+
<file_name>test-h568-2@2x.png</file_name>
|
254
|
+
<size>17003</size>
|
255
|
+
<checksum type="md5">3d3cd97260a3d61c0384127979253c5a</checksum>
|
195
256
|
</software_screenshot>
|
196
257
|
<software_screenshot display_target="iOS-3.5-in" position="1">
|
197
|
-
<file_name>
|
198
|
-
<size>
|
199
|
-
<checksum type="md5">
|
258
|
+
<file_name>test.png</file_name>
|
259
|
+
<size>147834</size>
|
260
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
200
261
|
</software_screenshot>
|
201
262
|
<software_screenshot display_target="iOS-iPad" position="1">
|
202
|
-
<file_name>
|
203
|
-
<size>
|
204
|
-
<checksum type="md5">
|
263
|
+
<file_name>test-ipad.png</file_name>
|
264
|
+
<size>49743</size>
|
265
|
+
<checksum type="md5">88755b5603befa4d7ce81dea5d9bc035</checksum>
|
266
|
+
</software_screenshot>
|
267
|
+
</software_screenshots>
|
268
|
+
</locale>
|
269
|
+
<locale name="fi">
|
270
|
+
<title>sampleApp-FI</title>
|
271
|
+
<description>
|
272
|
+
<![CDATA[Description of sampleApp. This description
|
273
|
+
spans multiple lines using the pipe
|
274
|
+
characters. All newlines are preserved.-FI
|
275
|
+
]]>
|
276
|
+
</description>
|
277
|
+
<keywords>
|
278
|
+
<keyword>Sample-FI</keyword>
|
279
|
+
<keyword>App-FI</keyword>
|
280
|
+
</keywords>
|
281
|
+
<version_whats_new>
|
282
|
+
<![CDATA[Version Whats New. extra
|
283
|
+
line
|
284
|
+
breaks
|
285
|
+
|
286
|
+
]]>
|
287
|
+
</version_whats_new>
|
288
|
+
<software_url>http://example.com</software_url>
|
289
|
+
<privacy_url>http://example.com</privacy_url>
|
290
|
+
<support_url>http://example.com</support_url>
|
291
|
+
<software_screenshots>
|
292
|
+
<software_screenshot display_target="iOS-4-in" position="1">
|
293
|
+
<file_name>test-h568@2x.png</file_name>
|
294
|
+
<size>15580</size>
|
295
|
+
<checksum type="md5">87c19e9afd9bb2f0deee5d08233c7473</checksum>
|
296
|
+
</software_screenshot>
|
297
|
+
<software_screenshot display_target="iOS-4-in" position="2">
|
298
|
+
<file_name>test-h568-2@2x.png</file_name>
|
299
|
+
<size>17003</size>
|
300
|
+
<checksum type="md5">3d3cd97260a3d61c0384127979253c5a</checksum>
|
301
|
+
</software_screenshot>
|
302
|
+
<software_screenshot display_target="iOS-3.5-in" position="1">
|
303
|
+
<file_name>test.png</file_name>
|
304
|
+
<size>147834</size>
|
305
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
306
|
+
</software_screenshot>
|
307
|
+
<software_screenshot display_target="iOS-iPad" position="1">
|
308
|
+
<file_name>test-ipad.png</file_name>
|
309
|
+
<size>49743</size>
|
310
|
+
<checksum type="md5">88755b5603befa4d7ce81dea5d9bc035</checksum>
|
205
311
|
</software_screenshot>
|
206
312
|
</software_screenshots>
|
207
313
|
</locale>
|
@@ -222,9 +328,19 @@ breaks
|
|
222
328
|
<before_earned_description>Complete a task</before_earned_description>
|
223
329
|
<after_earned_description>Completed a task</after_earned_description>
|
224
330
|
<achievement_after_earned_image>
|
225
|
-
<file_name>
|
226
|
-
<size>
|
227
|
-
<checksum type="md5">
|
331
|
+
<file_name>test.png</file_name>
|
332
|
+
<size>147834</size>
|
333
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
334
|
+
</achievement_after_earned_image>
|
335
|
+
</locale>
|
336
|
+
<locale name="fi">
|
337
|
+
<title>First Achievement-FI</title>
|
338
|
+
<before_earned_description>Complete a task-FI</before_earned_description>
|
339
|
+
<after_earned_description>Completed a task-FI</after_earned_description>
|
340
|
+
<achievement_after_earned_image>
|
341
|
+
<file_name>test.png</file_name>
|
342
|
+
<size>147834</size>
|
343
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
228
344
|
</achievement_after_earned_image>
|
229
345
|
</locale>
|
230
346
|
</locales>
|
@@ -242,9 +358,20 @@ breaks
|
|
242
358
|
<formatter_suffix_singular> Point</formatter_suffix_singular>
|
243
359
|
<formatter_type>INTEGER_COMMA_SEPARATOR</formatter_type>
|
244
360
|
<leaderboard_image>
|
245
|
-
<file_name>
|
246
|
-
<size>
|
247
|
-
<checksum type="md5">
|
361
|
+
<file_name>test.png</file_name>
|
362
|
+
<size>147834</size>
|
363
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
364
|
+
</leaderboard_image>
|
365
|
+
</locale>
|
366
|
+
<locale name="fi">
|
367
|
+
<title>Top Scores-FI</title>
|
368
|
+
<formatter_suffix> Points</formatter_suffix>
|
369
|
+
<formatter_suffix_singular> Point</formatter_suffix_singular>
|
370
|
+
<formatter_type>INTEGER_COMMA_SEPARATOR</formatter_type>
|
371
|
+
<leaderboard_image>
|
372
|
+
<file_name>test.png</file_name>
|
373
|
+
<size>147834</size>
|
374
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
248
375
|
</leaderboard_image>
|
249
376
|
</locale>
|
250
377
|
</locales>
|
@@ -259,13 +386,18 @@ breaks
|
|
259
386
|
<description>All your products in this sample group</description>
|
260
387
|
<publication_name>Sample Product Group</publication_name>
|
261
388
|
</locale>
|
389
|
+
<locale name="fi">
|
390
|
+
<title>Sample Product Group-FI</title>
|
391
|
+
<description>All your products in this sample group-FI</description>
|
392
|
+
<publication_name>Sample Product Group-FI</publication_name>
|
393
|
+
</locale>
|
262
394
|
</locales>
|
263
395
|
<review_screenshot>
|
264
|
-
<file_name>
|
265
|
-
<size>
|
266
|
-
<checksum type="md5">
|
396
|
+
<file_name>test.png</file_name>
|
397
|
+
<size>147834</size>
|
398
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
267
399
|
</review_screenshot>
|
268
|
-
<review_notes
|
400
|
+
<review_notes>Review notes!</review_notes>
|
269
401
|
<in_app_purchase>
|
270
402
|
<product_id>com.samplecompany.applicationname.six_month_subscription</product_id>
|
271
403
|
<duration>6 Months</duration>
|
@@ -307,11 +439,15 @@ breaks
|
|
307
439
|
<title>$100</title>
|
308
440
|
<description>An extra $100 for you</description>
|
309
441
|
</locale>
|
442
|
+
<locale name="fi">
|
443
|
+
<title>$100-FI</title>
|
444
|
+
<description>An extra $100 for you-FI</description>
|
445
|
+
</locale>
|
310
446
|
</locales>
|
311
447
|
<review_screenshot>
|
312
|
-
<file_name>
|
313
|
-
<size>
|
314
|
-
<checksum type="md5">
|
448
|
+
<file_name>test.png</file_name>
|
449
|
+
<size>147834</size>
|
450
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
315
451
|
</review_screenshot>
|
316
452
|
</in_app_purchase>
|
317
453
|
<in_app_purchase>
|
@@ -329,8 +465,7 @@ breaks
|
|
329
465
|
</interval>
|
330
466
|
<interval>
|
331
467
|
<start_date>2013-03-01</start_date>
|
332
|
-
<
|
333
|
-
<wholesale_price_tier>3</wholesale_price_tier>
|
468
|
+
<wholesale_price_tier>2</wholesale_price_tier>
|
334
469
|
</interval>
|
335
470
|
</intervals>
|
336
471
|
</product>
|
@@ -340,11 +475,15 @@ breaks
|
|
340
475
|
<title>Unlocks a new level</title>
|
341
476
|
<description>Try your luck at this new level</description>
|
342
477
|
</locale>
|
478
|
+
<locale name="fi">
|
479
|
+
<title>Unlocks a new level-FI</title>
|
480
|
+
<description>Try your luck at this new level-FI</description>
|
481
|
+
</locale>
|
343
482
|
</locales>
|
344
483
|
<review_screenshot>
|
345
|
-
<file_name>
|
346
|
-
<size>
|
347
|
-
<checksum type="md5">
|
484
|
+
<file_name>test.png</file_name>
|
485
|
+
<size>147834</size>
|
486
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
348
487
|
</review_screenshot>
|
349
488
|
</in_app_purchase>
|
350
489
|
<in_app_purchase>
|
@@ -356,12 +495,13 @@ breaks
|
|
356
495
|
<cleared_for_sale>true</cleared_for_sale>
|
357
496
|
<intervals>
|
358
497
|
<interval>
|
498
|
+
<start_date>2013-08-01</start_date>
|
359
499
|
<end_date>2013-08-13</end_date>
|
360
500
|
<wholesale_price_tier>3</wholesale_price_tier>
|
361
501
|
</interval>
|
362
502
|
<interval>
|
363
503
|
<start_date>2013-08-14</start_date>
|
364
|
-
<wholesale_price_tier>
|
504
|
+
<wholesale_price_tier>2</wholesale_price_tier>
|
365
505
|
</interval>
|
366
506
|
</intervals>
|
367
507
|
</product>
|
@@ -371,11 +511,15 @@ breaks
|
|
371
511
|
<title>Unlocks a new level</title>
|
372
512
|
<description>Try your luck at this new level</description>
|
373
513
|
</locale>
|
514
|
+
<locale name="fi">
|
515
|
+
<title>Unlocks a new level-FI</title>
|
516
|
+
<description>Try your luck at this new level-FI</description>
|
517
|
+
</locale>
|
374
518
|
</locales>
|
375
519
|
<review_screenshot>
|
376
|
-
<file_name>
|
377
|
-
<size>
|
378
|
-
<checksum type="md5">
|
520
|
+
<file_name>test.png</file_name>
|
521
|
+
<size>147834</size>
|
522
|
+
<checksum type="md5">5db692abb9ae13bbb621cba672319ad9</checksum>
|
379
523
|
</review_screenshot>
|
380
524
|
</in_app_purchase>
|
381
525
|
</in_app_purchases>
|
data/example/config.yaml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
provider: SampleCompany # optional if team_id is supplied
|
2
2
|
team_id: ABCDE12345 # optional if provider is supplied
|
3
|
-
vendor_id: sample
|
3
|
+
vendor_id: sample-sku # the application's SKU as defined in iTunes Connect
|
4
4
|
id_prefix: com.samplecompany.applicationname. # if supplied, this will be prefixed to achievement, leaderboard, and in-app purchase IDs
|
5
5
|
versions:
|
6
6
|
- name: 1.1.3.1
|
@@ -18,17 +18,43 @@ versions:
|
|
18
18
|
Version Whats New. extra
|
19
19
|
line
|
20
20
|
breaks
|
21
|
-
|
21
|
+
|
22
|
+
software_url: 'http://example.com'
|
23
|
+
privacy_url: 'http://example.com'
|
24
|
+
support_url: 'http://example.com'
|
25
|
+
screenshots:
|
26
|
+
iphone_4in:
|
27
|
+
- 'test-h568@2x.png'
|
28
|
+
- 'test-h568-2@2x.png'
|
29
|
+
iphone_3.5in:
|
30
|
+
- 'test.png'
|
31
|
+
ipad:
|
32
|
+
- 'test-ipad.png'
|
33
|
+
- name: fi
|
34
|
+
title: sampleApp-FI
|
35
|
+
description: |+
|
36
|
+
Description of sampleApp. This description
|
37
|
+
spans multiple lines using the pipe
|
38
|
+
characters. All newlines are preserved.-FI
|
39
|
+
keywords:
|
40
|
+
- Sample-FI
|
41
|
+
- App-FI
|
42
|
+
version_whats_new: |+
|
43
|
+
Version Whats New. extra
|
44
|
+
line
|
45
|
+
breaks
|
46
|
+
|
22
47
|
software_url: 'http://example.com'
|
23
48
|
privacy_url: 'http://example.com'
|
24
49
|
support_url: 'http://example.com'
|
25
50
|
screenshots:
|
26
51
|
iphone_4in:
|
27
|
-
- 'test.
|
52
|
+
- 'test-h568@2x.png'
|
53
|
+
- 'test-h568-2@2x.png'
|
28
54
|
iphone_3.5in:
|
29
|
-
- 'test.
|
55
|
+
- 'test.png'
|
30
56
|
ipad:
|
31
|
-
- 'test.
|
57
|
+
- 'test-ipad.png'
|
32
58
|
achievements: # the order in which achievements are defined will be the order in which they appear in Game Center
|
33
59
|
- id: first_achievement
|
34
60
|
name: First Achievement
|
@@ -38,10 +64,15 @@ achievements: # the order in which achievements are defined will be the order in
|
|
38
64
|
title: First Achievement
|
39
65
|
before_earned_description: Complete a task
|
40
66
|
after_earned_description: Completed a task
|
41
|
-
achievement_after_earned_image: test.
|
67
|
+
achievement_after_earned_image: test.png
|
68
|
+
- name: fi
|
69
|
+
title: First Achievement-FI
|
70
|
+
before_earned_description: Complete a task-FI
|
71
|
+
after_earned_description: Completed a task-FI
|
72
|
+
achievement_after_earned_image: test.png
|
42
73
|
|
43
74
|
leaderboards: # the order in which leaderboards are defined will be the order in which they appear in Game Center
|
44
|
-
- default: true # only one leaderboard can be set as default.
|
75
|
+
- default: true # only one leaderboard can be set as default.
|
45
76
|
id: top_scores
|
46
77
|
name: Top Scores
|
47
78
|
locales:
|
@@ -50,13 +81,20 @@ leaderboards: # the order in which leaderboards are defined will be the order in
|
|
50
81
|
formatter_suffix: ' Points' # note the space. This must be provided if you want a space between the value and suffix
|
51
82
|
formatter_suffix_singular: ' Point'
|
52
83
|
formatter_type: INTEGER_COMMA_SEPARATOR
|
53
|
-
leaderboard_image: test.
|
84
|
+
leaderboard_image: test.png
|
85
|
+
- name: fi
|
86
|
+
title: Top Scores-FI
|
87
|
+
formatter_suffix: ' Points' # note the space. This must be provided if you want a space between the value and suffix
|
88
|
+
formatter_suffix_singular: ' Point'
|
89
|
+
formatter_type: INTEGER_COMMA_SEPARATOR
|
90
|
+
leaderboard_image: test.png
|
54
91
|
|
55
92
|
purchases:
|
56
93
|
auto_renewable_purchases:
|
57
94
|
family:
|
58
95
|
name: Sample Product Group
|
59
|
-
review_screenshot_image: test.
|
96
|
+
review_screenshot_image: test.png
|
97
|
+
review_notes: 'Review notes!'
|
60
98
|
purchases:
|
61
99
|
- product_id: six_month_subscription
|
62
100
|
type: auto-renewable # products in a family group must be of auto-renewable type and be the same product but with different durations
|
@@ -76,44 +114,57 @@ purchases:
|
|
76
114
|
title: Sample Product Group
|
77
115
|
description: All your products in this sample group
|
78
116
|
publication_name: Sample Product Group
|
117
|
+
- name: fi
|
118
|
+
title: Sample Product Group-FI
|
119
|
+
description: All your products in this sample group-FI
|
120
|
+
publication_name: Sample Product Group-FI
|
79
121
|
other_purchases:
|
80
122
|
- product_id: one_hundred_dollars
|
81
123
|
reference_name: 100 dollars
|
82
124
|
type: consumable
|
83
|
-
review_screenshot_image: test.
|
125
|
+
review_screenshot_image: test.png
|
84
126
|
cleared_for_sale: true
|
85
|
-
wholesale_price_tier: 1 # pricing tier matrix is available in Exhibit C of the iOS Paid Applications contract in the Contracts, Tax, and Banking section of iTunes Connect
|
127
|
+
wholesale_price_tier: 1 # pricing tier matrix is available in Exhibit C of the iOS Paid Applications contract in the Contracts, Tax, and Banking section of iTunes Connect
|
86
128
|
locales:
|
87
129
|
- name: en
|
88
130
|
title: $100
|
89
131
|
description: An extra $100 for you
|
132
|
+
- name: fi
|
133
|
+
title: $100-FI
|
134
|
+
description: An extra $100 for you-FI
|
90
135
|
- product_id: new_level
|
91
136
|
reference_name: Unlocks a new level
|
92
137
|
type: non-consumable
|
93
|
-
review_screenshot_image: test.
|
138
|
+
review_screenshot_image: test.png
|
94
139
|
cleared_for_sale: true
|
95
140
|
intervals:
|
96
141
|
- start_date: 2013-01-31
|
97
142
|
end_date: 2013-02-28
|
98
143
|
wholesale_price_tier: 3
|
99
|
-
- start_date: 2013-03-01
|
100
|
-
|
101
|
-
wholesale_price_tier: 3
|
144
|
+
- start_date: 2013-03-01 # no end date specified. The price will not change after this point.
|
145
|
+
wholesale_price_tier: 2
|
102
146
|
locales:
|
103
147
|
- name: en
|
104
148
|
title: Unlocks a new level
|
105
149
|
description: Try your luck at this new level
|
150
|
+
- name: fi
|
151
|
+
title: Unlocks a new level-FI
|
152
|
+
description: Try your luck at this new level-FI
|
106
153
|
- product_id: another_level
|
107
154
|
reference_name: Unlocks another new level
|
108
155
|
type: non-consumable
|
109
|
-
review_screenshot_image: test.
|
156
|
+
review_screenshot_image: test.png
|
110
157
|
cleared_for_sale: true
|
111
158
|
intervals:
|
112
|
-
-
|
159
|
+
- start_date: 2013-08-01
|
160
|
+
end_date: 2013-08-13
|
113
161
|
wholesale_price_tier: 3
|
114
162
|
- start_date: 2013-08-14
|
115
|
-
wholesale_price_tier:
|
163
|
+
wholesale_price_tier: 2
|
116
164
|
locales:
|
117
165
|
- name: en
|
118
166
|
title: Unlocks a new level
|
119
167
|
description: Try your luck at this new level
|
168
|
+
- name: fi
|
169
|
+
title: Unlocks a new level-FI
|
170
|
+
description: Try your luck at this new level-FI
|