Why does my itunes submission fail with "Invalid Signature" error? - xcode

I am trying to submit an iOS app, but it fails showing "Invalid binary" in iTunes connect, and the submission feedback email shows:
Invalid Signature - Make sure you have signed your application with a
distribution certificate, not an ad hoc certificate or a development
certificate. Verify that the code signing settings in Xcode are
correct at the target level (which override any values at the project
level). Additionally, make sure the bundle you are uploading was built
using a Release target in Xcode, not a Simulator target. If you are
certain your code signing settings are correct, choose "Clean All" in
Xcode, delete the "build" directory in the Finder, and rebuild your
release target.
I am certain that I have used a distribution certificate.
I have ran the command codesign -d -vvvv /path/to/app.app and it showed Authority=iPhone Distribution: Company Name Inc (ABC1234) which is indeed a distribution certificate.
I used Xcode's application loader for the submission.
I also tried Xcode's Organizer - Archives to validate and submit the app. It passed validation (!) and then iTunes connect still decides it is an invalid binary with an invalid signature.
I should mention that I am using Xamarin, but I doubt that this is a Xamarin-related issue.

Related

Mac app validation fails due to entitlements issue

I am trying to distribute a version of my Mac app outside the Mac App Store. I have duplicated my target, signed it with "Developer ID", removed iCloud capabilities, created a new entitlements file in which I removed the iCloud and APS entitlements and referenced this in the new target. The target builds and archives just fine, but when I attempt to validate it using "Validate a Developer ID-signed Application", I run into an error:
Just before the validation step, there is this screen:
So the app bundle has the correct number of entitlements, but the "A" folders are showing a different number, and do indeed contain the com.apple.developer.aps-environment entitlement. Where is this coming from, why is it different from the app's specified entitlements file, and how do I go about editing it?
EDIT: adding target's code-signing settings in Xcode, if that helps:
have you checked your app before=hand with using :
spctl -v -a ./myPath/To/MyApp
-v = verbosity
and -a = assess
That will check pretty much most things before presenting it to Apple.
On top of that, have you checked that your signing settings are correct?
Could you post the settings to us so we could see?
Cheers,
A

How to build IPA for distribution with TestFlight with XCode 5?

