ipa下载的方法

不通过app store发布ipa的要求:

1、ipa的下载地址放到plist的文件中,链接指定plist(plist格式见下文)

2、plist的链接要求一定是https的,而且必须是公网ssl,自签名及免费的https不可用。

3、链接格式要求一定是符合苹果规范的,itms-services://?action=download-manifest&url=https://*/.plist

plist格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://xxxxxxxxxxxxxxxxxxx/xxx.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://xxxxxxxxxxxxxxxxxx.png</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://xxxxxxxxxxxxxxxxxx.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.xxxx.demo</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>XXXX App download</string>
</dict>
</dict>
</array>
</dict>
</plist>

downloadTool

massivedl

Download a large list of files in parallel.

Usage

Create a .csv file with the downloads

1
2
3
4
5
filename,url
0.png,https://placehold.it/100x100
1.png,https://placehold.it/100x101
2.png,https://placehold.it/100x102
...

Assuming the file was named data.csv we can download the files using

1
massivedl -p 10 -i data.csv -s 1 -o downloads

Command line parameters

1
2
3
4
-p <int> (default=10)          : Maximum number of parallel requests
-s <int> (default=0) : Number of skipped lines from input csv
-i <str> : Input csv file with the list of urls
-o <str> (default='downloads') : Directory to place the downloads

Stop and continue later

You can stop and continue downloading later.
Press Ctrl+C then you will have the following dialog.

1
2
3
4
5
6
7
...
Do you want to save progress? [Y/n]: yes

Progress has been saved!
Use the following command to continue downloading

massivedl --load /path/to/savedfile.save

Use Cases

With this tool I was able to download about 1.5 million images (~60GB) for a machine learning project.