Hacks and Tips for Incremental Adoption of Bazel for iOS
summary
Pinterest migrates an iOS monorepo (50+ engineers, ~700,000 LOC, commits every seven minutes) onto Basil incrementally: a custom converter pod_to_build imports 50+ cocoa pods into Basil; early Basil builds are reproducible but about 2.5× slower until optimizations cut time — replacing layered shell wrappers with a precompiled binary saves ~3 minutes and adding header hash tables halves Clang lookup cost. CI sees PR builds ~27% faster, beta artifacts ~45% faster and success rate rises from ~80% to 97–100%. Tulsi, experimental-show-artifacts, and an Xcode-gen path (Baja Blast) smooth developer workflow.
AI-written summary · about
chapters (13)
- 0:00iOS build challenges
- 3:55Goals for new build system
- 6:24Why Bazel for incremental
- 7:49Static library integration
- 13:27Challenges in incremental
- 15:12Full Bazel adoption
- 17:42CocoaPods for Bazel
- 20:54Validating new build system
- 22:20Bazel performance hurdles
- 24:05Optimizing build speed
- 28:40Developer workflow improvements
- 33:10Baja Blast for Xcode
- 36:00Key takeaways and future








