Deploying a Flutter application to the Apple App Store involves much more than running a build command. Developers must correctly configure the Bundle ID, signing certificates, provisioning profiles, Firebase services, privacy declarations, Xcode capabilities, and App Store Connect information.

A small mismatch—such as using a different Bundle ID in Firebase and Xcode—can cause build failures, broken push notifications, or App Store validation errors.

The following Claude Code prompt is designed to help developers audit, configure, test, and publish a Flutter iOS application safely.

Why Use Claude Code for iOS Deployment?

Claude Code can inspect the actual Flutter project instead of relying on assumptions. It can review files such as:

  • pubspec.yaml
  • ios/Podfile
  • Info.plist
  • Runner.entitlements
  • project.pbxproj
  • GoogleService-Info.plist
  • Flutter environment configuration files

This makes its guidance more specific to your project. However, Claude should first perform a read-only audit and explain any proposed changes before modifying important iOS configuration.

What Is an iOS Bundle ID?

A Bundle ID is the permanent identifier Apple uses to recognize an application. It normally follows reverse-domain notation:

com.company.appname

For example:

pk.jointt.customer

The same Bundle ID must be configured in:

  • Xcode
  • Apple Developer App Identifier
  • App Store Connect
  • Firebase iOS application
  • Provisioning profiles
  • Push notification configuration

Do not change the Bundle ID of an application that has already been published. Apple treats an app with a different Bundle ID as a separate application.

Claude Code Prompt for Flutter iOS Deployment

Replace the information inside brackets with your own application details, then run the prompt from the root directory of your Flutter project.

Act as a senior Flutter iOS release engineer. Help me prepare and deploy [App Name] to Apple App Store Connect.

Project context:
- App name: [App Name]
- Framework: Flutter
- Platform: iOS
- Backend: [Backend technology and hosting provider]
- Services and plugins: [Firebase, Google Maps, notifications, Sentry, Apple Sign-In, etc.]
- Known problems: [Describe previous CocoaPods, signing, Firebase, or Xcode issues]
- Do not assume the Bundle ID, Apple Team ID, Firebase configuration, signing method, or minimum iOS deployment target. Inspect the project and confirm them from the actual files.

Your tasks:

1. Inspect the project and identify:
   - Current iOS Bundle Identifier
   - Application display name
   - Version and build number
   - Minimum iOS deployment target
   - Configured Apple Team ID
   - Whether dependencies use CocoaPods, Swift Package Manager, or both
   - Firebase configuration and GoogleService-Info.plist
   - URL schemes
   - Associated domains
   - Push notification configuration
   - Background modes
   - Permissions declared in Info.plist
   - Release API URL and environment configuration
   - Use of Apple Sign-In, Google Sign-In, Maps, location, camera, photos, notifications, tracking, microphone, payments, or in-app purchases

2. Explain exactly what I must create or configure under:

   Apple Developer → Certificates, Identifiers & Profiles

   Cover:
   - App ID/Identifier
   - Bundle ID
   - Apple Development certificate
   - Apple Distribution certificate
   - APNs certificate or APNs authentication key
   - Development provisioning profile
   - App Store distribution provisioning profile
   - Required capabilities and entitlements

3. Recommend a suitable Bundle ID in reverse-domain format.

   Before recommending or changing it, inspect:
   - Existing Android applicationId
   - Existing iOS Bundle Identifier
   - Firebase applications
   - Apple identifiers already configured in the project

   Explain whether changing the Bundle ID could affect:
   - Firebase
   - Push notifications
   - Google Sign-In
   - Apple Sign-In
   - Associated domains
   - Deep links
   - App Store updates

4. Provide step-by-step Xcode instructions:
   - Open ios/Runner.xcworkspace or the correct workspace
   - Select the Runner target
   - Choose the correct Apple developer team
   - Configure Signing & Capabilities
   - Set or confirm the Bundle Identifier
   - Recommend automatic or manual signing
   - Set the version and build number
   - Add required capabilities
   - Verify Release configuration
   - Confirm supported devices and orientations
   - Create an Archive
   - Validate the Archive
   - Upload the build to App Store Connect

5. Provide exact Firebase instructions:
   - Confirm that the Firebase iOS Bundle ID matches Xcode
   - Verify GoogleService-Info.plist
   - Confirm Firebase initialization
   - Configure APNs for Firebase Cloud Messaging
   - Configure Google Sign-In URL schemes, if applicable
   - Verify Debug and Release Firebase configurations

6. Audit Info.plist and Runner.entitlements.

   Identify missing, invalid, unnecessary, duplicated, or placeholder values, especially:
   - Camera permission
   - Photo library permission
   - Location permission
   - Notification configuration
   - Tracking permission
   - Microphone permission
   - Background modes
   - URL schemes
   - Associated domains
   - Encryption declaration
   - Privacy manifest requirements

7. Review current Apple privacy and App Store requirements:
   - PrivacyInfo.xcprivacy
   - Required-reason APIs
   - App Privacy questionnaire
   - In-app account deletion
   - Sign in with Apple
   - App Tracking Transparency
   - User-generated content requirements
   - Data collection declarations for Firebase, Sentry, Maps, and other SDKs

