First run on a Mac (checklist)iOS
Last updated 2026-10-07
The iOS lanes are implemented but haven't been run on a Mac yet. Work through this checklist on the first run.
Install these on the Mac first
Xcodelatest (App Store requirement)
Builds and signs the iOS app. macOS only.
xcode-select --installVerify:
xcodebuild -versionOpen Xcode once after installing to accept the license and install components.
Homebrewlatest
The macOS package manager used by the other macOS install commands.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Verify:
brew --versionRuby 3.4 via rbenv3.4.x
Never use the macOS system Ruby; rbenv installs a private Ruby per project.
brew install rbenv ruby-build && rbenv install 3.4.1Verify:
Official install guide ruby --versionCocoaPods≥ 1.13
Installs iOS native dependencies. The framework runs “pod install” for you.
echo 'gem "cocoapods", ">= 1.13"' >> Gemfile && bundle installVerify:
bundle exec pod --versionNode.jsLTS
React Native's Gradle/Xcode build runs Node to bundle JavaScript; also needed for the Firebase CLI.
winget install OpenJS.NodeJS.LTSVerify:
Official install guide node --version- 1Run
bundle installandnpm cion the Mac. - 2
- 3In Xcode, make the app scheme Shared (Product → Scheme → Manage Schemes → Shared) and commit
xcshareddata. - 4In App Store Connect, create the app with your bundle id. Then create an API key (Users and Access → Integrations → App Store Connect API, role Admin for automatic signing).
- 5
Add these to .env:
.envAPPLE_TEAM_ID=XXXXXXXXXXAPP_STORE_CONNECT_KEY_ID=...APP_STORE_CONNECT_ISSUER_ID=...APP_STORE_CONNECT_KEY_FILE=/absolute/path/AuthKey_XXXX.p8 - 6
Validate and build
my-app — zsh~/my-app $ bundle exec fastlane ios doctor environment:development[09:10:02]: --- iOS Distribution Doctor ---[09:10:40]: Pod installation complete! There are 74 dependencies from the Podfile.[09:10:41]: Signing method: automatic[09:10:41]: Team ID: ABCDE12345[09:10:41]: iOS development configuration is valid.~/my-app $ bundle exec fastlane ios build environment:development[09:21:13]: Successfully exported and compressed dSYM file[09:21:13]: Successfully exported and signed the ipa file:[09:21:13]: dist/ios/development/MyApp-development-v1.0.0-12.ipaExpected output on the first successful run (Apple's tool output is shortened). - 7Run
ios distribute. If automatic signing fails, open the project in Xcode once (Signing & Capabilities → select the team), or switch to match.
Known iOS considerations:
pod installruns inside the lane, so the workspace doesn't exist until then.- The first TestFlight upload needs export-compliance info, or
ITSAppUsesNonExemptEncryptioninInfo.plist(Apple: encryption export regulations). ios buildalone also needs the API key, because it prepares signing and the build number.
Official documentation
- AppleAdd a new app in App Store Connectdeveloper.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app
- AppleCreating API keys for App Store Connect APIdeveloper.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api
- AppleCustomizing the build schemes for a projectdeveloper.apple.com/documentation/xcode/customizing-the-build-schemes-for-a-project
- AppleComplying with encryption export regulationsdeveloper.apple.com/documentation/security/complying-with-encryption-export-regulations
- fastlaneGetting started with fastlane for iOSdocs.fastlane.tools/getting-started/ios/setup/
Was this helpful?