Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
601 views
in Technique[技术] by (71.8m points)

ios - CFBundleVersion must be a period separated list of at most three non-negative integers (WARNING ITMS-9000)

I'm getting this warning when trying to submit my app:

enter image description here

WARNING ITMS-9000: "This bundle is invalid. The value for key CFBundleVersion [3.3.9.2014.08.20] int the info.plist file must be a period separated list of at most three non-negative integers."

This is the first time I'm seeing this after a lot of submissions with that versioning format.

Is something changed regarding CFBundleVersion ?

I'm guessing the three wasn't always there? or apple just started warning us about it?

From the Apple docs:

CFBundleVersion

CFBundleVersion (String - iOS, OS X) specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The build version number should be a string comprised of three non-negative, period-separated integers with the first integer being greater than zero. The string should only contain numeric (0-9) and period (.) characters. Leading zeros are truncated from each integer and will be ignored (that is, 1.02.3 is equivalent to 1.2.3). This key is not localizable.

Edit:

Apparently CFBundleVersion was changed as you can see here. It's a shame that I need to search WayBackMachine for something like that while Apple's "Document Revision History" says nothing about it.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This happened to a framework I was using from Cocoapods, here is how I fixed it:

You need to find non-standard CFBundleShortVersionString in info.plist file. I searched through all of them and found this in one of the repos:

  <key>CFBundleShortVersionString</key>
  <string>HEAD based on 1.0</string>

Changed it to this:

  <key>CFBundleShortVersionString</key>
  <string>1.0</string>

and it worked

This method, created by Cocoapods developers also works:

https://github.com/Jonge/Cocoapods-frameworks-version-number-fix


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...