While upgrading an existing app, I'm getting the notorious:
"The binary you uploaded was invalid. The signature was invalid, or it
was not signed with an Apple submission certificate."
I believe it is due to the fact that I am using the wrong App ID. I forgot the one I used in the original app. Is there a way to determine the original App ID? I now using xcode 4 the original app was done back in iOS 3.0 days.
If the app is available on from the store or if you still have the bundle you submitted open it up and find the binary. On the binary run
strings - appBinary | grep -A 1 application-identifier
this will show you the appID that was used.
Incidentally this didn't completely solve my problem. However closely examining the strings on the binary I was trying to submit revealed the app was being signed by my developer cert and not my distribution cert (despite the xcode settings) there fore I changed all builds to use my distribution cert's and it then worked.
Related
I am trying to upload a signed ipa file to the app store but I keep receiving an error message saying:
ITMS-90035: Invalid Signature - A sealed resource is missing or invalid. The file at path [Inuttut.app/Inuttut] is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate.
I'm building the app with Cordova/Ionic 3. I have a valid Distribution signing certificate and provisioning profile for the app. I have triple checked that the bundle id is correct, and I have also set the Xcode build to use the legacy build.
One thing that has me wondering is that when I'm in Xcode and select "Automatically manage signing" it sets my signing certificate to iPhone Developer instead of iPhone Distribution. Signing the app this way and uploading it produces the same error as unchecking "Automatically manage signing" and manually selecting the iPhone Distribution certificate.
I found the problem. Frustratingly, it had nothing to do with my distribution certificate or anything like that, so kudos to Apple for the wild goose chase. It was simply because I have some assets which have non-ASCII characters in the filename. This is exactly the kind of linguistic bias that makes developing software for non European languages difficult. In any case, I recommend looking for any files like that - hopefully my pain and suffering over the past few days will help somebody else.
P.S contacting Apple directly was a fruitless and infuriating experience, so don't bother.
I have the same problem, and fix by suggestion in your answer. But I want to provide some more detail to make it more clear
For me this problem was fixed by changing Product Name from our local unicode name to ascii english name
Keep in mind that Product Name differs from Display Name which is displayed below app icon as your app name. So don't worry about changing Product Name requires change your app name, just choose an ascii name and error gone
I just got this warning when submit my app to app store, it is just warning, not error. This app was transferred from another developer account to my account before, so the prefix of the App ID is changed.. I think this should be unavoidable, but since I got this warning, what does it affect my app actually? What Keychain access would be lost?
Have you transferred the app from another developer account to your one? The previous provisioning ID will obviously be different.
UPDATE - For clarification
I have noticed that this answer is getting a lot of views so I will just edit it to include my further explanation from the comments below.
Basically the previous version of your application will NO longer be able to access keychain in order to save secure strings such as passwords (if it contains this functionality). This is because the distribution/provisioning profile it was signed with contains a different ID than the one you are using in your new distribution/provisioning profile because you have transferred your app from a previous account to your new one.
However any NEW versions of your app which are signed with the latest distribution/provisioning profile WILL be able to access keychain as normal in order to save secure data if they need this functionality because they are signed with a distribution/provisioning profile which contains the latest App ID for that app.
The warning informs you that your updated app will not be able to access items previously saved in the keychain. The old version of your app can still access and store items in the keychain, just like the new version. However the two versions cannot share information in the keychain.
In summary, all data saved in the keychain will be lost once a user updates to the new version. All information stored in UIPasteboard will also be lost.
You can see this message if:
The app was transferred to your account and you are updating it for the first time. In this case there is nothing you can do to prevent the warning (and side effects).
Your app was added to iTunes Connect before June 2011 and you recently updated the provisioning profile used by the app. Either your old provisioning profile was using a wildcard (*) App ID and the new one is now using a specific App ID, or the opposite (less likely). In the later case you can switch back and avoid the warning (choose the correct provisioning profile in Xcode). In the other case, chances are your app needs access to services like Game Center, Push Notifications (or anything that a wildcard App ID will not let you use) and you cannot avoid the warning.
If you want more details, the warning is related to the fact that App ID prefixes are attributed by Apple and cannot be changed. Check the "App IDs" section in Apple's "Certificate, Identifiers & Profiles" page (https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action - you need to sign in), press on an ID and look at the "Prefix" field. You can also check Apple's Technical Note 2311 https://developer.apple.com/library/ios/technotes/tn2311/_index.html
Lastly, you might thing you could avoid the warning by changing the Keychain Access Groups (keychain-access-groups) field of your provisioning profile. This will not work as Apple will not let you have different prefixes for the App ID and for the Keychain Access Groups.
As of the stricter security in iOS 8.1.3, this is much more serious than the warning suggests; see https://developer.apple.com/library/ios/technotes/tn2319/_index.html#//apple_ref/doc/uid/DTS40013778-CH1-ERRORMESSAGES-UPGRADE_S_APPLICATION_IDENTIFIER_DOES_NOT_MATCH_THE_INSTALLED_APP. It seems like the mismatch causes a failure to upgrade to the new version. When I try to update via Xcode, it fails with an error to the device console like that in the Tech Note: “Upgrade's application-identifier entitlement string [....] does not match installed application's application-identifier string [....]; rejecting upgrade.” Trying to update via iTunes seems to fail silently.
I hope that the answer is simply “this error is simply an indication that Xcode has chosen the wrong provisioning profile,” verified as in https://developer.apple.com/library/ios/technotes/tn2318/_index.html#//apple_ref/doc/uid/DTS40013777-CH1-TNTAG65. But I last submitted my app many Xcode versions ago, and finding the right one may be a challenge.
Note the phrasing “Xcode has chosen the wrong provisioning profile”; to make sure that it chose the profile you thought you chose, click on the arrow next to the chosen profile’s truncated name in the archive verification dialog. To double-check this, submit to the App Store with a known error (I inadvertently used a missing icon), so that you see whether the warning appears.
As described in this SO entry, I am getting errors in iOS app Application Uploader.
These are the values I have:
in KeyChain I have this certificate:
iPhone Distribution: ExampleCompany (DistCertificateID)
In my developer.apple.com account I have defined app:
Name: LongReadableName
Prefix: DistCertificateID
ID: com.example.*
Name: Xcode iOS Wildcard App ID
Prefix: DistCertificateID
ID: *
These are the errors I am getting:
This bundle is invalid. The application-identifier entitlement is not
formatted correctly; it should contain your 10-character App ID Seed,
followed by a dot, followed by your bundle identifier:
0000000000.appname
and
The Bundle ID DistCertificateID.appname defined in your Xcode Project
does not match the Bundle ID that you entered for this app in iTunes
Connect appname.
Above has let me to conclude I possible submitted the app incorrectly (?) to iTunesConnect since that is the only conclusion that makes any sense to me.
(For reference, and if I understood everything correctly, I believe both the specific and wildcard app ID is appropriate for me since I do not need to use inapp-purchases or anything like that.)
When submiting an app in iTunesConnect I can choose between
Xcode iOS Wildcard App ID - *****
LongReadableName - com.example.*
I am completely lost on how I can ever choose a BundleID / BundleID Suffix that obeys both what is written in iTunesConnect (?) and the errors I am getting in Application Uploader right now. Could anyone point me to values I could use that would not collide with Application Uploader requirements?
...
Newest update #1
I decided to drop using wildcard app IDs since I can see that has caused other people problems. Hence I chose the other option in iTunesConnect resulting it in showing me BundleID as being com.example.appname. I then made sure 1) my provisioning for distribution used DistCertificateID.com.example.* 2) to set CFBunldeIdentifier (in Delphi) as same shown in iTunesConnect. I then built and deployed followed by submitting it to Application Loader. That resulted in error message:
The Bundle ID com.example.appname defined in your Xcode Project
does not match the Bundle ID that you entered for this app in iTunes
Connect com.example.appname.
As you can see, the bundle ID is now the same, but still it complains. I do not understand why :(
Newest update #2
I actually made a small typo error last night when I tried above. Guess I was too tired. Above solution works! (I will make it an answer.)
Ditching the wildcard app ID worked for me. Hence I chose the other option in iTunesConnect resulting it in showing me BundleID as being com.example.appname. I then made sure 1) my provisioning for distribution used DistCertificateID.com.example.* 2) to set CFBunldeIdentifier (in Delphi) as same shown in iTunesConnect. I then built and deployed followed by submitting it to Application Loader.
This is specific to Trigger.io.
When trying to upload my application through Application Loader, I am getting the error: "Application failed codesign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate."
I'm very certain, I'm using the correct certificate (i.e. the distribution one, and not the development one). Actually, I'm 100% sure I'm using the right certificate.
That leaves me with signature was invalid or contains disallowed entitlements.
Has anyone encountered this while trying to upload an IPA created through Trigger.io?
I have the latest Xcode & Xcode command line tools on my machine. I am getting this error when I create builds on both Windows and Mac OS.
Any help would be appreciated.
NOTE: While I love Trigger.io, I'm about ready to abandon it due to the hassles I'm running into trying to upload my app.
I think the root cause here was that I was using an incorrect version of XCode (and Application Loader), that had me trashing with provisioning profiles, App Ids, and certificates.
Via the iOS Provisioning Portal, I ensured that the distribution provisioning profile was active, I was using a non-wildcard App ID, and that the distribution certificate was active. Once I cleaned house, and recreated everything, it finally worked.
I do think that I only saw this problem because I was using the wrong version of XCode and Application Loader.
I got this issue when accidentally archiving using an iPhone Developer code signing identity, instead of using iPhone Distribution.
I.e. exactly as the message says, I did not use a distrib cert.
I'm finally at a point where I want to export my application for the App Store, but now I'm getting a "This bundle is invalid. The application-identifier is not formatted correctly; it should contain your 10-character App ID Seed, followed by a dot, followed by your bundle identifier: .*"
I'm using Trigger.io to wrap my application, however the only documentation I can find on this error is to do with changing things in xcode, or in the plist file (which I don't know where to find within Trigger on OS X)
Turns out I had the incorrect certificate assigned - I had changed the profile within the certificate on the Developer Portal, but hadn't re-downloaded it. A more detailed messages about what's going on (such as what you're sending and what it's expecting) could have probably fixed this issue a lot sooner.