I’m building AssetBundles into my iOS and Android binaries utilizing the StreamingAssets workflow. When I do this, I use a Jenkins build on one of my build servers. The server is either a Mac for iOS, or a PC for Android.
Unfortunately, even with zero changes to our assets, the AssetFileHash seems to be different if we build our AssetBundles on our PC build server vs our Mac build server. This is causing issues where our game thinks new assets have been uploaded, and re-downloads them even though nothing has actually changed. In the short term, I can ensure our iOS assets are getting built on the Mac server and our Android assets are getting built on the PC server, but it’s concerning to me to not know how Unity calculates this hash.
Is there a way I can reliably calculate the hash myself (e.g., doing an MD5 of the directory and its contents) to see if it’s different between OSes or if something else is going on?
Edit: I just switched the AssetBundle build to our Mac build server and the AssetFileHash of the generated manifests match up with the previous iOS player build, so it does seem as though the hash calculation is somehow different between Mac and PC versions of Unity. We’re using 2017.1.0p2, for reference.