8. Create a complete pre-publishing checklist covering:
   - Production backend and API URLs
   - HTTPS and App Transport Security compliance
   - Removal of test credentials and secrets
   - Release signing
   - Firebase production configuration
   - Push notifications
   - Deep links and associated domains
   - App icon
   - Launch screen
   - App Store screenshots
   - Privacy policy URL
   - Support URL
   - App description and keywords
   - Age rating
   - App Privacy declarations
   - Demo account for Apple Review
   - TestFlight testing
   - In-app account deletion
   - Restore Purchases, if applicable
   - App Review notes
   - Export compliance

9. Begin with safe diagnostic checks:
   - git status
   - flutter doctor -v
   - flutter --version
   - flutter pub get
   - flutter analyze
   - flutter test
   - Inspect pubspec.yaml
   - Inspect ios/Podfile
   - Inspect ios/Runner.xcodeproj/project.pbxproj
   - Inspect ios/Runner/Info.plist
   - Inspect ios/Runner/Runner.entitlements
   - Inspect Firebase configuration
   - Inspect Dart environment and API configuration files

10. Identify and help resolve common problems involving:
   - Firebase iOS SDK version conflicts
   - CocoaPods repository or dependency issues
   - Swift Package Manager conflicts
   - sentry_flutter compilation errors
   - google_maps_flutter_ios errors
   - Missing Runner.app
   - Missing provisioning profiles
   - Bundle ID mismatches
   - GoogleService-Info.plist mismatches
   - Untrusted development certificates
   - Archive validation failures
   - Builds that work locally but fail during App Store validation

Important working rules:
- First inspect and report the existing configuration.
- Do not modify files during the initial audit.
- Do not change the Bundle ID until you show me its current value and explain the consequences.
- Do not delete Podfile.lock, Pods, Package.resolved, or other dependency files without explaining the reason and receiving my confirmation.
- Never reveal, display, commit, or expose private keys, certificate passwords, provisioning credentials, or API secrets.
- Do not modify the Android package name while working on iOS.
- Show a diff before applying important configuration changes.
- Make one logical change at a time.
- Explain and verify every change.
- If an action must be completed inside Apple Developer or App Store Connect, provide the exact navigation path and value to enter.
- Verify uncertain information using current official Apple, Flutter, Firebase, or plugin documentation.

Use this output format:

A. Current project configuration  
B. Problems and risks found  
C. Recommended Bundle ID  
D. Apple Developer configuration  
E. Xcode configuration  
F. Firebase and notification configuration  
G. App Store Connect setup  
H. Pre-release checklist  
I. Build, archive, validation, and upload commands  
J. Changes requiring my approval  

Begin by inspecting the project. Do not modify any files during the first step.

Before Running the Prompt

Make sure Claude Code is running from the Flutter project’s root directory—the folder containing pubspec.yaml.

You will also need:

  • A Mac with a supported version of Xcode
  • An active Apple Developer Program membership
  • Access to App Store Connect
  • Access to the project’s Firebase account
  • Access to the application’s signing team
  • Production API and privacy-policy information

Do not provide Claude with private .p8 keys, distribution certificate passwords, Apple account passwords, or API secrets.

What to Configure in Apple Developer

In Apple Developer, open Certificates, Identifiers & Profiles and confirm the following:

Identifier

Create an App ID using the exact Bundle ID configured in Xcode. Enable only the capabilities the application genuinely uses, such as:

  • Push Notifications
  • Sign in with Apple
  • Associated Domains
  • Apple Pay
  • In-App Purchase
  • Keychain Sharing

Certificates

Most Flutter projects require:

  • Apple Development certificate for development and physical-device testing
  • Apple Distribution certificate for App Store distribution

If Xcode automatic signing is enabled, Xcode can manage much of this configuration.

Push Notifications

For Firebase Cloud Messaging, an APNs authentication key is generally easier to maintain than separate development and production APNs certificates.

The APNs key must also be uploaded to the appropriate Firebase project.

Provisioning Profiles

When manual signing is used, create:

  • An iOS App Development provisioning profile
  • An App Store distribution provisioning profile

Both profiles must use the correct App ID and signing certificate.

Final Deployment Process

After Claude completes the audit and approved corrections, the usual release process is:

flutter clean
flutter pub get
flutter analyze
flutter test
flutter build ipa --release

Alternatively, open the iOS workspace:

open ios/Runner.xcworkspace

In Xcode:

  1. Select Any iOS Device (arm64) or the available archive destination.
  2. Open Product → Archive.
  3. Wait for Xcode Organizer to open.
  4. Select the archive.
  5. Click Validate App.
  6. Resolve any reported signing or privacy issues.
  7. Click Distribute App.
  8. Choose App Store Connect and upload the build.
  9. Process and test the build through TestFlight.
  10. Complete the App Store listing and submit it for review.

Conclusion

Publishing a Flutter application to the Apple App Store requires coordination between Flutter, Xcode, Firebase, Apple Developer, and App Store Connect.

This prompt gives Claude Code clear instructions to inspect the real project, identify risks, explain account-level configuration, and avoid destructive changes. It is especially useful for Flutter applications that rely on Firebase, push notifications, maps, analytics, crash reporting, and multiple iOS capabilities.

Always review Claude’s proposed changes before approving them, particularly changes involving the Bundle ID, signing configuration, Firebase files, entitlements, and dependency management.