Quick answer: AssetBundles built for Standalone load on PC but produce errors on iOS. Bundles are not cross-platform compatible — build per target.
A CI pipeline builds bundles once and ships them to all platforms. iOS clients fail to load with header mismatch errors.
Build per Platform
BuildPipeline.BuildAssetBundles(
"AssetBundles/iOS",
BuildAssetBundleOptions.None,
BuildTarget.iOS);Repeat for each target. Same source assets, different outputs — shader variants, texture formats, audio compression differ.
CDN Folder Convention
Host bundles at cdn.example.com/bundles/{platform}/{name}. Client picks folder by runtime platform. Avoids mixed-platform downloads.
Catalog Versioning
Each platform build produces its own catalog hash. Don’t share catalogs across platforms; clients see stale entries otherwise.
Verifying
iOS clients load iOS bundles cleanly. Cross-platform tests catch mismatches before reaching production.
“AssetBundles are platform-specific. Build once per target, host per-platform.”
Use Addressables for new projects — it manages per-platform builds and catalogs without manual scripting.