Error uploading to iOS App Store: ERROR ITMS-9000 "This bundle is invalid" - ios

When we try to upload a new version of our app to Apple's App Store we get the following error in Application Loader:
ERROR ITMS-9000: "This bundle is invalid. New apps and app updates submitted to the App Store
must be built with public (GM) versions of Xcode 5 and iOS 7 SDK. Do not submit apps built with
beta software." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
We are already building with the latest available version of Xcode, 5.1.1 (downloaded from the Mac App Store) and v7.1 of the iOS SDK (which came with Xcode 5.1.1).
Our app is built with Marmalade 7.2.1. We've tried rebuilding all of the EDK extensions and static libraries that our app uses.
What could be going wrong? Is there anything more anyone else can tell us about the error to help us track it down?

Starting May 15, 2014, new apps and app updates submitted to the App Store must be built with Xcode 5.1.1
You have to update your xcode.

Just clean all the things.
Check the developer/distribution certificate and mobile provision profile properly created, if not then revoke them from developer account and create all new one.
Remove all profiles from /Users/yourSystemName/Library/MobileDevice/Provisioning Profiles
Now, Export all certificates and keys from your keychain and Save them as backup for using them again.
Now install your developer/Distribution certificate first and install provisioning profile. And upload your application. This is tested way and should resolve your issue. Thanks.

When Xcode creates an .ipa package, it adds a number of elements to your project's Info.plist.
As our package is created with Marmalade's deployment tool, these elements need to be manually included in an Info.plist that is copied directly (with a much smaller amount of pre-processing) into the final .ipa.
Marmalade includes a standard Info.plist file within its installation for this purpose. However, you can override this, and we had done so by making a copy of their file, and updating it with changes we needed to make.
A later version of Marmalade made some changes to this file, and we hadn't copied these over into our file, and the difference is apparently what was causing the App Store to think that the App was built with an earlier version of Xcode than the version actually used.
The values which differed were DTSDKName, DTSDKBuild, DTXCode, DTXcodeBuild, DTPlatformBuild, and DTCompiler.

Related

Watchkit app showing error during installation - The WatchKit app has an invalid stub executable

I have an app that supports Watchkit. When I run the application onto the iPhone, it builds fine but displays an alert in Xcode "The WatchKit app has an invalid stub executable". I have used the bundle identifier properly and installed the provisioning profiles and certificates properly as well. Any clue on this, please?
Pls note that I am building this project in Xcode 10.3 as the included frameworks are still in Swift 4.2 and couldn't be upgraded to Swift 5.
This was a known issue in Xcode 10 beta where the proposed solution was to clean the build folder and run again. I imagine you've tried that of course, but I have to mention it.
Also ensure you have selected to "Trust this computer" on the Apple Watch. If you haven't done that, then with Xcode open;
a) Connect the iPhone that you have your watch paired to the computer via cable.
b) Restart Apple Watch
c) Accept Trust This Computer when prompted on Apple Watch.
This error is more related to ipa making process than any project settings..
Avoid using older xcodes just to make ipa from the archive created using latest xcode as sometimes we don't have permission to export build.
You can use xcodebuild command to create ipa from archive and resolve this error, but can't make it to appstore as xocdebuild also come with a bug that it doesn't create support directories for watchapp (WatchKitSupport) and swift (SwiftSupport). However with this ipa, application will get installed on Apple Watch without any errors.
Also you may find a valid command which would make valid ipa but other options also have the same issues. Eg xcrun
Solution to this is make this folder structure by yourself and create ipa.
Related links:
1- Binary Rejection - Invalid Watchkit Support
2- How to generate .ipa file from command line with watchkit app
3- Getting error in watch app installation

ITMS-90424: Invalid Swift Support - The SwiftSupport folder is empty. Rebuild your app using the current public (GM) version of Xcode and resubmit it

I'm trying to upload a new version of my app to App Store Connect. However, when I upload to App Store Connect, I get an e-mail with the following error:
ITMS-90424: Invalid Swift Support - The SwiftSupport folder is empty.
Rebuild your app using the current public (GM) version of Xcode and
resubmit it.
There's only one problem with the suggestion - I am using the latest build of Xcode.
This comes after uploading directly to App Store Connect from Xcode. Also, previous research indicates I should export using the "Save for iOS App Store Distribution" option, but this option is no longer listed as an option under "Export."
Having said that, however, I did have to restore my xcodeproj file from a previous Git commit, so maybe that messed something up. What do you suggest I do to solve this error?

