2019 and I’m getting the same problem, albeit on Android (haven’t tested iOS yet). I guess technically I could just move it to the Resources folder, like was suggested, but that means every time I want to add a new particle effect I have to force my users to upgrade the game from the app store, plus I’d have to prepare a new release. I already have to do this whenever a new feature comes in, as code cannot be placed in AssetBundles on mobile (grrrr… but I guess security is the issue), but I thought at least I could include any number of non-script prefabs in my AssetBundles no problem.
EDIT: I think I figured it out. I remember a while ago there were some well-hidden settings about pre-loaded somthings that I had to set, which is many people encounter the “my prefab is pink when loaded from AssetBundle” error. I stumbled upon it again (Project Settings > Graphics > Built-in Shader Settings / Shader Preloading) and saw it was a list of included and pre-loaded SHADERS. I had a look at the particle effect(s) causing problems, and they were using “/Mobile/Particles/Alhpa Blended”, and that was not added to the list of “always included shaders”. So apparently non-particle shaders fail gracefully in that they shoot out an error or warning while just showing up pink, but for particle shaders, it compiles fine, no warnings, but bricks the app when loaded on a device.
I hope this helps someone else, because I’ve been on this problem for nearly 4 days now. I really wish Unity had better documentation where it describes in very technical detail what every little button and option does, as well as step-by-step instructions with common pitfalls for every common thing (like AssetBundles). And it would be nice if the forums/answers were better-kept. Most of the entries are super old and no longer relevant or absolute beginners asking the same questions “how do I load a new scene in code?” or “how do I set up a timer?” (which they wouldn’t have to ask if the documentation was good enough) and very few threads have real answers. Mostly some hack from 2013 that is ultra-deprecated. I know this probably isn’t the place to air out my grievances, but nobody at Unity will probably read this, so…
And lastly, I totally understand the new software model is “Agile”, meaning we get weekly releases with bugfixes and new features and updates instead of months or years between releases on the old “Enterprise” software paradigm, but at what cost? It’s not just Unity - google, Apple, Microsoft - every big player does this and it means we lack (good) documentation, forums are basically “OK, check the next few updates” and if there’s a solution presented, it is invalid within a year. Sucks to be an old-school programmer in modern times sometimes…
2ND EDIT: I may have spoke too soon. Still it crashes when instantiating a particle effect from AssetBundle on mobile device. I guess now I’m going to either have to just not use particle effects or I’ll have to figure out how to debug with Android Studio or maybe might have to buy VisualStudio (as VS Code seems to not be able to debug the debug APK)