Unity packaging is not a particularly complex thing in general, but we know that any problem with cross-platform (multithreading, etc.) can always complicate things up.
Previous project packaging is through Jenkins on a project to the different platform multiple packaging, inevitably need to switch between different platforms, which is very time-consuming, then improved a way to create a separate folder for different platforms, separately from SVN synchronization, packaged separately. The main problem with this approach is that after the project is large, the overall footprint is too large, we use the Mac Pro is 500G, two projects at the same time, hard disk is more tight.
Recently I optimized a way for unity to convert the source resource files to the hardware of the corresponding platform for different platforms, which were set up in the meta file, and the specific results were stored in the library (why do you have to mention meta for several times? But the library doesn't need it? It is because Meta records our settings, pull down, the machine to transform itself, the library is also very large). Ps:unity itself also puts a variety of conversion tools in the installation file directory, it is easy to find.
Knowing this, we can separate the libraries of the different platforms, and each time we pack, we only need to create a soft link to the corresponding platform resource directory in the project directory, so that there is no need to save another copy for the individual platform. With this idea in mind, we can also periodically transform the resources of different platforms to improve the efficiency of later packages. After today's experiment, this kind of solution is feasible. As for unity's packaging process, it is another topic, follow the time to say it.
A way to speed up the packaging of Unity's different platforms