Unable to update existing app store app [duplicate]

Previously with Xcode 7.3.1 I was able to build directly over my app store app on my iPad and test the upgrade scenario, which worked perfectly fine. This week I upgraded to Xcode 8 and when I try the exact same approach, I keep getting this upgrade error
"This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed."
I tried multiple solutions posted on this thread and none of them worked. I also don't have a watch app. Just a simple iOS app target.
App installation failed due to application-identifier entitlement
I deleted my certs and provisioning profiles and recreated them and still the same problem. I then went and downloaded Xcode 7.3.1 and tried it again with the exact same problem.
Now I am stuck without being able to fully test my upgrade scenario.
PLEASE HELP !!
I had the same issue while trying to upgrade application.
And here what I've found:
I checked application-identifier entitlements of old app and new app. You can do that by running codesign -d --entitlements :- path/to/AppName.app/AppName or open file "archived-expanded-entitlements.xcent" at path "AppName.app/AppName".
Application-identifier of old app was "1234XXX5X6.com.mycompany.myapp" but in new app it was "1234XXX5X6.com.mycompany.myapp.develop".
Usually I set "Bundle Identifier" directly in Info.plist.
But I didn't know that there is also a "Product Bundle Identifier" property in project Build Settings.
The previous version of app was built with Xcode 7.3.1 and it had following settings:
Info.plist: com.mycompany.myapp
Build Settings: com.mycompany.myapp.develop
application-identifier: 1234XXX5X6.com.mycompany.myapp
The new version was built with Xcode 8.2.1 and it had following settings:
Info.plist: com.mycompany.myapp
Build Settings: com.mycompany.myapp.develop
application-identifier: 1234XXX5X6.com.mycompany.myapp.develop
Seems like new Xcode have different source for application-identifier.
So I just corrected "Product Bundle Identifier" and my problem was solved.
Remove the existing application from the device and Run again.
To fix this just enable "Automatic manage signing" from general tab of project settings.
I had also problem for running app on my device directly from xcode 8. Deleting and generation profile and certificate did not worked for me. But enabling "Automatic manage signing" worked for me.
Hope this helps!
Check this question of mine:
Xcode 8 shows error that provisioning profile doesn't include signing certificate
Here is one solution if you want to upgrade over your existing App Store app without deleting it but your application-identifier entitlement does not match. Upload an archive of your new build to the App Store and then use TestFlight to download it to your device. This is not as quick as building to the device, but it will overwrite your old app with your new build while keeping your old data in place. For (relatively) quicker turn-around testing of your upgrade process once you have a new build available on TestFlight:
Delete your app off of your device (assuming it was a recent build)
Download your app store build and generate some data
Download your TestFlight build, but don't run it
Build your newest build directly to the device
The TestFlight build overwrites the entitlement without deleting the old data, so Xcode happily will install your new build over the TestFlight build, but you are still testing your upgrade process as if you were building directly on top of the App Store version of your app.
I got this from an .ipa generated as a Jenkins artefact. The problem for me was that Jenkins was using a different provisioning profile.
I manually set Jenkins to use the same profile as the updated version that I was trying to install, and it started working.
Select the App Target and click on General, if you select or ticked checkbox automatically manage signing.
Untick this automatically manage signing and select appropriate signing provisioning profile and #Build and run again.
See the below photo.
Solved!! Short answer - delete old app from your iPhone
I went to my iPhone storage and used the search bar to find the offending app(because it wasn’t showing on the app list) and found an old version hidden, deleted it and now it works.
What worked for me was to go (within Xcode) to Window > Devices and Simulators, then select my iOS device and delete the app there. This is detailed in this Medium article.

"Unable to Validate your Application Error" While Uploading a new version of iOS App

