Error ITMS-90161, also known as Invalid Provisioning Profile, is a common issue that arises during app submission to the Apple App Store. This error typically indicates that the provisioning profile associated with the app binary is incorrect, outdated, or improperly configured. Correcting this error is essential to ensure smooth submission and compliance with Apple’s requirements.
What Causes Error ITMS-90161?
Error ITMS-90161 occurs when the provisioning profile associated with the app does not match Apple’s requirements or is no longer valid. This could be due to an expired profile, a mismatched bundle identifier, or a configuration error in Xcode’s signing settings. Familiarity with Apple’s requirements for provisioning profiles can help developers prevent this error.
Common Scenarios for Error ITMS-90161 - Invalid Provisioning Profile
Developers frequently encounter this error in the following situations:
- Expired or Invalid Provisioning Profile: Submitting an app with an outdated profile can lead to an Invalid Provisioning Profile error.
- Mismatched Bundle Identifier: If the bundle identifier in the provisioning profile doesn’t match the app’s identifier, this error will occur.
- Incorrectly Configured Code Signing Settings in Xcode: Misconfiguration in Xcode’s signing and provisioning settings can trigger this error.
- Revoked or Incompatible Distribution Certificate: If the certificate linked to the provisioning profile has been revoked or doesn’t match, the profile becomes invalid.
Step-by-Step Solutions for Error ITMS-90161
Solution 1: Check the Expiration and Validity of Provisioning Profiles
- Purpose: Ensures that the provisioning profile is active and valid for the app’s target platform.
- Steps:
- Log in to Apple Developer Portal and navigate to Certificates, Identifiers & Profiles.
- Under Profiles, verify that the profile is valid and not expired.
- Renew the profile if it has expired, then re-download and install it in Xcode.
- Result: Using a valid profile prevents issues caused by expired or outdated configurations.
Solution 2: Confirm the Bundle Identifier in Xcode Matches the Provisioning Profile
- Purpose: Ensures that the app’s bundle identifier matches the provisioning profile.
- Steps:
- In Xcode, navigate to General > Identity > Bundle Identifier.
- Confirm that this identifier matches the one configured in the provisioning profile.
- Update the bundle identifier in Xcode or the profile as needed.
- Result: Matching identifiers eliminate conflicts that lead to Invalid Provisioning Profile errors.
Solution 3: Verify Code Signing Settings in Xcode
- Purpose: Ensures the app is properly signed with a valid distribution certificate.
- Steps:
- In Xcode, go to Signing & Capabilities.
- Select the correct team and verify the provisioning profile settings.
- Ensure the Code Signing Identity is set to the appropriate distribution certificate.
- Result: Correct code signing configuration prevents conflicts with the provisioning profile.
Solution 4: Generate a New Provisioning Profile Linked to the Correct Certificate
- Purpose: Avoids issues with outdated or revoked profiles by creating a new profile.
- Steps:
- In Apple Developer Portal, navigate to Profiles > Add Profile.
- Select the app’s bundle identifier and ensure the correct distribution certificate is selected.
- Generate the new profile, download it, and import it into Xcode.
- Result: A new, correctly configured profile helps ensure compatibility with Apple’s requirements.
Solution 5: Remove Old Provisioning Profiles from Xcode and Reinstall
- Purpose: Prevents conflicts from multiple versions of the same profile.
- Steps:
- In Xcode, go to Preferences > Accounts and select the Apple ID.
- Under Manage Certificates, remove any old or expired profiles.
- Reinstall the newly created provisioning profile.
- Result: Removing outdated profiles prevents conflicts and helps streamline the submission process.
Conclusion
Error ITMS-90161 - Invalid Provisioning Profile, often results from outdated profiles, mismatched identifiers, or improper code signing settings. By checking profile validity, verifying bundle identifiers, configuring code signing, creating new profiles, and removing old ones, developers can resolve this error and ensure successful submission.
Nami’s low-code solutions can streamline app deployment, eliminating manual configuration issues and optimizing your workflow. Discover more at NamiML.