Build and distribution interview questions
42 questions from real iOS interviews. Topics: Xcode builds, SPM, code signing, TestFlight, App Store, CI/CD.
- Build and distributionShort answer
Dependency manager comparison
How do CocoaPods, Carthage, and Swift Package Manager differ in the way they put a dependency into your project?
#spm #cocoapods #carthage #dependency-manager
- Build and distributionMultiple choice
Swift Package Manager
Which of the following statements about Swift Package Manager are correct? Select all that apply.
#spm #package-swift #binary-target
- Build and distributionShort answer
Branch strategy
Why do you work on separate Git branches at all?
#git #branching #trunk-based #gitflow
- Build and distributionShort answer카카오
Code signing basics
How do the bundle ID, the certificate, and entitlements connect to a provisioning profile?
#code-signing #bundle-id #certificate #provisioning-profile
- Build and distributionShort answer
Major OS updates
When a new major iOS version is announced at WWDC, in what order does your team respond?
#wwdc #ios-version #deployment-target #beta
- Build and distributionMultiple choiceTikTok
pod install vs update
In a project that uses CocoaPods, which of the following statements about the difference between pod install and pod update are correct? Select all that apply.
#cocoapods #podfile #lockfile #dependency
- Build and distributionMultiple choice카카오
Diagnosing signing errors
Archiving on your Mac fails with Provisioning profile "AppStore Profile" doesn't include signing certificate "Apple Distribution: ..." while the same archive w…
#code-signing #provisioning-profile #certificate #xcode-error
- Build and distributionShort answer카카오
Distribution methods compared
How do Development, Ad Hoc, Enterprise (In-House), and App Store distribution, TestFlight included, differ?
#distribution #ad-hoc #enterprise #testflight
- Build and distributionMultiple choice
Deployment target and SDK
Your app has a deployment target of iOS 16 and you want to call an API added in iOS 17. Which approach is safe at both compile time and runtime?
#deployment-target #sdk #available #compatibility
- Build and distributionMultiple choice
TestFlight
Which of the following statements about TestFlight are correct? Select all that apply.
#testflight #beta #app-store-connect
- Build and distributionShort answer
Separating build environments
You want to build against development, staging, and production servers from one project. How would you set up the schemes, build configurations, and xcconfig f…
#xcconfig #scheme #build-configuration #environment
- Build and distributionMultiple choice
Debug vs Release configs
Which of the following statements about the difference between Xcode's default Debug and Release configurations are correct? Select all that apply.
#build-configuration #optimization #assert #testability
- Build and distributionShort answer
Version and build number
How do CFBundleShortVersionString and CFBundleVersion differ?
#version #build-number #cfbundleversion #marketing-version
- Build and distributionMultiple choice
Build number rules
You uploaded version 3.2.0, build 120 to TestFlight, fixed a bug, and want to upload again. Which combination will App Store Connect accept?
#build-number #testflight #app-store-connect
- Build and distributionMultiple choice카카오
App Store signing requirements
What do you need to sign a build for App Store submission? Select all that apply.
#code-signing #distribution-certificate #provisioning-profile #app-store
- Build and distributionMultiple choiceMastercard
APNs certificates and keys
You're preparing the APNs credentials your push server will use. Which of the following statements are correct? Select all that apply.
#apns #certificate #p12 #p8
- Build and distributionMultiple choicePinduoduo
Inside an .ipa
You unzipped an .ipa exported from an archive. Which of the following statements about its structure are correct? Select all that apply.
#ipa #bundle #code-signing #frameworks
- Build and distributionShort answerFlipkart
Running a beta program
A hiring manager looks up from your resume. "How did you run beta testing and CI/CD?" Walk through how your TestFlight beta program was grouped, and which buil…
#testflight #beta #feedback #release-process
- Build and distributionShort answer카카오뱅크interview report
fastlane lane design
If you set up iOS CI/CD with Jenkins (or GitHub Actions) and fastlane, how would you divide the lanes?
#fastlane #match #jenkins #ci-cd
- Build and distributionShort answerTokopediainterview report
Xcode compile time
A clean build of an ecommerce iOS app runs past 15 minutes and both CI and local builds are slow. What would you measure the stages with to decide what to fix …
#xcode #build-time #modules #incremental-build
- Build and distributionShort answer카카오모빌리티interview report
Release automation on CI
iOS releases for a ride-hailing app depend on one person clicking through Xcode. How would you build a pipeline that runs from signing to TestFlight upload on …
#ci-cd #testflight #signing #automation
- Build and distributionShort answer
iOS CI/CD pipeline
If you designed an iOS CI/CD pipeline from scratch, what steps would the pipeline that runs on every pull request have?
#ci-cd #fastlane #xcode-cloud #testflight
- Build and distributionShort answer
App Store review prep
You're about to make your first App Store submission. What would you check before you submit to cut down on rejections?
#app-review #rejection #guidelines #privacy
- Build and distributionMultiple choice
Privacy manifest
Which items do you declare in PrivacyInfo.xcprivacy (the privacy manifest)? Select all that apply.
#privacy-manifest #required-reason-api #privacyinfo #app-store
- Build and distributionShort answer
Cutting build time
You inherit a project where a clean build takes 15 minutes and a one-line change still takes 2 minutes. Where do you start measuring?
#build-time #incremental-build #modularization #type-checking
- Build and distributionShort answer
Code signing on CI
You're automating the archive and the App Store upload on a CI server. How would you handle certificates, provisioning profiles, and App Store Connect authenti…
#code-signing #fastlane-match #ci #keychain
- Build and distributionMultiple choice
xcodebuild archive and export
You turn an .xcarchive built by xcodebuild archive into an App Store .ipa on CI. What is the role of ExportOptions.plist?
#xcodebuild #archive #export-options #ipa
- Build and distributionShort answer
SPM version rules
How do you decide between SPM's version rules, from:, upToNextMinor, exact, and branch?
#spm #semantic-versioning #package-resolved #dependency-resolution
- Build and distributionShort answer
Release risk management
The App Store has no rollback. What would you build into the release process to limit the damage when a new version ships with a critical bug?
#phased-release #rollback #expedited-review #feature-flag
- Build and distributionShort answerGojek
Monorepo vs multirepo
This one comes up onsite. "If you had to pick between a monorepo and several small repositories, which would you pick and why?" Answer for an iOS app with inte…
#monorepo #multi-repo #spm #ci
- Build and distributionShort answerZomato
SPM in Tuist projects
How do you set up a third-party library through SPM in a project that Tuist generates?
#tuist #spm #dependencies #project-generation
- Build and distributionShort answerMeituan
From source to binary
What stages does a Swift source file go through before it's a binary running on an iPhone?
#compiler #llvm #linker #static-library
- Build and distributionShort answerBaidu
Dynamic code patching
A shipped app has a critical bug and you can't wait for App Store review. Why did Apple ban dynamic code patching like the JSPatch that Chinese apps used to ru…
#hotfix #feature-flag #remote-config #app-review
- Build and distributionShort answerAlibaba Group
A/B experiments
You're adding A/B experiments to the app. Where and how would you assign users? Describe the design from the client side.
#ab-test #experiment #feature-flag #rollout
- Build and distributionShort answer신한카드interview report
Tuist module layers
The interviewer asks about setting up a modular project with Tuist from scratch. Walk through the units and the layers you split the modules into.
#tuist #modularization #project-generation #build-cache
- Build and distributionShort answer밀리의서재interview report
App Store Connect API
You want everything from the TestFlight upload through review submission and the phased release to run without a human. How far can the App Store Connect API t…
#app-store-connect-api #fastlane #spm #automation
- Build and distributionShort answer여기어때interview report
Tuist module dependencies
In a hotel booking app's multi-module Tuist project, the Feature modules import each other's implementation modules directly, so changing one rebuilds everythi…
#tuist #modules #dependency-graph #interface
- Build and distributionShort answer더스윙interview report
fastlane release reproducibility
On a scooter-sharing app people deploy with fastlane from their own Macs, and the build numbers and environment settings come out different per person. How wou…
#fastlane #github-actions #release #artifact
- Build and distributionShort answer
CI/CD at scale
Over a hundred iOS engineers work on one app here. Hundreds of pull requests land a day, and even though each one passed CI, main breaks often once they're mer…
#ci-cd #monorepo #merge-queue #modularization
- Build and distributionShort answer
Static vs dynamic linking
Your app embeds 40 dynamic frameworks. What gets better and what gets worse if you switch them to static linking?
#static-library #dynamic-framework #mergeable-libraries #dyld
- Build and distributionMultiple choice
XCFramework
You're shipping an internal SDK as a closed-source binary. Which of these is a reason you need an XCFramework, or a requirement that comes with it? Select all …
#xcframework #binary-distribution #library-evolution #sdk
- Build and distributionShort answer
Build systems at scale
A team on an app with more than a hundred modules is drowning in project.pbxproj conflicts and slow builds. How would you choose between a project generator su…
#tuist #xcodegen #bazel #pbxproj