PC パソコン

How to Fix App Store Connect Bundle Name Errors

When validating or uploading an app to App Store Connect, you may encounter errors or warnings related to the Bundle Name. The bundle name is mainly derived from CFBundleName in Info.plist and Xcode’s Product Name setting, while the name shown to users on the Home Screen can also come from CFBundleDisplayName. This guide explains the most common causes, how to diagnose them, and several ways to fix Bundle Name-related issues.

Common causes

  • CFBundleName is empty, invalid, or contains a build-setting variable that does not expand correctly.
  • PRODUCT_NAME or the target name was changed without updating related Info.plist settings.
  • The main app, extensions, or widgets use inconsistent bundle-name settings.
  • CFBundleName and CFBundleDisplayName are being used for the wrong purposes.
  • The Info.plist inside the archived app does not match the settings currently shown in Xcode.

Typical situations where the issue appears

These errors commonly appear after renaming an app or target, cloning an existing project, adding app extensions, changing Release build settings, or overriding values in a CI environment.

Typical Info.plist entries

<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundleDisplayName</key>
<string>My App</string>

How to check the settings

  1. Select the affected target in Xcode.
  2. Open Build Settings and check Product Name.
  3. Open the target’s Info tab or Info.plist and check Bundle name (CFBundleName).
  4. If you set a separate user-visible name, also check Bundle display name (CFBundleDisplayName).
  5. If the project contains widgets or extensions, repeat the same checks for every target.
  6. Inspect the archived app to make sure the final Info.plist contains the expected values.
Example: inspect the archived Info.plist

plutil -p "Payload/YourApp.app/Info.plist" | grep -E "CFBundleName|CFBundleDisplayName|CFBundleIdentifier"

Solution 1: Correct CFBundleName

In many projects, keeping CFBundleName set to $(PRODUCT_NAME) is the simplest option because it stays linked to the target’s Product Name. Replace empty values or undefined variables.

<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>

Solution 2: Verify Product Name

Check Build Settings → Packaging → Product Name. Pay particular attention to the Release configuration used for App Store distribution, because Debug and Release can contain different values.

Solution 3: Separate CFBundleName from CFBundleDisplayName

CFBundleName is the bundle’s short user-visible name, while CFBundleDisplayName is the user-facing display name used by iOS, including on the Home Screen. If you only want to change what users see, set CFBundleDisplayName instead of unnecessarily changing the bundle name.

Solution 4: Check every target

Widgets, Notification Service Extensions, Share Extensions, and other embedded targets can have their own Info.plist and build settings. Check the bundle name of every embedded bundle, not just the main application target.

Solution 5: Recreate the archive

After changing bundle-related settings, create a fresh archive instead of reusing an older one. If Xcode continues to use stale build data, clean the build folder or remove DerivedData when appropriate.

rm -rf ~/Library/Developer/Xcode/DerivedData/*
Note: Removing DerivedData clears build caches for Xcode projects, so use it only when necessary. Also remember that Bundle Name and Bundle Identifier are different. CFBundleIdentifier uniquely identifies the app and must match the Bundle ID associated with the app in App Store Connect.

Summary

For Bundle Name-related errors, first verify the roles of CFBundleName, PRODUCT_NAME, and CFBundleDisplayName. In projects with multiple targets, inspect every embedded target as well. Finally, check the Info.plist inside the generated archive, create a new archive after fixing the settings, and run Validate or Upload again.