Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix - Info.plist TestFlight Validation #2799

Merged
merged 1 commit into from Apr 12, 2019

Conversation

Projects
None yet
3 participants
@cnoon
Copy link
Member

commented Apr 12, 2019

This PR replaces the - with . in the CFBundleShortVersionString value in the Info.plist to pass TestFlight validation.

Issue Link 馃敆

#2797

Goals 鈿斤笍

To ensure Alamofire can pass TestFlight validation when pulled in as a submodule.

Implementation Details 馃毀

This is much more complex than it seems. We typically use the following naming conventions for Git tags, Podspec versions, the Info.plist versions.

  • MAJOR.MINOR.PATCH-{alpha|beta|rc}.{prerelease-version}

This is the most common SemVer friendly format to use for pre-release versions. It is required by Carthage and SPM. However, as pointed out in #2797, using a - in the CFBundleShortVersionString will result in a validation error when uploading to AppStore Connect. After some investigation, it appears that CocoaPods handles this situation by stripping the pre-release version altogether and just using MAJOR.MINOR.PATCH.

Because of all of this, we've decided to update the CFBundleShortVersionString to use a . instead of a -. This will fix the ASC validation issue, and also allow 5.0.0.beta.5 to show up in the user agent string instead of just 5.0.0 with submodules, Carthage, and SPM. Unfortunately, this will still show up as 5.0.0 when using CocoaPods, but we figured it was better to have inconsistency here to allow the pre-release version to show up in most places.

Testing Details 馃攳

N/A

@cnoon cnoon added this to the 5.0.0-beta.5 milestone Apr 12, 2019

@cnoon cnoon requested a review from jshier Apr 12, 2019

@cnoon cnoon self-assigned this Apr 12, 2019

@jshier

jshier approved these changes Apr 12, 2019

Copy link
Contributor

left a comment

馃憤

@cnoon cnoon merged commit e222a3d into master Apr 12, 2019

1 check failed

continuous-integration/travis-ci/pr The Travis CI build failed
Details

@cnoon cnoon deleted the bugfix/info-plist-validation branch Apr 13, 2019

@sumac13

This comment has been minimized.

Copy link

commented Apr 15, 2019

I don't believe this actually solves the issue when using Carthage

Still getting this error when uploading

ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString '5.0.0.beta.5' in the Info.plist file must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring"
The call to the iTMSTransporter completed with a non-zero exit status: 1. This indicates a failure.

@cnoon

This comment has been minimized.

Copy link
Member Author

commented Apr 15, 2019

Thank you for pointing this out @sumac13. Looks like we were mistaken with Apple allowing pre-release versions at all. I'll have a PR put together shortly that removes the pre-release info from the version in the Info.plist files.

cnoon added a commit that referenced this pull request Apr 15, 2019

Dropped the pre-release version from bundle short version string
It appears that iTMSTransporter only allows a CFBundleShortVersionString to have at most three non-negative integers. See PR #2799 for more info.

ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString '5.0.0.beta.5' in the Info.plist file must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring"
The call to the iTMSTransporter completed with a non-zero exit status: 1. This indicates a failure.
@cnoon

This comment has been minimized.

Copy link
Member Author

commented Apr 15, 2019

Addressed in #2808.

jshier added a commit that referenced this pull request Apr 16, 2019

Dropped the pre-release version from bundle short version string (#2808)
It appears that iTMSTransporter only allows a CFBundleShortVersionString to have at most three non-negative integers. See PR #2799 for more info.

ERROR ITMS-90060: "This bundle is invalid. The value for key CFBundleShortVersionString '5.0.0.beta.5' in the Info.plist file must be a period-separated list of at most three non-negative integers. Please find more information about CFBundleShortVersionString at https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring"
The call to the iTMSTransporter completed with a non-zero exit status: 1. This indicates a failure.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can鈥檛 perform that action at this time.