Recent changes to the validation criteria for Apple App Store submissions have resulted in some applications built using Oracle Mobile Application Framework (MAF) version 2.0.0 being rejected with the following errors:
- ERROR ITMS-9000 "Disallowed paths ("iTunesArtwork") found at: mobile.ipa"
- ERROR ITMS-9000 "Missing plist key. The Info.plist file is missing the required key: CFBundleShortVersionString."
If you experience such errors when submitting your MAF application to the Apple App Store, the easiest solution is to upgrade to Oracle Mobile Application Framework version 2.0.1 using Check for Updates in either JDeveloper or Eclipse, then re-deploy your app.
If for some reason you are unable to upgrade to MAF version 2.0.1, you can follow these steps as a workaround:
- Open your app in JDeveloper and deploy to an iOS Distribution Package. Make sure the deployment profile specifies Release mode.
- Locate the {app workspace}/deploy/{deployment profile}/temporary_xcode_project/ directory and the Oracle_ADFmc_Container_Template-Info.plist file within it.
- Open this file with Xcode.app and in the "Information Property List" add a new entry for "Bundle versions string, short". Set the value to the same value as the "Bundle version" property.
- Return to JDeveloper and redeploy your application using the same deployment profile.
- Locate the .ipa file that was generated at: {app workspace}/deploy/{deployment profile}/{app name}.ipa.
- Open this file using 7-zip, or a similar archive utility that enables you to make in-situ modifications to the archive file, and remove the iTunesArtwork file.
If you prefer to use Eclipse, the same steps apply, but with a few differences:
- Open your app in Eclipse and run with a "Package For iOS AppStore" deploy target.
- Locate the {app workspace}/.main.ios/build/release/temporary_xcode_project/ directory and theOracle_ADFmc_Container_Template-Info.plist file within it.
- Open this file with Xcode.app and in the "Information Property List" add a new entry for "Bundle versions string, short". Set the value to the same value as the "Bundle version" property.
- Return to OEPE and run your application using the same deploy target.
- Locate the .ipa file that was generated at: {app workspace}/{app name}.ipa.
- Open this file using 7-zip, or a similar archive utility that enables you to make in-situ modifications to the archive file, and remove the iTunesArtwork file.
The resulting .ipa file should satisfy the Apple App Store validation criteria and allow you to upload your application successfully.