In XCode 5(.1.1) how to I get an IPA for distribution via TestFlight?
I set the code signing identity and provisioning profiles for the release to my distribution profile
I build the archive (Select iOS Device from the menu, then Product>Archive), which succeeds.
I select the archive in the organizer and click "Distribute..."
I choose "Save for Enterprise or Ad Hoc Deployment
I choose my distribution profile (same as in 1 above)
I click export.
XCode gives an error message
Code signing operation failed
Check that the identity you selected is valid.
What should I do?
Update:
I deleted my certificates, app ids, and provisioning profiles from the apple dev center, and from my keychain access (locally).
I recreated the certificates, app id, and ad hoc provisioning profile.
I synced my info into XCode from the dev center
I updated the code signing identity and provisioning profile build settings for the project and the target to use the new distribution provisioning profile.
I archived the project again.
I clicked distribute in the archive organizer
i chose ad hoc
i chose my new ad hoc distribution profile (from above)
I get the same error
Code signing operation failed
Check that the identity you selected is valid.
(#mohacs suggestion) When I try to validate the archive, I get
No application records were found.
Applications must be ready for upload on iTunes Connect before they can be validated or submitted from within Xcode.
(#threeve suggestion) When I read on Code signing fails for Cordova app (using XCode 5.1.1 and Cordova 3.4.1-0.1.0) to check the (System) Console (thanks #shedd), I am not sure where to look, but under "System Log Queries," I looked in "All Messages," and I see no messages during my attempt to "Distribute".
Thanks to #shedd and #threeve https://stackoverflow.com/a/25212574/1449799 THE ISSUES IS FIXED! Despite being unable to find any error messages in the Console, from www, I removed Gruntfile.js, karma-e2e.conf.js, karma.conf.js, and the entire node_modules directory.

"Profile" is a valid identity. However, you do not have the associated package identity. Developer profile from a different mac can be imported

I am trying to submit my mac app to mac app store. Bust I'm unable to code sign the build properly.
I have create a distribution certificate in Develop Certificate utility and also I have created a production profile.
I have imported the certificate in my keychain properly with the private key. Also The provision profile is imported successfully in Organizer -> Window.
But When I Archive the project, and validate the iPA to mac app store, I'm getting the error:
**** "Profile" is a valid identity. However, the private key for the associated package identity "Profile" is not installed on this Mac
Some more details about project:
I'm using an external framework and open source project in my project named XMLRPC.
I have set "Skip Install" property of the project to YES.
This is not code sign.
Can you please let me know what is going wrong?
You are missing the installer certificate. You need both the distribution certificate to sign your app and the installer certificate to sign the package installer on submitting to the Mac App Store. Xcode finds the key automatically based on the name of code signing identity, the name is the same but with "Installer" append.
To fix the issue log into the Certificate section of Apple developer. Request a new certificate via the plus button and choose the Mac App Store installer type. Follow the steps to submit a CSR request and then simply download the certificate and drag it over to your keychain.
I got the same warning even though I had the right profiles and code signing identities.
“Profile” is a valid identity. However, you do not have the associated package identity.
I refreshed my code signing identities in Xcode and relaunched Xcode. The warning disappeared afterwards.

I think I just messed up everything in developer portal and

Just as when I was "validating" my app in Xcode organizer, I have got these two messages:
"The Bundle ID Txxxxxxxxxx.com.xxxxxxxx.xxxx defined in your Xcode Project does not match the Bundle ID that you entered for this app in iTunes Connect xxxxxxxxxxx.xxxxx."
and
"Application failed code sign verification. The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate."
Basically, I just wanted to submit an app that has been rejected by Apple again, but I mess up things by changing developer distribution, provisioning profiles, in fact, I don't even know when I did with the whole uploading process. I am very new to developing, please some experts suggest me what to do will be the best. I will be checking back frequently. Thanks.

Before signing a mac app and uploading it to the app store

I've been dealing with an issue for a while. The issue is that when I submit my mac app to the app store I'm always getting invalid binary and they are saying it's because of an invalid signature. And that I should make sure it's signed with the installer certificate which it is.
Here is the complete message from them:
Dear Developer,
We have discovered one or more issues with your recent binary
submission for "Mini Week". The following issues will need to be
corrected in order for your application to proceed to review:
Invalid Signature - This error occurs when you have signed your app's
installer incorrectly. There are two certs required for this process:
the "3rd Party Mac Developer Application" cert and the "3rd Party Mac
Developer Installer" cert. When signing your package, you need to
ensure that you are using the Installer cert to sign your package.
Ensure that you are specifying this cert when submitting your app via
the Xcode Organizer or when running productbuild from the command
line.
Once you have corrected these issues, go to the app's version details
page (found in the Manage Your Applications module of iTunes Connect)
and click Ready to Submit Binary. Proceed through the submission
process until the app's status is Waiting for Upload. You can then use
Application Loader to upload the corrected binary.
Regards,
The iTunes Store Team
I've revoked and reinstalled my certificates and development providing profile but that doesn't seem to help so I'm assuming that's not the issue.
Is there something else that could cause this? Maybe I need to make sure something is correct in my build settings or something like that? But if so what? :)
Thank you in advance!
Actually, the signing process does not happen when you submit the app from Code Organizer. Conversely, it may happen when you build your app for deployment, but only if you selected the appropriate cert on the "Code Signing Identity" in the target build settings.
Note that you could also manually sign an existing app via command line:
codesign -s "<name of your signing cert>" -fv "<path/to/your/app/bundle>" -o kill,hard
where <name of your signing cert> is the canonical name of your 3rd Party Mac Developer Installer cert. The optional -o kill,hard enforces the code signature for the OS to allow user to launch the application: if you omit this option, an user could open the app bundle, delete the code sign folder, and copy the app on a different machine. With this option, your app bundle will only launch on the authorized machine, and will not run when the signature folder is not present.

Resources