Processed using automated tools for iOS test Flight distribution，It is a very pleasant thing，It can save you a lot of time，Reduce the amount of manual intervention - especially like this need to wait a long time to look at things that require manual operation，Although it does not make you feel tired，But a lot of time so wasted。
use fastlane A key to compile、Upload，And then wait for Apple server processing is complete，Automatic release test Flight，It would have been a great operation，However, due to changes in the network environment，My upload speed is getting slower and slower fastlane，Eventually slow network bandwidth to 100M，Only upload speed 10 KB/s。
Since fastlane actually use itmstransporter To upload，So if you experience upload related errors，You can try to reset this tool (of course,，In this case I will not be able to solve the problem)
mv .itmstransporter/ .old_itmstransporter/
The three transmission modes itmstransporter
Actually，itmstransporter are three modes of uploading，This is why when you use Xcode to manually upload app，There will be a step called "negotiation upload mode"。But apparently，This negotiation function is not so "smart"。
If you rely on automatic selection itmstransporter (the default is the case)，Then the fastest upload will be the first model to be used，But once this failure mode，itmstransporter will switch to the other alternatives(In fact, if you try，Perhaps still work)。
This mode is the slowest mode，In fact, it makes no difference and direct http upload (upload will be slower than some of the web)，If your network quality is poor，Higher delay，Then fell dav is not running。
but，A little，If you have a firewall in companies and other network environments，Dav upload it may be the only way not to be blocked - it does not require special port。
This is a SaaS accelerated transfer protocol，The official claimed that transmit faster than http 200%，Using this protocol you need a firewall to open TCP and UDP 44001 port，And UDP attack protection might have an impact signiant。
Aspera is extremely well-known in the industry，Many corporate networks、Cloud platforms are in use at home using Aspera fasp protocol to transfer data quickly，It has a stable high-speed transmission in most network conditions，"usually need 26 The other end hours a volume of document transfer 24GB to the world，The Aspera can do just 30 second"。
same，It also requires the firewall to open TCP and UDP 33001 port，And UDP attack protection might have an impact Aspera。
Our purpose is to make Aspera to upload when fastlane call itmstransporter，Avoid using two other protocols，If it is used directly itmstransporter ，You could set the parameters directly，But using fastlane how to do it?
At your upload_to_testflight previous row，write ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t Aspera" .，Such，To set environment variables，Let itmstransporter only use Aspera to upload，Should it fail，I will not be using other means to try，So when you upload，You will encounter：
The session's status is FAILED and the error description is 'failed to authenticate (19)'
but，If you wait，You will find the Upload and did not stop，Final，You will get：
Although errors occurred during execution of iTMSTransporter, it returned success status.
Other，Upload speed to return to the pinnacle。
If you do encounter situations Aspera blocked by a firewall and can not be uploaded，Aspera then changed to DAV。
correct：For fastlane it，-k parameter can not be used，It seems to be the default script already set this parameter，If you use，You'll get an error： The option: "-k" may only be specified once. Return status of iTunes Transporter was 1: The option: "-k" may only be specified once.
The default is，Aspera will not upload speed limit，That it will try to use your upload bandwidth，But this has a downside，That's when uploading cause network upstream bandwidth is fully occupied，other people、Other networking software can not。So give Aspera increase the bandwidth limit is a good choice (in addition，It was said that after the bandwidth speed limit but is slightly elevated)。 In short，in
"-t Aspera" Increase
-k Parameters，Followed by your desired bandwidth，The unit is bit per second，which is
-k 10000 It is the bandwidth of 10M，
-k 200000 Bandwidth is 200M，In particular the number of suitable，This requires you to actually test，This is also your router performance related。 such as，I want to set the bandwidth of 20M，Then the final code is this：
<del>ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t Aspera -k 20000"</del>
Another： -k This argument also applies to signiant mode，Units and rules are the same。