title: Info.plist file for framework missing in cordova app
body: <p>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</p>
  
  <pre><code>Dear Developer,
  
  We identified one or more issues with a recent delivery for your app,  APP_NAME. 
  </code></pre>
  
  <p>Please correct the following issues, then upload again.</p>
  
  <pre><code>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.
  </code></pre>
  
  <p>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.</p>
  
  <p>Thanks in advance :)</p>
  
  <p>my config file content:</p>
  
  <pre><code>&lt;?xml version='1.0' encoding='utf-8'?&gt;
  &lt;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"&gt;
  &lt;name&gt;Doc and Track&lt;/name&gt;
  &lt;description&gt;
      An App for Truckers to use the Doc and Track system
  &lt;/description&gt;
  &lt;author email="email" href="endpoint link"&gt;
      Doc and Track
  &lt;/author&gt;
  &lt;content src="index.html" /&gt;
  &lt;access origin="*" /&gt;
  &lt;allow-intent href="http://*/*" /&gt;
  &lt;allow-intent href="https://*/*" /&gt;
  &lt;allow-intent href="tel:*" /&gt;
  &lt;allow-intent href="sms:*" /&gt;
  &lt;allow-intent href="mailto:*" /&gt;
  &lt;allow-intent href="geo:*" /&gt;
  &lt;preference name="SplashScreen" value="screen" /&gt;
  &lt;platform name="android"&gt;
      &lt;allow-intent href="market:*" /&gt;
      &lt;preference name="AutoHideSplashScreen" value="true" /&gt;
      &lt;preference name="FadeSplashScreen" value="false" /&gt;
      &lt;preference name="SplashScreenDelay" value="1500" /&gt;
      &lt;preference name="SplashShowOnlyFirstTime" value="false" /&gt;
      &lt;splash density="land-hdpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="land-ldpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="land-mdpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="land-xhdpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="port-hdpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="port-ldpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="port-mdpi" src="res/android/screen.9.png" /&gt;
      &lt;splash density="port-xhdpi" src="res/android/screen.9.png" /&gt;
      &lt;icon density="ldpi" src="res/android/icon-ldpi.png" /&gt;
      &lt;icon density="mdpi" src="res/android/icon-mdpi.png" /&gt;
      &lt;icon density="hdpi" src="res/android/icon-hdpi.png" /&gt;
      &lt;icon density="xhdpi" src="res/android/icon-xhdpi.png" /&gt;
      &lt;icon density="xxhdpi" src="res/android/icon-xxhdpi.png" /&gt;
      &lt;icon density="xxxhdpi" src="res/android/icon-xxxhdpi.png" /&gt;
  &lt;/platform&gt;
  &lt;platform name="ios"&gt;
      &lt;allow-intent href="itms:*" /&gt;
      &lt;allow-intent href="itms-apps:*" /&gt;
      &lt;preference name="BackupWebStorage" value="none" /&gt;
      &lt;preference name="deployment-target" value="10.0" /&gt;
      &lt;splash height="480" src="res/ios/screen/Default~iphone.png" width="320" /&gt;
      &lt;splash height="960" src="res/ios/screen/Default@2x~iphone.png" width="640" /&gt;
      &lt;splash height="1024" src="res/ios/screen/Default-Portrait~ipad.png" width="768" /&gt;
      &lt;splash height="2048" src="res/ios/screen/Default-Portrait@2x~ipad.png" width="1536" /&gt;
      &lt;splash height="768" src="res/ios/screen/Default-Landscape~ipad.png" width="1024" /&gt;
      &lt;splash height="1536" src="res/ios/screen/Default-Landscape@2x~ipad.png" width="2048" /&gt;
      &lt;splash height="1136" src="res/ios/screen/Default-568h@2x~iphone.png" width="640" /&gt;
      &lt;splash height="1334" src="res/ios/screen/Default-667h.png" width="750" /&gt;
      &lt;splash height="2208" src="res/ios/screen/Default-736h.png" width="1242" /&gt;
      &lt;splash height="1242" src="res/ios/screen/Default-Landscape-736h.png" width="2208" /&gt;
      &lt;icon height="20" src="res/ios/icon-20.png" width="20" /&gt;
      &lt;icon height="40" src="res/ios/icon-20@2x.png" width="40" /&gt;
      &lt;icon height="180" src="res/ios/icon-60@3x.png" width="180" /&gt;
      &lt;icon height="120" src="res/ios/icon-60@2x.png" width="120" /&gt;
      &lt;icon height="167" src="res/ios/icon-83.5@2x.png" width="167" /&gt;
      &lt;icon height="152" src="res/ios/icon-76@2x.png" width="152" /&gt;
      &lt;icon height="76" src="res/ios/icon-76.png" width="76" /&gt;
      &lt;icon height="80" src="res/ios/icon-40@2x.png" width="80" /&gt;
      &lt;icon height="60" src="res/ios/icon-60.png" width="60" /&gt;
      &lt;icon height="87" src="res/ios/icon-29@3x.png" width="87" /&gt;
      &lt;icon height="58" src="res/ios/icon-29@2x.png" width="58" /&gt;
      &lt;icon height="29" src="res/ios/icon-29.png" width="29" /&gt;
      &lt;icon height="114" src="res/ios/icon-57@2x.png" width="114" /&gt;
      &lt;icon height="57" src="res/ios/icon-57.png" width="57" /&gt;
      &lt;icon height="100" src="res/ios/icon-50@2x.png" width="100" /&gt;
      &lt;icon height="50" src="res/ios/icon-50.png" width="50" /&gt;
      &lt;icon height="144" src="res/ios/icon-72@2x.png" width="144" /&gt;
      &lt;icon height="72" src="res/ios/icon-72.png" width="72" /&gt;
      &lt;icon height="1024" src="res/ios/icon-1024.png" width="1024" /&gt;
  &lt;/platform&gt;
  &lt;plugin name="cordova-plugin-whitelist" spec="1" /&gt;
  &lt;plugin name="cordova-plugin-splashscreen" spec="~3.1.0" /&gt;
  &lt;plugin name="cordova-plugin-file-transfer" spec="~1.5.0" /&gt;
  &lt;plugin name="cordova-plugin-datepicker" spec="~0.9.3" /&gt;
  &lt;plugin name="cordova-plugin-statusbar" spec="~2.1.0" /&gt;
  &lt;plugin name="cordova-plugin-dialogs" spec="~1.2.0" /&gt;
  &lt;plugin name="docandtrack-image-plugin" /&gt;
  &lt;plugin name="com.transistorsoft.cordova.background-geolocation" spec="https://github.com/transistorsoft/cordova-background-geolocation.git" /&gt;
  &lt;edit-config file="*-Info.plist" mode="merge" target="NSMotionUsageDescription"&gt;
      &lt;string&gt;Using the accelerometer increases battery-efficiency by intelligently toggling location-tracking only when the device is detected to be moving&lt;/string&gt;
  &lt;/edit-config&gt;
  &lt;edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription"&gt;
      &lt;string&gt;Photo library is required for storing documents&lt;/string&gt;
  &lt;/edit-config&gt;
  &lt;edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription"&gt;
      &lt;string&gt;Camera is required for storing documents&lt;/string&gt;
  &lt;/edit-config&gt;
  &lt;edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysAndWhenInUseUsageDescription"&gt;
      &lt;string&gt;Background location-tracking is required for route mapping&lt;/string&gt;
  &lt;/edit-config&gt;
  &lt;edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription"&gt;
      &lt;string&gt;Location tracking is required for route mapping&lt;/string&gt;
  &lt;/edit-config&gt;
  &lt;edit-config file="*-Info.plist" mode="merge" target="NSLocationUsageDescription"&gt;
      &lt;string&gt;Location tracking is required for route mapping&lt;/string&gt;
  &lt;/edit-config&gt;
  &lt;preference name="cordova-background-geolocation-license" value="xxxxxxxxxxx" /&gt;
  &lt;preference name="cordova-background-geolocation-orderId" value="xxxxxxxxxxxx" /&gt;
  &lt;preference name="AndroidPersistentFileLocation" value="Compatibility" /&gt;
  &lt;preference name="StatusBarOverlaysWebView" value="false" /&gt;
  &lt;preference name="StatusBarBackgroundColor" value="#2C3642" /&gt;
  &lt;preference name="StatusBarStyle" value="blackopaque" /&gt;
  &lt;preference name="DisallowOverscroll" value="true" /&gt;
  &lt;plugin name="cordova-plugin-inappbrowser" spec="~1.4.0" /&gt;
  &lt;plugin name="cordova-plugin-file" spec="^5.0.0" /&gt;
  &lt;plugin name="cordova-plugin-camera" spec="^4.0.2" /&gt;
  &lt;plugin name="cordova-android-support-gradle-release" spec="^1.3.0"&gt;
      &lt;variable name="ANDROID_SUPPORT_VERSION" value="27.+" /&gt;
  &lt;/plugin&gt;
  &lt;plugin name="cordova-plugin-sim" spec="~1.3.3" /&gt;
  &lt;plugin name="cordova-plugin-crosswalk-webview" spec="^2.2.0"&gt;
      &lt;variable name="XWALK_VERSION" value="23+" /&gt;
      &lt;variable name="XWALK_LITEVERSION" value="xwalk_core_library_canary:17+" /&gt;
      &lt;variable name="XWALK_COMMANDLINE" value="--disable-pull-to-refresh-effect" /&gt;
      &lt;variable name="XWALK_MODE" value="embedded" /&gt;
      &lt;variable name="XWALK_MULTIPLEAPK" value="true" /&gt;
  &lt;/plugin&gt;
  &lt;plugin name="cordova-plugin-device" spec="^2.0.2" /&gt;
  &lt;engine name="android" spec="^6.3.0" /&gt;
  &lt;engine name="ios" spec="~4.5.4" /&gt;
  &lt;/widget&gt;
  </code></pre>
  
  <p>more info:</p>
  
  <p>my cordova version is 8.0.0
  Installed platforms:</p>
  
  <p>Installed platforms:
    android 6.3.0
    ios 4.5.4</p>
  
  <p>My www folder structure screen shots:</p>
  
  <p><a href="https://i.stack.imgur.com/ldGxZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ldGxZ.png" alt="Platform folder structure"></a></p>
  
  <p><a href="https://i.stack.imgur.com/a1LF1.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/a1LF1.png" alt="WWW folder structure"></a></p>
  
  <p>here are my js folder content:</p>
  
  <p><a href="https://i.stack.imgur.com/P2aI7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/P2aI7.png" alt="js folder content 1"></a></p>
  
  <p><a href="https://i.stack.imgur.com/hLRXU.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hLRXU.png" alt="js folder content 2"></a></p>