I'm building my PhoneGap app using PhoneGap Build service. My app uses the PhoneGap Barcode scanner. Everything compiles fine and it generates and ipa file, which I submit to the App store review. After successful submission I get an email from Apple about errors linked to not having a NSPhotoLibraryUsageDescription and NSPhotoLibraryUsageDescription. I have researched this problem and tried various builds and re-submissions with no success. I am using Phonegap version 8.0 locally but it looks like the default builder inside Phonegap build is cli-6.5.0.
I have tried the edit-config tags and also the custom-config-file tags, I have put these inside of a parent tag.
<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge">
<string>This app needs access to your photo library to select barcode images</string>
</edit-config>
<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
<string>This app needs access to your camera to scan barcodes</string>
</edit-config>
<custom-config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>This app needs access to your photo library to select barcode images</string>
</custom-config-file>
<custom-config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
<string>This app needs access to your camera to scan barcodes</string>
</custom-config-file>
I've also added variables to the barcode scanner plugin tag:
<plugin name="phonegap-plugin-barcodescanner" spec="~6.0.0">
<variable name="ANDROID_SUPPORT_V4_VERSION" value="27.+" />
<variable name="CAMERA_USAGE_DESCRIPTION" value="This app needs access to your camera to scan barcodes" />
<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="This app needs access to your photo library to select barcode images" />
</plugin>
I have read other posts on StackOverflow related to this topic, but nothing is resolving the issue. Each time I try something I re-build and resubmit to Apple but I'm still getting the same unresolved error. My full Config XML file is below.
<?xml version='1.0' encoding='utf-8'?>
<widget id="" version="2.0.9" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
<name></name>
<description>
</description>
<author email="" href="">
</author>
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="14" />
<plugin name="cordova-plugin-battery-status" source="npm" spec="~1.2.4" />
<plugin name="cordova-plugin-camera" source="npm" spec="~4.0.3" />
<plugin name="cordova-plugin-media-capture" source="npm" spec="~1.4.3" />
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.6" />
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.3.3" />
<plugin name="cordova-plugin-file" source="npm" spec="~4.3.3" />
<plugin name="cordova-plugin-geolocation" source="npm" spec="~2.4.3" />
<plugin name="cordova-plugin-globalization" source="npm" spec="~1.0.7" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="~1.7.1" />
<plugin name="cordova-plugin-network-information" source="npm" spec="~1.3.3" />
<plugin name="cordova-plugin-vibration" source="npm" spec="~2.1.5" />
<platform name="android">
<icon density="ldpi" src="www/res/icon/android/drawable-ldpi-icon.png" />
<icon density="mdpi" src="www/res/icon/android/drawable-mdpi-icon.png" />
<icon density="hdpi" src="www/res/icon/android/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="www/res/icon/android/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="www/res/icon/android/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="www/res/icon/android/drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="www/res/screen/android/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="www/res/screen/android/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="www/res/screen/android/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="www/res/screen/android/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="www/res/screen/android/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="www/res/screen/android/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="www/res/screen/android/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="www/res/screen/android/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="www/res/screen/android/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="www/res/screen/android/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="www/res/screen/android/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="www/res/screen/android/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<icon height="57" platform="ios" src="www/res/icon/ios/icon.png" width="57" />
<icon height="114" platform="ios" src="www/res/icon/ios/icon#2x.png" width="114" />
<icon height="40" platform="ios" src="www/res/icon/ios/icon-40.png" width="40" />
<icon height="80" platform="ios" src="www/res/icon/ios/icon-40#2x.png" width="80" />
<icon height="50" platform="ios" src="www/res/icon/ios/icon-50.png" width="50" />
<icon height="100" platform="ios" src="www/res/icon/ios/icon-50#2x.png" width="100" />
<icon height="60" platform="ios" src="www/res/icon/ios/icon-60.png" width="60" />
<icon height="120" platform="ios" src="www/res/icon/ios/icon-60#2x.png" width="120" />
<icon height="180" platform="ios" src="www/res/icon/ios/icon-60#3x.png" width="180" />
<icon height="72" platform="ios" src="www/res/icon/ios/icon-72.png" width="72" />
<icon height="144" platform="ios" src="www/res/icon/ios/icon-72#2x.png" width="144" />
<icon height="76" platform="ios" src="www/res/icon/ios/icon-76.png" width="76" />
<icon height="152" platform="ios" src="www/res/icon/ios/icon-76#2x.png" width="152" />
<icon height="29" platform="ios" src="www/res/icon/ios/icon-small.png" width="29" />
<icon height="58" platform="ios" src="www/res/icon/ios/icon-small#2x.png" width="58" />
<icon height="87" platform="ios" src="www/res/icon/ios/icon-small#3x.png" width="87" />
<splash height="1136" platform="ios" src="www/res/screen/ios/Default-568h#2x~iphone.png" width="640" />
<splash height="1334" platform="ios" src="www/res/screen/ios/Default-667h.png" width="750" />
<splash height="2208" platform="ios" src="www/res/screen/ios/Default-736h.png" width="1242" />
<splash height="1242" platform="ios" src="www/res/screen/ios/Default-Landscape-736h.png" width="2208" />
<splash height="1536" platform="ios" src="www/res/screen/ios/Default-Landscape#2x~ipad.png" width="2048" />
<splash height="768" platform="ios" src="www/res/screen/ios/Default-Landscape~ipad.png" width="1024" />
<splash height="2048" platform="ios" src="www/res/screen/ios/Default-Portrait#2x~ipad.png" width="1536" />
<splash height="1024" platform="ios" src="www/res/screen/ios/Default-Portrait~ipad.png" width="768" />
<splash height="960" platform="ios" src="www/res/screen/ios/Default#2x~iphone.png" width="640" />
<splash height="480" platform="ios" src="www/res/screen/ios/Default~iphone.png" width="320" />
</platform>
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
<string>To scan barcodes</string>
</edit-config>
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<plugin name="cordova-plugin-whitelist" spec="~1.3.3" />
<plugin name="phonegap-plugin-barcodescanner" spec="~6.0.0">
<variable name="ANDROID_SUPPORT_V4_VERSION" value="27.+" />
<variable name="CAMERA_USAGE_DESCRIPTION" value="This app needs access to your camera to scan barcodes" />
<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="This app needs access to your photo library to select barcode images" />
</plugin>
</widget>
Related
I created an app based on Framework7 using cordova
But when compiling, an error occurs after the command
sudo cordova build ios
Error:
** BUILD FAILED **
The following build commands failed:
CompileStoryboard /Users/andreybal/ios_app/quiktrakpro1/platforms/ios/QuikTrak+\ Pro/CDVLaunchScreen.storyboard (in target 'QuikTrak+ Pro' from project 'QuikTrak+ Pro')
(1 failure)
xcodebuild: Command failed with exit code 65
Please tell me what could be the reason
cordova -v
11.0.0
macOS Monterey
my config.xml :
android-versionCode="66" ios-CFBundleVersion="29"
id="com.quiktrak.pro" xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
defaultlocale="en-US" >
QuikTrak+ Pro
QuikTrak Pro GPS tracker
Sinopacific Co Limited
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config> </platform>
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<edit-config target="ITSAppUsesNonExemptEncryption" file="*-Info.plist" mode="merge">
<false/>
</edit-config>
</platform>
<preference name="android-targetSdkVersion" value="30" />
<preference name="multiDexEnabled" value="true" />
<preference name="deployment-target" value="11" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarStyle" value="blacktranslucent" />
<preference name="phonegap-version" value="cli-9.0.0" />
<!-- <preference name="Fullscreen" value="true" /> -->
<!-- <platform name="ios">
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform> -->
<plugin name="phonegap-plugin-push" source="npm" spec="2.3.0">
<variable name="SENDER_ID" value="1097482483564" />
</plugin>
<platform name="android">
<resource-file src="google-services.json" target="app/google-services.json" />
</platform>
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
</platform>
<plugin name="cordova-plugin-statusbar" source="npm" spec="2.1.3" />
<plugin name="cordova-plugin-device" source="npm" spec="2.0.3" />
<plugin name="cordova-plugin-buildinfo" source="npm" spec="4.0.0" />
<plugin name="cordova-plugin-dialogs" source="npm" spec="1.2.1" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.2.1" />
<plugin name="cordova-plugin-splashscreen" source="npm" spec="5.0.2" />
<plugin name="cordova-plugin-camera" source="npm" spec="4.0.3" />
<plugin name="phonegap-plugin-mobile-accessibility" source="npm" spec="~1.0.5" />
<plugin name="cordova-launch-review" source="npm" spec="3.1.1" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="4.0.0" />
<plugin name="cordova-plugin-wkwebview-engine" spec="~1.2.1" />
<plugin name="cordova-plugin-wkwebview-file-xhr" spec="~2.1.4"/>
<plugin name="cordova-plugin-codeplay-share-app-link" source="npm" spec="0.0.3" />
<plugin name="cordova-plugin-safariviewcontroller" source="npm" spec="1.6.0"/>
<!-- <plugin name="cordova-plugin-wkwebview-engine" source="npm" spec="1.2.1" /> -->
<!-- <plugin name="cordova-plugin-wkwebview-file-xhr" source="npm" spec="2.1.4" /> -->
<plugin name="uk.co.workingedge.phonegap.plugin.istablet" source="npm" spec="1.2.0" />
<plugin name="cordova-plugin-screen-orientation" source="npm" spec="3.0.2" />
<plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" source="npm" spec="5.0.5">
<variable name="GOOGLE_API_KEY_FOR_ANDROID" value="" />
</plugin>
<plugin name="cordova-plugin-phone-call" source="npm" spec="1.0.7" />
<plugin name="cordova-plugin-codeplay-share-app-link" source="npm" spec="0.0.3" />
<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
<string>You can take a photo of your asset using camera and upload it into the app</string>
</edit-config>
<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge">
<string>You can select photo of your asset in your photo library and upload it into the app</string>
</edit-config>
<edit-config target="NSPhotoLibraryAddUsageDescription" file="*-Info.plist" mode="merge">
<string>Need photo library access to save pictures there</string>
</edit-config>
<platform name="android">
<icon density="ldpi" src="www/res/icon/android/drawable-ldpi-icon.png" />
<icon density="mdpi" src="www/res/icon/android/drawable-mdpi-icon.png" />
<icon density="hdpi" src="www/res/icon/android/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="www/res/icon/android/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="www/res/icon/android/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="www/res/icon/android/drawable-xxxhdpi-icon.png" />
<resource-file src="www/res/icon/android/notification.png" target="app/src/main/res/drawable/notification.png" />
<splash density="port-ldpi" src="www/res/screen/android/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="www/res/screen/android/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="www/res/screen/android/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="www/res/screen/android/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="www/res/screen/android/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="www/res/screen/android/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<icon height="57" platform="ios" src="www/res/icon/ios/icon.png" width="57" />
<icon height="114" platform="ios" src="www/res/icon/ios/icon#2x.png" width="114" />
<icon height="40" platform="ios" src="www/res/icon/ios/icon-40.png" width="40" />
<icon height="80" platform="ios" src="www/res/icon/ios/icon-40#2x.png" width="80" />
<icon height="50" platform="ios" src="www/res/icon/ios/icon-50.png" width="50" />
<icon height="100" platform="ios" src="www/res/icon/ios/icon-50#2x.png" width="100" />
<icon height="60" platform="ios" src="www/res/icon/ios/icon-60.png" width="60" />
<icon height="120" platform="ios" src="www/res/icon/ios/icon-60#2x.png" width="120" />
<icon height="180" platform="ios" src="www/res/icon/ios/icon-60#3x.png" width="180" />
<icon height="72" platform="ios" src="www/res/icon/ios/icon-72.png" width="72" />
<icon height="144" platform="ios" src="www/res/icon/ios/icon-72#2x.png" width="144" />
<icon height="76" platform="ios" src="www/res/icon/ios/icon-76.png" width="76" />
<icon height="152" platform="ios" src="www/res/icon/ios/icon-76#2x.png" width="152" />
<icon height="29" platform="ios" src="www/res/icon/ios/icon-small.png" width="29" />
<icon height="58" platform="ios" src="www/res/icon/ios/icon-small#2x.png" width="58" />
<icon height="87" platform="ios" src="www/res/icon/ios/icon-small#3x.png" width="87" />
<icon height="1024" platform="ios" src="www/res/icon/ios/icon-1024.png" width="1024" />
<splash height="1136" platform="ios" src="www/res/screen/ios/Default-568h#2x~iphone.png" width="640" />
<splash height="1334" platform="ios" src="www/res/screen/ios/Default-667h.png" width="750" />
<splash height="2208" platform="ios" src="www/res/screen/ios/Default-736h.png" width="1242" />
<splash height="2048" platform="ios" src="www/res/screen/ios/Default-Portrait#2x~ipad.png" width="1536" />
<splash height="1024" platform="ios" src="www/res/screen/ios/Default-Portrait~ipad.png" width="768" />
<splash height="960" platform="ios" src="www/res/screen/ios/Default#2x~iphone.png" width="640" />
<splash height="480" platform="ios" src="www/res/screen/ios/Default~iphone.png" width="320" />
</platform>
<splash src="splash.png" />
<icon src="icon.png" /> </widget>
Well I don't usually post questions on stackoverflow but I find myself stuck here.
So I am building an app with PhoneGap & Cordova. I don't this it's relevant but I'm using framework7 for the UI.
Splashscreens works great on Android devices and most iOS devices. On iPhone having a notch (iPhone X/XR/Xs/Xs Max) It seems it won't get rid of some black bar below and above the screen like here:
Cordova app not displaying correctly on iPhone X (Simulator)
I must say I have done a lot of researches and visited a bunch of different stackoverflow threads, however, I still can't get to make those disappear :(.
Here is a list of what I have tried so far:
Reboot the iOS device to clear the splashscreen cache
RESULT: no change
Add viewport-fit=cover in the meta tags
RESULT: no change
Add Legacy Splashscreens (I checked that all the image sizes are according to the width and height attribute).
RESULT: No changes. Black bars around the screen (top & bottom). The viewport looks somewhat similar to an iphone 6/7.
<splash src="res/screen/ios/320x480.png" width="320" height="480" />
<splash src="res/screen/ios/640x960.png" width="640" height="960" />
<splash src="res/screen/ios/640x1136.png" width="640" height="1136" />
<splash src="res/screen/ios/768x1024.png" width="768" height="1024" />
<splash src="res/screen/ios/1536x2008.png" width="1536" height="2008" />
<splash src="res/screen/ios/1536x2048.png" width="1536" height="2048" />
<splash src="res/screen/ios/i6.png" width="750" height="1334" />
<splash src="res/screen/ios/i6s.png" width="1242" height="2208" />
<splash src="res/screen/ios/ixr.png" width="828" height="1792" />
<splash src="res/screen/ios/ixsm.png" width="1242" height="2688" />
Add SpringBoard images (two different code tried. In each case, I verified that the images' size were according to the cordova & apple's documentation):
RESULT: worst result yet! The viewport now seems rather similar to an iPhone 4 or 5. So the screen didn't shrink, however, the screen and the keyboard looks "zoomed in" or like stretched
<splash src="res/screen/ios/Default#2x~universal~anyany.png" />
and
<splash src="res/screen/ios/Default#2x~iphone~anyany.png" />
<splash src="res/screen/ios/Default#2x~iphone~comany.png" />
<splash src="res/screen/ios/Default#2x~iphone~comcom.png" />
<splash src="res/screen/ios/Default#3x~iphone~anyany.png" />
<splash src="res/screen/ios/Default#3x~iphone~anycom.png" />
<splash src="res/screen/ios/Default#3x~iphone~comany.png" />
<splash src="res/screen/ios/Default#2x~ipad~anyany.png" />
<splash src="res/screen/ios/Default#2x~ipad~comany.png" />
If any of you have a suggestion or an idea please let me know! I've had this issue for now few weeks and I feel lost.
Extra Infos:
I build the iOS app using build.phonegap.com since I don't own a MacBook and my computer is not powerful enough for a MacOs Vm
Here is my full code:
<?xml version='1.0' encoding='utf-8'?>
<widget id="my.pkg.id" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>My app name</name>
<description>
Description
</description>
<author email="emailadress#email.com" href="email.com">
My Name
</author>
<content src="index.html" />
<config-file platform="android" parent="/manifest" mode="merge">
<application android:theme="#android:style/Theme.Black.NoTitleBar"></application>
</config-file>
<plugin name="cordova-plugin-statusbar" source="npm" />
<plugin name="cordova-plugin-whitelist" source="npm" />
<plugin name="cordova-plugin-backbutton" source="npm" />
<plugin name="cordova-plugin-ios-camera-permissions" source="npm" />
<gap:plugin name="cordova-plugin-customurlscheme" source="npm">
<plugin name="cordova-plugin-device" source="npm" />
<param name="URL_SCHEME" value="myurlschm" />
</gap:plugin>
<plugin name="cordova-plugin-wkwebviewxhrfix" />
<plugin name="cordova-plugin-wkwebview-engine" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<engine name="ios" spec="latest" />
<plugin name="cordova-plugin-splashscreen" source="npm" />
<plugin name="cordova-universal-links-plugin" source="npm" />
<plugin name="cordova-plugin-disable-ios11-statusbar" source="npm" spec="*" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="*" />
<plugin name="phonegap-plugin-barcodescanner" source="npm" spec="*" />
<allow-navigation href="data:*" />
<allow-intent href="data:*" />
<access origin="data:*" />
<allow-navigation href="https://code.jquery.com/*" />
<allow-intent href="https://code.jquery.com/*" />
<access origin="https://code.jquery.com/*" />
<allow-navigation href="https://ajax.googleapis.com/*" />
<allow-intent href="https://ajax.googleapis.com/*" />
<access origin="https://ajax.googleapis.com/*" />
<allow-navigation href="https://maxcdn.bootstrapcdn.com/*" />
<allow-intent href="https://maxcdn.bootstrapcdn.com/*" />
<access origin="https://maxcdn.bootstrapcdn.com/*" />
<allow-navigation href="https://debug1.phonegap.com/*" />
<allow-intent href="https://debug1.phonegap.com/*" />
<access origin="https://debug1.phonegap.com/*" />
<allow-navigation href="https://debug2.phonegap.com/*" />
<allow-intent href="https://debug2.phonegap.com/*" />
<access origin="https://debug2.phonegap.com/*" />
<allow-navigation href="https://debug3.phonegap.com/*" />
<allow-intent href="https://debug3.phonegap.com/*" />
<access origin="https://debug3.phonegap.com/*" />
<allow-navigation href="https://debug4.phonegap.com/*" />
<allow-intent href="https://debug4.phonegap.com/*" />
<access origin="https://debug4.phonegap.com/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-intent href="googlechrome:*" />
<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
<string>need camera access to take pictures</string>
</edit-config>
<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge">
<string>need photo library access to get pictures from there</string>
</edit-config>
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>need location access to find things nearby</string>
</edit-config>
<edit-config target="NSPhotoLibraryAddUsageDescription" file="*-Info.plist" mode="merge">
<string>need photo library access to save pictures there</string>
</edit-config>
<access origin="*" />
<preference name="FadeSplashScreenDuration" value="1250" />
<preference name="orientation" value="portrait" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="android-minSdkVersion" value="17" />
<preference name="AndroidLaunchMode" value="singleTask" />
<platform name="android">
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/uses-permission" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.CAMERA" />
</edit-config>
<allow-intent href="market:*" />
<preference name="DisallowOverscroll" value="true" />
<preference name="LoadUrlTimeoutValue" value="10000" />
<preference name="ErrorUrl" value="index.html" />
<preference name="android-minSdkVersion" value="17" />
<preference name="AndroidLaunchMode" value="singleTop" />
<preference name="android-targetSdkVersion" value="29" />
<preference name="FadeSplashScreenDuration" value="1250" />
<preference name="SplashScreenDelay" value="3000" />
<icon src="test.png" qualifier="ldpi" />
<icon src="test.png" qualifier="mdpi" />
<icon src="test.png" qualifier="hdpi" />
<icon src="test.png" qualifier="xhdpi" />
<icon src="test.png" qualifier="xxhdpi" />
<icon src="test.png" qualifier="xxxhdpi" />
<icon src="test.png" qualifier="fr-xxhdpi" />
<splash src="ldpi.png" qualifier="ldpi" />
<splash src="mdpi.png" qualifier="mdpi" />
<splash src="hdpi.png" qualifier="hdpi" />
<splash src="xhdpi.png" qualifier="xhdpi" />
<splash src="fr-xhdpi.png" qualifier="fr-xhdpi" />
<splash src="portrait-xxhdpi.png" qualifier="port-xxhdpi" />
<splash src="landscape-xxhdpi.png" qualifier="land-xxhdpi" />
<splash src="xxxhdpi.png" qualifier="xxxhdpi" />
</platform>
<platform name="ios">
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true" />
</feature>
<preference name="Allow3DTouchLinkPreview" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="EnableViewportScale" value="true" />
<preference name="DisallowOverscroll" value="true" />
<preference name="deployment-target" value="10.0" />
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="StatusBarStyle" value="blacktranslucent" />
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="FadeSplashScreenDuration" value="750" />
<preference name="SplashScreenDelay" value="1000" />
<splash src="res/screen/ios/320x480.png" width="320" height="480" />
<splash src="res/screen/ios/640x960.png" width="640" height="960" />
<splash src="res/screen/ios/640x1136.png" width="640" height="1136" />
<splash src="res/screen/ios/768x1024.png" width="768" height="1024" />
<splash src="res/screen/ios/1536x2008.png" width="1536" height="2008" />
<splash src="res/screen/ios/1536x2048.png" width="1536" height="2048" />
<splash src="res/screen/ios/i6.png" width="750" height="1334" />
<splash src="res/screen/ios/i6s.png" width="1242" height="2208" />
<splash src="res/screen/ios/ixr.png" width="828" height="1792" />
<splash src="res/screen/ios/ixsm.png" width="1242" height="2688" />
<icon src="res/icon/ios/icon-1024.png" width="1024" height="1024" />
<icon src="res/icon/ios/icon-small.png" width="29" height="29" />
<icon src="res/icon/ios/icon-small#2x.png" width="58" height="58" />
<icon src="res/icon/ios/icon-small#3x.png" width="87" height="87" />
<icon src="res/icon/ios/icon-small-40.png" width="40" height="40" />
<icon src="res/icon/ios/icon-small-40#2x.png" width="80" height="80" />
<icon src="res/icon/ios/icon-small-40#3x.png" width="120" height="120" />
<icon src="res/icon/ios/icon-small-50.png" width="50" height="50" />
<icon src="res/icon/ios/icon-small-50#2x.png" width="100" height="100" />
<icon src="res/icon/ios/icon.png" width="57" height="57" />
<icon src="res/icon/ios/icon#2x.png" width="114" height="114" />
<icon src="res/icon/ios/icon-60.png" width="60" height="60" />
<icon src="res/icon/ios/icon-60#2x.png" width="120" height="120" />
<icon src="res/icon/ios/icon-60#3x.png" width="180" height="180" />
<icon src="res/icon/ios/icon-72.png" width="72" height="72" />
<icon src="res/icon/ios/icon-72#2x.png" width="144" height="144" />
<icon src="res/icon/ios/icon-76.png" width="76" height="76" />
<icon src="res/icon/ios/icon-76#2x.png" width="152" height="152" />
<icon src="res/icon/ios/icon-167.png" width="167" height="167" />
<icon src="res/icon/ios/icon-83.5#2x.png" width="167" height="167" />
<splash src="res/screen/ios/Default#2x~iphone~anyany.png" />
<splash src="res/screen/ios/Default#2x~iphone~comany.png" />
<splash src="res/screen/ios/Default#2x~iphone~comcom.png" />
<splash src="res/screen/ios/Default#3x~iphone~anyany.png" />
<splash src="res/screen/ios/Default#3x~iphone~anycom.png" />
<splash src="res/screen/ios/Default#3x~iphone~comany.png" />
<splash src="res/screen/ios/Default#2x~ipad~anyany.png" />
<splash src="res/screen/ios/Default#2x~ipad~comany.png" />
</platform>
<platform name="windows">
<preference name="FadeSplashScreenDuration" value="750" />
<preference name="SplashScreenDelay" value="3000" />
</platform>
</widget>
Edit:
Should I post an issue on Phonegap build or am I doing something wrong here?
I build the iOS app using build.phonegap.com since I don't own a MacBook and my computer is not powerful enough for a MacOs Vm
Surely they aren't providing the proper support for all splash screen sizes, or you haven't implemented all sizes correctly. Check their documentation on that. Whenever Xcode is updated, and this happens often, new splash screen sizes are added.
NOTICE the linked article may be outdated or it will be the second a new Xcode version with new screen sizes is released.
Example sizes:
I am building an app using Phonegap, and I have been stuck trying to submit it to the app store. I have searched and searched and tried different methods, but I have not been able to get past this.
Every time I submit the App, I am getting the following response:
Missing Purpose String in Info.plist File - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSPhotoLibraryUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data will be required to include a purpose string.
I have tried multiple tweaks to my config.xml file with no success.
Below is my latest trial
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.domain.app" version="0.1.3"
xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0">
<name>App</name>
<description>
Test App
</description>
<author email="admin#.com" href="http://www.com">
Dev Team
</author>
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="14" />
<platform name="android">
<icon qualifier="ldpi" src="res/icons/android/drawable-ldpi-icon.png" />
<icon qualifier="mdpi" src="res/icons/android/drawable-mdpi-icon.png" />
<icon qualifier="hdpi" src="res/icons/android/drawable-hdpi-icon.png" />
<icon qualifier="xhdpi" src="res/icons/android/drawable-xhdpi-icon.png" />
<icon qualifier="xxhdpi" src="res/icons/android/drawable-xxhdpi-icon.png" />
<icon qualifier="xxxhdpi" src="res/icons/android/drawable-xxxhdpi-icon.png" />
<splash qualifier="land-ldpi" src="res/screens/android/drawable-land-ldpi-screen.png" />
<splash qualifier="land-mdpi" src="res/screens/android/drawable-land-mdpi-screen.png" />
<splash qualifier="land-hdpi" src="res/screens/android/drawable-land-hdpi-screen.png" />
<splash qualifier="land-xhdpi" src="res/screens/android/drawable-land-xhdpi-screen.png" />
<splash qualifier="land-xxhdpi" src="res/screens/android/drawable-land-xxhdpi-screen.png" />
<splash qualifier="land-xxxhdpi" src="res/screens/android/drawable-land-xxxhdpi-screen.png" />
<splash qualifier="port-ldpi" src="res/screens/android/drawable-port-ldpi-screen.png" />
<splash qualifier="port-mdpi" src="res/screens/android/drawable-port-mdpi-screen.png" />
<splash qualifier="port-hdpi" src="res/screens/android/drawable-port-hdpi-screen.png" />
<splash qualifier="port-xhdpi" src="res/screens/android/drawable-port-xhdpi-screen.png" />
<splash qualifier="port-xxhdpi" src="res/screens/android/drawable-port-xxhdpi-screen.png" />
<splash qualifier="port-xxxhdpi" src="res/screens/android/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<preference name="Orientation" value="all" />
<preference name="AutoHideSplashScreen" value="false" />
<icon height="57" platform="ios" src="res/icons/ios/icon.png" width="57" />
<icon height="114" platform="ios" src="res/icons/ios/icon#2x.png" width="114" />
<icon height="40" platform="ios" src="res/icons/ios/icon-40.png" width="40" />
<icon height="80" platform="ios" src="res/icons/ios/icon-40#2x.png" width="80" />
<icon height="50" platform="ios" src="res/icons/ios/icon-50.png" width="50" />
<icon height="100" platform="ios" src="res/icons/ios/icon-50#2x.png" width="100" />
<icon height="60" platform="ios" src="res/icons/ios/icon-60.png" width="60" />
<icon height="120" platform="ios" src="res/icons/ios/icon-60#2x.png" width="120" />
<icon height="180" platform="ios" src="res/icons/ios/icon-60#3x.png" width="180" />
<icon height="72" platform="ios" src="res/icons/ios/icon-72.png" width="72" />
<icon height="144" platform="ios" src="res/icons/ios/icon-72#2x.png" width="144" />
<icon height="76" platform="ios" src="res/icons/ios/icon-76.png" width="76" />
<icon height="152" platform="ios" src="res/icons/ios/icon-76#2x.png" width="152" />
<icon height="29" platform="ios" src="res/icons/ios/icon-small.png" width="29" />
<icon height="58" platform="ios" src="res/icons/ios/icon-small#2x.png" width="58" />
<icon height="87" platform="ios" src="res/icons/ios/icon-small#3x.png" width="87" />
<icon height="1024" platform="ios" src="res/icons/ios/icon-1024.png" width="1024" />
<splash height="1136" platform="ios" src="res/screens/ios/Default-568h#2x~iphone.png" width="640" />
<splash height="1334" platform="ios" src="res/screens/ios/Default-667h.png" width="750" />
<splash height="2208" platform="ios" src="res/screens/ios/Default-736h.png" width="1242" />
<splash height="1242" platform="ios" src="res/screens/ios/Default-Landscape-736h.png" width="2208" />
<splash height="1536" platform="ios" src="res/screens/ios/Default-Landscape#2x~ipad.png" width="2048" />
<splash height="768" platform="ios" src="res/screens/ios/Default-Landscape~ipad.png" width="1024" />
<splash height="2048" platform="ios" src="res/screens/ios/Default-Portrait#2x~ipad.png" width="1536" />
<splash height="1024" platform="ios" src="res/screens/ios/Default-Portrait~ipad.png" width="768" />
<splash height="960" platform="ios" src="res/screens/ios/Default#2x~iphone.png" width="640" />
<splash height="480" platform="ios" src="res/screens/ios/Default~iphone.png" width="320" />
<edit-config target="NSPhotoLibraryUsageDescription" file="*-Info.plist" mode="merge">
<string>App requires access to photo library in order to enable users to update profile picture with a photo stored in their library. </string>
</edit-config>
<custom-config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>App requires access to photo library in order to enable users to update profile picture with a photo stored in their library.</string>
</custom-config-file>
<icon src="Appstore.png" width="1024" height="1024" />
</platform>
<platform name="wp8">
<icon height="99" platform="wp8" src="www/res/icons/windows/Square150x150Logo.png" width="99" />
<icon height="159" platform="wp8" src="www/res/icons/winwodws/Square150x150Logo.png" width="159" />
<splash height="1280" platform="wp8" src="www/res/screens/windows/SplashScreenPhone.scale-240.jpg" width="768" />
</platform>
<platform name="windows">
<icon height="150" platform="windows" src="www/res/icons/windows/Square150x150Logo.png" width="150" />
<icon height="44" platform="windows" src="www/res/icons/windows/Square44x44Logo.png" width="44" />
<icon height="50" platform="windows" src="www/res/icons/windows/storelogo.png" width="50" />
<splash height="300" platform="windows" src="www/res/screens/windows/splashscreen.png" width="620" />
<icon height="150" platform="windows" src="www/res/icons/windows/Square150x150Logo.png" width="150" />
<icon height="44" platform="windows" src="www/res/icons/windows/Square44x44Logo.png" width="44" />
<icon height="106" platform="windows" src="www/res/icons/windows/Square150x150Logo.png" width="106" />
<icon height="70" platform="windows" src="www/res/icons/windows/Square70x70Logo.png" width="70" />
<icon height="71" platform="windows" src="www/res/icons/windows/Square71x71Logo.png" width="71" />
<icon height="170" platform="windows" src="www/res/icons/windows/Square150x150Logo.png" width="170" />
<icon height="360" platform="windows" src="www/res/icons/windows/Square150x150Logo.png" width="360" />
<icon height="310" platform="windows" src="www/res/icons/windows/Square150x150Logo.png" width="310" />
<icon height="150" platform="windows" src="www/res/icons/windows/Square310x310Logo.png" width="310" />
<icon height="360" platform="windows" src="www/res/icons/windows/Square310x310Logo.png" width="744" />
<splash height="1920" platform="windows" src="www/res/screens/windows/splashscreen.png" width="1152" />
</platform>
<engine name="android" spec="~6.4.0" />
<engine name="ios" spec="^4.5.3" />
<plugin name="cordova-plugin-battery-status" spec="^1.2.5" />
<plugin name="cordova-plugin-camera" spec="^3.0.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value="Camera used to upload a new profile picture" />
<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="Library is used to choose and upload a new profile picture" />
</plugin>
<plugin name="cordova-plugin-device" spec="^1.1.7" />
<plugin name="cordova-plugin-device-motion" spec="^1.2.5" />
<plugin name="cordova-plugin-dialogs" spec="^1.3.4" />
<plugin name="cordova-plugin-file" spec="^5.0.0" />
<plugin name="cordova-plugin-file-transfer" spec="^1.7.0" />
<plugin name="cordova-plugin-globalization" spec="^1.0.8" />
<plugin name="cordova-plugin-inappbrowser" spec="^1.7.2" />
<plugin name="cordova-plugin-insomnia" spec="^4.3.0" />
<plugin name="cordova-plugin-media-capture" spec="^2.0.0">
<variable name="CAMERA_USAGE_DESCRIPTION" value="Camera used to upload a new profile picture" />
<variable name="MICROPHONE_USAGE_DESCRIPTION" value="Microphone is not used in this app" />
<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="Library is used to choose and upload a new profile picture" />
</plugin>
<plugin name="cordova-plugin-network-information" spec="^1.3.4" />
<plugin name="cordova-plugin-screen-orientation" spec="^2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="^4.1.0" />
<plugin name="cordova-plugin-statusbar" spec="^2.3.0" />
<plugin name="phonegap-plugin-contentsync" spec="^1.4.1" />
<plugin name="phonegap-plugin-mobile-accessibility" spec="^1.0.5" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
<allow-navigation href="*" />
<platform name="browser">
<preference name="SplashScreen" value="www/res/screen/ios/Default-736h.png" />
<!-- defaults to "/img/logo.png" -->
<preference name="SplashScreenDelay" value="3000" />
<!-- defaults to "3000" -->
<preference name="SplashScreenBackgroundColor" value="white" />
<!-- defaults to "#464646" -->
<preference name="ShowSplashScreen" value="false" />
<!-- defaults to "true" -->
<preference name="SplashScreenWidth" value="600" />
<!-- defaults to "170" -->
<preference name="SplashScreenHeight" value="300" />
<!-- defaults to "200" -->
</platform>
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
Any help is greatly appreciated,
Daniel
I have a cordova app which when compiled and run in device is working well, but when I upload it in the app store. The "Build is invalid". and also i got this email from apple: iTunes Connect
Dear Developer,
We identified one or more issues with a recent delivery for your app, APP_NAME.
Please correct the following issues, then upload again.
1.) This bundle is invalid - The Info.plist file for /Payload/APP_NAME.app/www/js/cordova-ios/tests/spec/unit/fixtures/org.test.plugins.dummyplugin/src/ios/Custom.framework is missing or could not be read.
2.) Invalid Bundle - The bundle at '/Payload/APP_NAME.app/www/js/cordova-ios/tests/spec/unit/fixtures/org.test.plugins.dummyplugin/src/ios/Custom.framework' does not contain a bundle executable.
3.) This bundle is invalid - The Info.plist file for /Payload/APP_NAME.app/www/js/cordova-ios/tests/spec/unit/fixtures/org.test.plugins.dummyplugin/src/ios/CustomEmbeddable.framework is missing or could not be read.
4.) Invalid Bundle - The bundle at '/Payload/APP_NAME.app/www/js/cordova-ios/tests/spec/unit/fixtures/org.test.plugins.dummyplugin/src/ios/CustomEmbeddable.framework' does not contain a bundle executable.
Can not seem to find a reason. How can the build work in local device but when build and archived and uploaded, its invalid build.
Thanks in advance :)
my config file content:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.docandtrack.app" version="2.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Doc and Track</name>
<description>
An App for Truckers to use the Doc and Track system
</description>
<author email="email" href="endpoint link">
Doc and Track
</author>
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="SplashScreen" value="screen" />
<platform name="android">
<allow-intent href="market:*" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="FadeSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="1500" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<splash density="land-hdpi" src="res/android/screen.9.png" />
<splash density="land-ldpi" src="res/android/screen.9.png" />
<splash density="land-mdpi" src="res/android/screen.9.png" />
<splash density="land-xhdpi" src="res/android/screen.9.png" />
<splash density="port-hdpi" src="res/android/screen.9.png" />
<splash density="port-ldpi" src="res/android/screen.9.png" />
<splash density="port-mdpi" src="res/android/screen.9.png" />
<splash density="port-xhdpi" src="res/android/screen.9.png" />
<icon density="ldpi" src="res/android/icon-ldpi.png" />
<icon density="mdpi" src="res/android/icon-mdpi.png" />
<icon density="hdpi" src="res/android/icon-hdpi.png" />
<icon density="xhdpi" src="res/android/icon-xhdpi.png" />
<icon density="xxhdpi" src="res/android/icon-xxhdpi.png" />
<icon density="xxxhdpi" src="res/android/icon-xxxhdpi.png" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="BackupWebStorage" value="none" />
<preference name="deployment-target" value="10.0" />
<splash height="480" src="res/ios/screen/Default~iphone.png" width="320" />
<splash height="960" src="res/ios/screen/Default#2x~iphone.png" width="640" />
<splash height="1024" src="res/ios/screen/Default-Portrait~ipad.png" width="768" />
<splash height="2048" src="res/ios/screen/Default-Portrait#2x~ipad.png" width="1536" />
<splash height="768" src="res/ios/screen/Default-Landscape~ipad.png" width="1024" />
<splash height="1536" src="res/ios/screen/Default-Landscape#2x~ipad.png" width="2048" />
<splash height="1136" src="res/ios/screen/Default-568h#2x~iphone.png" width="640" />
<splash height="1334" src="res/ios/screen/Default-667h.png" width="750" />
<splash height="2208" src="res/ios/screen/Default-736h.png" width="1242" />
<splash height="1242" src="res/ios/screen/Default-Landscape-736h.png" width="2208" />
<icon height="20" src="res/ios/icon-20.png" width="20" />
<icon height="40" src="res/ios/icon-20#2x.png" width="40" />
<icon height="180" src="res/ios/icon-60#3x.png" width="180" />
<icon height="120" src="res/ios/icon-60#2x.png" width="120" />
<icon height="167" src="res/ios/icon-83.5#2x.png" width="167" />
<icon height="152" src="res/ios/icon-76#2x.png" width="152" />
<icon height="76" src="res/ios/icon-76.png" width="76" />
<icon height="80" src="res/ios/icon-40#2x.png" width="80" />
<icon height="60" src="res/ios/icon-60.png" width="60" />
<icon height="87" src="res/ios/icon-29#3x.png" width="87" />
<icon height="58" src="res/ios/icon-29#2x.png" width="58" />
<icon height="29" src="res/ios/icon-29.png" width="29" />
<icon height="114" src="res/ios/icon-57#2x.png" width="114" />
<icon height="57" src="res/ios/icon-57.png" width="57" />
<icon height="100" src="res/ios/icon-50#2x.png" width="100" />
<icon height="50" src="res/ios/icon-50.png" width="50" />
<icon height="144" src="res/ios/icon-72#2x.png" width="144" />
<icon height="72" src="res/ios/icon-72.png" width="72" />
<icon height="1024" src="res/ios/icon-1024.png" width="1024" />
</platform>
<plugin name="cordova-plugin-whitelist" spec="1" />
<plugin name="cordova-plugin-splashscreen" spec="~3.1.0" />
<plugin name="cordova-plugin-file-transfer" spec="~1.5.0" />
<plugin name="cordova-plugin-datepicker" spec="~0.9.3" />
<plugin name="cordova-plugin-statusbar" spec="~2.1.0" />
<plugin name="cordova-plugin-dialogs" spec="~1.2.0" />
<plugin name="docandtrack-image-plugin" />
<plugin name="com.transistorsoft.cordova.background-geolocation" spec="https://github.com/transistorsoft/cordova-background-geolocation.git" />
<edit-config file="*-Info.plist" mode="merge" target="NSMotionUsageDescription">
<string>Using the accelerometer increases battery-efficiency by intelligently toggling location-tracking only when the device is detected to be moving</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
<string>Photo library is required for storing documents</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
<string>Camera is required for storing documents</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysAndWhenInUseUsageDescription">
<string>Background location-tracking is required for route mapping</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>Location tracking is required for route mapping</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationUsageDescription">
<string>Location tracking is required for route mapping</string>
</edit-config>
<preference name="cordova-background-geolocation-license" value="xxxxxxxxxxx" />
<preference name="cordova-background-geolocation-orderId" value="xxxxxxxxxxxx" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarBackgroundColor" value="#2C3642" />
<preference name="StatusBarStyle" value="blackopaque" />
<preference name="DisallowOverscroll" value="true" />
<plugin name="cordova-plugin-inappbrowser" spec="~1.4.0" />
<plugin name="cordova-plugin-file" spec="^5.0.0" />
<plugin name="cordova-plugin-camera" spec="^4.0.2" />
<plugin name="cordova-android-support-gradle-release" spec="^1.3.0">
<variable name="ANDROID_SUPPORT_VERSION" value="27.+" />
</plugin>
<plugin name="cordova-plugin-sim" spec="~1.3.3" />
<plugin name="cordova-plugin-crosswalk-webview" spec="^2.2.0">
<variable name="XWALK_VERSION" value="23+" />
<variable name="XWALK_LITEVERSION" value="xwalk_core_library_canary:17+" />
<variable name="XWALK_COMMANDLINE" value="--disable-pull-to-refresh-effect" />
<variable name="XWALK_MODE" value="embedded" />
<variable name="XWALK_MULTIPLEAPK" value="true" />
</plugin>
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<engine name="android" spec="^6.3.0" />
<engine name="ios" spec="~4.5.4" />
</widget>
more info:
my cordova version is 8.0.0
Installed platforms:
Installed platforms:
android 6.3.0
ios 4.5.4
My www folder structure screen shots:
here are my js folder content:
The problem is you have the whole cordova-ios library code inside your js folder. As you have all cordova-ios code, it also contain the tests, which includes the dummyplugin test, which has the invalid custom frameworks that don't pass Apple validation.
You don't have to add it, neither cordova-android or any of the plugins and libs you have there. For now remove the whole cordova-ios folder and build your app again.
The needed cordova-ios code and the plugins code is generated by cordova prepare command and copied to the proper appName/platforms/ios/www folder.
I am using windows 10. When i am developing an android and ios app using phone gap. I am building apk and ipa from http://build.phonegap.com . The android app work as fine and showing custom icon and splash screen but in ios it is not showing custom icon and splash screen. In ios application the icon and splash screen are showing default cordova image. How to solve this problem. My source code is shown below.
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.faz.lp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
<name>LP</name>
<description>LP</description>
<author href="http://phonegap.com" email="support#phonegap.com"></author>
<content src="index.html" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-minSdkVersion" value="14" />
<plugin name="cordova-plugin-battery-status" source="npm" spec="~1.1.1" />
<plugin name="cordova-plugin-camera" source="npm" spec="~2.1.1" />
<plugin name="cordova-plugin-media-capture" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-console" source="npm" spec="~1.0.2" />
<plugin name="cordova-plugin-contacts" source="npm" spec="~2.0.1" />
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" />
<plugin name="cordova-plugin-device-motion" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-device-orientation" source="npm" spec="~1.0.2" />
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-file" source="npm" spec="~4.1.1" />
<plugin name="cordova-plugin-file-transfer" source="npm" spec="~1.5.0" />
<plugin name="cordova-plugin-geolocation" source="npm" spec="~2.1.0" />
<plugin name="cordova-plugin-globalization" source="npm" spec="~1.0.3" />
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="~1.3.0" />
<plugin name="cordova-plugin-media" source="npm" spec="~2.2.0" />
<plugin name="cordova-plugin-network-information" source="npm" spec="~1.2.0" />
<plugin name="cordova-plugin-splashscreen" source="npm" spec="~3.2.1" />
<plugin name="cordova-plugin-statusbar" source="npm" spec="~2.1.2" />
<plugin name="cordova-plugin-vibration" source="npm" spec="~2.1.0" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="~1.2.1" />
<plugin name="cordova-plugin-splashscreen" source="npm" />
<splash src="splash.png" />
<preference name="SplashScreenDelay" value="25000" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="ShowSplashScreenSpinner" value="false" />
<platform name="android">
<icon density="ldpi" src="www/res/icon/android/drawable-ldpi-icon.png" />
<icon density="mdpi" src="www/res/icon/android/drawable-mdpi-icon.png" />
<icon density="hdpi" src="www/res/icon/android/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="www/res/icon/android/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="www/res/icon/android/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="www/res/icon/android/drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="www/res/screen/android/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="www/res/screen/android/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="www/res/screen/android/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="www/res/screen/android/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="www/res/screen/android/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="www/res/screen/android/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="www/res/screen/android/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="www/res/screen/android/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="www/res/screen/android/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="www/res/screen/android/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="www/res/screen/android/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="www/res/screen/android/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<icon height="57" platform="ios" src="www/res/icon/ios/icon.png"/>
<icon height="114" platform="ios" src="www/res/icon/ios/icon#2x.png"/>
<icon height="40" platform="ios" src="www/res/icon/ios/icon-40.png"/>
<icon height="80" platform="ios" src="www/res/icon/ios/icon-40#2x.png"/>
<icon height="50" platform="ios" src="www/res/icon/ios/icon-50.png"/>
<icon height="100" platform="ios" src="www/res/icon/ios/icon-50#2x.png"/>
<icon height="60" platform="ios" src="www/res/icon/ios/icon-60.png"/>
<icon height="120" platform="ios" src="www/res/icon/ios/icon-60#2x.png"/>
<icon height="180" platform="ios" src="www/res/icon/ios/icon-60#3x.png"/>
<icon height="72" platform="ios" src="www/res/icon/ios/icon-72.png"/>
<icon height="144" platform="ios" src="www/res/icon/ios/icon-72#2x.png"/>
<icon height="76" platform="ios" src="www/res/icon/ios/icon-76.png"/>
<icon height="152" platform="ios" src="www/res/icon/ios/icon-76#2x.png"/>
<icon height="29" platform="ios" src="www/res/icon/ios/icon-small.png"/>
<icon height="58" platform="ios" src="www/res/icon/ios/icon-small#2x.png"/>
<icon height="87" platform="ios" src="www/res/icon/ios/icon-small#3x.png"/>
<splash height="1136" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="1334" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="2208" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="1242" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="1536" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="768" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="2048" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="1024" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="960" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
<splash height="480" platform="ios" src="www/res/screen/ios/screen-ipad-landscape.png"/>
</platform>
<platform name="wp8">
<icon height="99" platform="wp8" src="www/res/icon/wp8/ApplicationIcon.png" width="99" />
<icon height="159" platform="wp8" src="www/res/icon/wp8/Background.png" width="159" />
<splash height="1280" platform="wp8" src="www/res/screen/wp8/screen-portrait.jpg" width="768" />
</platform>
<platform name="windows">
<icon height="150" platform="windows" src="www/res/icon/windows/Square150x150Logo.scale-100.png" width="150" />
<icon height="30" platform="windows" src="www/res/icon/windows/Square30x30Logo.scale-100.png" width="30" />
<icon height="50" platform="windows" src="www/res/icon/windows/StoreLogo.scale-100.png" width="50" />
<splash height="300" platform="windows" src="www/res/screen/windows/SplashScreen.scale-100.png" width="620" />
<icon height="120" platform="windows" src="www/res/icon/windows/StoreLogo.scale-240.png" width="120" />
<icon height="44" platform="windows" src="www/res/icon/windows/Square44x44Logo.scale-100.png" width="44" />
<icon height="106" platform="windows" src="www/res/icon/windows/Square44x44Logo.scale-240.png" width="106" />
<icon height="70" platform="windows" src="www/res/icon/windows/Square70x70Logo.scale-100.png" width="70" />
<icon height="71" platform="windows" src="www/res/icon/windows/Square71x71Logo.scale-100.png" width="71" />
<icon height="170" platform="windows" src="www/res/icon/windows/Square71x71Logo.scale-240.png" width="170" />
<icon height="360" platform="windows" src="www/res/icon/windows/Square150x150Logo.scale-240.png" width="360" />
<icon height="310" platform="windows" src="www/res/icon/windows/Square310x310Logo.scale-100.png" width="310" />
<icon height="150" platform="windows" src="www/res/icon/windows/Wide310x150Logo.scale-100.png" width="310" />
<icon height="360" platform="windows" src="www/res/icon/windows/Wide310x150Logo.scale-240.png" width="744" />
<splash height="1920" platform="windows" src="www/res/screen/windows/SplashScreenPhone.scale-240.png" width="1152" />
</platform>
<access origin="tel:*" launch-external="true"/>
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
</widget>
Please open xcode and and images in specified assets. and replace default cordova images