My app already is in the Apple App-store, then i made some changes and added new functionality to the app.
Build the app using the PGB service and tested is on my device.
Everything works well and the i changed the signing key to my production key en build the project again.
After that i uploaded my IPA file to the app-store with application loaded from apple.
No matter what i try, it just gives me the error that the bundle is invalid.
Reason: The info.plist file is missing the required key: CFBundleShortVersionString.
I extracted the IPA an looked into the info.plist file and there is no CFBundleShortVersionString.
So this error may be right you say.
Then i looked into the info.plist file from my previous version that is already in the app-store, also no CFBundleShortVersionString present....
My previous version wat 1.1.0 now i updated it to 1.2.0, below my versions in the config.xml
In i-tunes connect i set the same version code, 1.2.0
Does anybody know whats the problem here? I worked like a charm, now it fails every time.
Also i tried to add the gap:config-file with the CFBundleVersions in it to the config.xml, a solution i found elsewhere online.
This also didn't help, the error changed to: "The value for the Info.plist key CFBundleShortVersionString is not of the required type for that key"
Below my config.xml file:
Build the app using the PGB service and tested is on my device.
Everything works well and the i changed the signing key to my production key en build the project again.
After that i uploaded my IPA file to the app-store with application loaded from apple.
No matter what i try, it just gives me the error that the bundle is invalid.
Reason: The info.plist file is missing the required key: CFBundleShortVersionString.
I extracted the IPA an looked into the info.plist file and there is no CFBundleShortVersionString.
So this error may be right you say.
Then i looked into the info.plist file from my previous version that is already in the app-store, also no CFBundleShortVersionString present....
My previous version wat 1.1.0 now i updated it to 1.2.0, below my versions in the config.xml
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "XX.XXXXXX.XXX"
versionCode = "120"
version = "1.2.0" >
In i-tunes connect i set the same version code, 1.2.0
Does anybody know whats the problem here? I worked like a charm, now it fails every time.
Also i tried to add the gap:config-file with the CFBundleVersions in it to the config.xml, a solution i found elsewhere online.
This also didn't help, the error changed to: "The value for the Info.plist key CFBundleShortVersionString is not of the required type for that key"
Below my config.xml file:
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "XX.XXXXXX.XXX"
versionCode = "114"
version = "1.1.4" >
<name> XXXXXXXX </name>
<description>
XXXXXXXX
</description>
<author href="XXXXXXXX" email="XXXXXXXX">
XXXXXXXX
</author>
<gap:config-file platform="ios" parent="CFBundleVersion">
<string>1.1.4</string>
</gap:config-file>
<gap:config-file platform="ios" parent="CFBundleShortVersionString">
<array>
<string>1.1.4</string>
</array>
</gap:config-file>
<!--PLATFORMS-->
<gap:platform name="ios" />
<gap:platform name="android" />
<!-- iPhone and iPod touch -->
<gap:splash src="res/icon/Default.png" gap:platform="ios" width="320" height="480" />
<gap:splash src="res/icon/Default@2x.png" gap:platform="ios" width="640" height="960" />
<!-- iPhone 5 / iPod Touch (5th Generation) -->
<gap:splash src="res/icon/Default-568h@2x.png" gap:platform="ios" width="640" height="1136" />
<!-- iPhone / iPod Touch -->
<icon src="res/icon/icon-57.png" gap:platform="ios" width="57" height="57" />
<icon src="res/icon/icon-60.png" gap:platform="ios" width="60" height="60" />
<icon src="res/icon/icon-60@2x.png" gap:platform="ios" width="120" height="120" />
<!-- Settings Icon -->
<icon src="res/icon/icon-small.png" gap:platform="ios" width="29" height="29" />
<icon src="res/icon/icon-small@2x.png" gap:platform="ios" width="58" height="58" />
<!-- Spotlight Icon -->
<icon src="res/icon/icon-40.png" gap:platform="ios" width="40" height="40" />
<icon src="res/icon/icon-40@2x.png" gap:platform="ios" width="80" height="80" />
<!-- Android -->
<icon src="res/icon/ldpi.png" gap:platform="android" gap:qualifier="ldpi" />
<icon src="res/icon/mdpi.png" gap:platform="android" gap:qualifier="mdpi" />
<icon src="res/icon/hdpi.png" gap:platform="android" gap:qualifier="hdpi" />
<icon src="res/icon/xhdpi.png" gap:platform="android" gap:qualifier="xhdpi" />
<icon src="res/icon/xxhdpi.png" gap:platform="android" gap:qualifier="xxhdpi" />
<icon src="res/icon/xxxhdpi.png" gap:platform="android" gap:qualifier="xxxhdpi" />
<!-- PLUGINS -->
<gap:plugin name="org.apache.cordova.device" version="0.2.8" />
<gap:plugin name="org.apache.cordova.geolocation" version="0.3.7" />
<gap:plugin name="org.apache.cordova.network-information" version="0.2.7" />
<gap:plugin name="com.phonegap.plugin.statusbar" version="1.1.0" />
<gap:plugin name="dk.interface.cordova.plugin.googlenavigate" version="0.1.2" />
<gap:plugin name="org.apache.cordova.splashscreen" version="0.2.7" />
<!--PERMISSION-->
<feature name="http://api.phonegap.com/1.0/geolocation" />
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true" />
</feature>
<!--PREFERENCES-->
<preference name="StatusBarOverlaysWebView" value="true" />
<preference name="StatusBarBackgroundColor" value="#E30079" />
<preference name="UIWebViewBounce" value="false" />
<preference name="EnableLocation" value="true" />
<preference name="phonegap-version" value="3.5.0" /> <!-- all: current version of PhoneGap -->
<preference name="orientation" value="portrait" /> <!-- all: default means both landscape and portrait are enabled -->
<preference name="target-device" value="handset" /> <!-- all: possible values handset, tablet, or universal -->
<preference name="fullscreen" value="true" /> <!-- all: hides the status bar at the top of the screen -->
<preference name="webviewbounce" value="false" /> <!-- ios: control whether the screen 'bounces' when scrolled beyond the top -->
<preference name="prerendered-icon" value="true" /> <!-- ios: if icon is prerendered, iOS will not apply it's gloss to the app's icon on the user's home screen -->
<preference name="stay-in-webview" value="false" /> <!-- ios: external links should open in the default browser, 'true' would use the webview the app lives in -->
<preference name="ios-statusbarstyle" value="black-opaque" /> <!-- ios: black-translucent will appear black because the PhoneGap webview doesn't go beneath the status bar -->
<preference name="detect-data-types" value="true" /> <!-- ios: controls whether data types (such as phone no. and dates) are automatically turned into links by the system -->
<preference name="exit-on-suspend" value="false" /> <!-- ios: if set to true, app will terminate when home button is pressed -->
<preference name="show-splash-screen-spinner" value="false" /> <!-- ios: if set to false, the spinner won't appear on the splash screen during app loading -->
<preference name="auto-hide-splash-screen" value="false" /> <!-- ios: if set to false, the splash screen must be hidden using a JavaScript API -->
<preference name="AutoHideSplashScreen" value="false" />
<preference name="android-minSdkVersion" value="7" /> <!-- android: MIN SDK version supported on the target device. MAX version is blank by default. -->
<preference name="android-installLocation" value="auto" /> <!-- android: app install location. 'auto' will choose. 'internalOnly' is device memory. 'preferExternal' is SDCard. -->
<!--ACCESS-->
<access origin="*" />
</widget>






Pablo Jadzinsky
Thanks
Pierre Munnichs
But meanwhile my app is in the app-store, this only suceeded after i added the CFBundleShortVersionString option in my config.xml
So i can confirm it workes!