I have been trying to upload a new version for my ios App But I always end up receiving this error
"UNABLE TO VALIDATE YOUR APPLICATION,
"The application you have selected does not exist"
From Xcode Archiver.
I followed this question here
Xcode 6.4 The Application You Have Selected Does Not Exist
Which suggests to use Application Loader,
After doing that I ended up getting bunch of errors such as these
ERROR ITMS-90049: "This bundle is invalid. The bundle identifier contains disallowed characters. [See the section of the Application Programming Guide entitled The Application Bundle.]"
ERROR ITMS-90057: "Missing plist key. The Info.plist file is missing the required key: CFBundleShortVersionString."
ERROR ITMS-90056: "This bundle is invalid. The Info.plist file is missing the required key: CFBundleVersion."
The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.
This errors dont make any sense since all the missing keys are already present in my app, along with appropriate bundle ID of my app which has been in the Appstore for an Year now.
Can anybody help me out regarding this,
I seemed to have tried all the solutions I could find, but to no avail, anybody else facing this?
Is this another issue from apples server or maintenance side and I just have to wait a couple of hours before they fix it at thier end??
I was facing the same issue but then i used Application Loader and it worked for me. After validating your app Export your app by selecting option as Save for iOS App Store Deployment and then Just upload your apps ipa using Application Loader.
Workaround Steps Using the Application Loader:
Export your build as a file (Save for iOS App Store Deployment)
Go to Xcode > Open Developer Tool > Application Loader
In Application Loader log in to your account
Select and upload the .ipa file you just exported
Same issue at Xcode 6.4. My workaround.
Rename Xcode 6.4 (Xcode64.app)
Install Xcode 7.1 (Xcode.app)
Build and archive in Xcode 6
Auto launch "Organizer" in Xcode 6 and close
Launch Xcode 7 and Organizer
Submit to App Store
I was with the same issue, Using the Application Loader works for me.
In Organizer, export your app and select the option Save for iOS App Store Deployment I did it and works for me
before that I tried with Save for Ad Hoc Deployment but with no success!
Okay, I was finally able to upload my application heres what was happening, I had used a third party lib., which had an info.plist of its own
this info.plist was the culprit, It didn't had any Bundle Identifier, CFBundleVersion or CFBundleShortVersionString string, so I manually added These 3 keys into that frameworks info.plist and the application got accepted.
Dont know why but this worked, And I was able to upload my app to itunes
Seems to be an issue with Xcode 6.4. Export the ipa and upload it using Application Loader.
Relevant Apple Developer Forum Link
This occurred for me when I accidentally left "Include Bitcode" checkmarked (on by default) in my build despite setting the project to not contain bitcode. Uncheckmarking it resolved this issue.

Upgrade's application-identifier entitlement string does not match installed application -> rejecting upgrade

I have an iOS app that is now around 3 years old. It is signed with an enterprise profile. We have released seven versions of the software, the last time being almost a year ago. Currently we are trying to do a new release but have found that due to the new security rules in iOS8 that iOS 8.1.3 devices and greater cannot upgrade and must delete and reinstall.
In researching I found similar issues for people who are signing the app with a different profile, but our app is being signed with the same profile. The error claims that our old application-identifier contained a wildcard, which I cannot figure out since we have never changed the bundle id(but, in the developer portal our general appId for all our apps is com.company.*).
I have found that if I build both version 1 and version 2 of the app with Xcode 6.4 I can upgrade successfully and if I build both versions of the app with Xcode 5.1 I can upgrade successfully, the problem is when trying to install a version of the app built with Xcode 6.4 over a version built with Xcode 5.1
The error we get when we attempt the upgrade is:
"Upgrade's application-identifier entitlement string (6Q39SSX4QT.com.company.appName) does not match installed application's application-identifier string (6Q39SSX4QT.com.company.*)"
I have seen some references to needing to include an entitlements.plist file in our app, we have a AppName.entitlements plist file, but none of our apps have a entitlements.plist file(and our other apps do not exhibit this problem though they have been upgraded multiple times since Xcode 5.1 released).
Anyone have any ideas?
Thanks!
Open Xcode - > Window -> Devices
Click on your device and remove the app you are trying to install from the installed apps list.
Try running now.
After doing some further reading, I found this answer to be helpful. In my case, I am building via a grunt script so I can modify my archive/sign/package step to insert the entitlements during the codesign step.
If you follow the steps I linked, you will want to make sure your entitlements.plist file contains the wildcard as shown below:
<key>application-identifier</key>
<string>com.company.*</string>
If you are doing the app packaging manually, you may want to look at iResign. This will create the entitlements.plist file for you and inject it while signing your app.
I wish there was better documentation available from Apple on this. I cannot get the same effect in XCode no matter what I specify in my target's Code Entitlements settings.
I have just had this error - it was because I had changed the development team used to sign the app. Ie I used our company's distribution profile to sign the development version and the client's distribution profile to sign a release version.
Check that the team id in the entitlements is the correct team id (printed in the error message) -> then its the installed app that is wrong. Also check that you haven't specified an application-identifier in an entitlements file. I didn't have an entitlements file at all.
In this case simply delete the app on the device and reinstall it fresh.
Chris

Resources