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.