I am trying to submit an archive to the app store with an old app i was given. I keep receiving two errors CFBundleShortVersionString key must be in the plist and more troubling 'the package does not contain a plist'
Both of these items exist in the app. I added the CFBundleShortVersionString key to the plist, and the plist file most definitely exists or I could never build it. What is the issue here?
If the upload tool isn't finding your .plist file, that would be why it doesn't think it contains a CFBundleShortVersionString key. For some reason, apps can compile without any plist file at all!
First, make sure that your plist file exists in your project navigator, and that it's not highlighted in red. (in case it has been removed or renamed on disc, for whatever reason)
In your project in Xcode, select your app's target, and then select the "Build Settings" tab. Search for "plist" to filter the results. Under "Packaging", check the value of "Info.plist". This should be the name of your plist file, relative to your Xcode project. For example, "MyApp/MyApp-Info.plist". If it is blank, change it to the name of your plist file and rebuild.
I had the same problem.
I just added a new row with the key Bundle versions string, short
to the Info.plist with the version for a value and then it passed validation with no further errors.
In my case I had an wrong/errant entry in the info.plist for Executable File name, I replaced it with ${EXECUTABLE_NAME} and that cleared the problem.
I have already "Bundle versions string, short" in my info.plist but the problem for me was "Bundle Display Name" is not in info.plist so i added that and it works.
Hope this will help you.
Thanks
When you have app extensions embedded in your app, you must check (enable) the target membership of MainApp-Info.plist to those app extensions as well as the main app. Do it in the Xcode file inspector.
Apple has published a technical document that lists the possible issues that can cause this. As of today:
- missing CFBundlePackageType
- missing CFBundleShortVersionString
- missing CFBundleVersionString
I had the same problem with the same two error messages. The Info.plist was in fact in the package, but it did not contain the CFBundleShortVersionString. The first error (Archive does not contain Info.plist) is given by the Apple system by mistake.
In my case I had several targets in the project, and I had added the CFBundleShortVersionString to the wrong target (not the one I was validating with Apple).
To be extra-sure, do
- export the archive in question for ad-hoc distribution
- unzip the *.ipa file
- Inspect the Payload/your.app/Info.plist file
- Check whether it contains the CFBundleShortVersionString
for me, I had duplicated a Target a while back and the build settings were referencing a non-existing binary "myApp copy"
I managed to get meaningful error from uploader:
- Install https://github.com/nomad/shenzhen
- Create IPA: ipa build
- Submit IPA: ipa distribute:itunesconnect -e -w -a ACCOUNT_NAME -p PASSWORD -f ./AppName.ipa -i APPLE_ID_OF_THE_APP --verbose
By doing this I received the following error: ERROR ITMS-90183: "Invalid Bundle OS Type Code. The value of 'Bundle OS Type Code' [CFBundlePackageType] in your application bundle's Info.plist file must be one of [APPL]."
Added CFBundlePackageType and my app passed validation!
I think this way you can find other issue if any during submission with more meaningful message.
You don't need to edit your plist file. Just set the Build number (right under the Version number in Targets - General). This will propagate into the plist file as Bundle Version.
It happened to me too, I deleted the build number and the result was your error. When I inserter just 1, the problem was fixed.
Make sure that Target Membership
(in File Inspector) for Info.plist shows your project selected. In my case it wasn't. Ticking the checkbox resolved both problems.
来源:https://stackoverflow.com/questions/26132038/ios-app-submission-archive-does-not-contain-an-info-plist