Invalid signature when submitting on Mac App Store - unity3d

I'm developing a game for Mac App Store from Unity in which I have a plugin created in Xcode as .bundle file. I am able to codesign and package my game via terminal but problem appears when I try to submit package via Application Loader. I will try to explain everything thoroughly:
Package gets uploaded on iTunes Connect but at the end I get following warning:
WARNING ITMS-90239: "Invalid
Signature. A sealed resource is
missing or invalid. The binary at path
[Panda Commander Air
Combat.app/Contents/Plugins/InAppPurchase.bundle/Contents/MacOS/InAppPurchase]
contains an 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). 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 can click on "Next" and finish my submit, but this warning must be resolved because I get mail from iTunes Connect with issues that must be corrected:
UNABLE TO SIGN - This package doesn't
meet the current code signing
requirements. For more information,
see the Code Signing and Application
Sandboxing Guide [1] and Technical
Note 2206 [2].
Specifically, codesign generated the
following error:
webelinx.appstore.panda.pkg/Payload/Panda
Commander Air
Combat.app/Contents/Plugins/InAppPurchase.bundle:
unsealed contents present in the
bundle root
Once these issues have been
corrected, you can then redeliver the
corrected binary.
[1]
http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/AboutCS/AboutCS.html
[2]
https://developer.apple.com/library/mac/technotes/tn2206/_index.html
My plugin actually IS signed in Xcode, I've created new bundle ID and distribution provisioning profile for Mac App Store specifically for this plugin and setup everything in Code Signing tab. Code signing identity is 3rd Party Mac Developer Application and appropriate provisioning profile is selected. When I build this bundle it asks me to allow codesigning, and afterwards when I check it with "codesign -dvvv" command in terminal I can see codesign details. If I don't codesign it, I get another warning when I upload my package which says that bundle is not signed at all. I even tried to do a "Clean all", delete "build" directory and rebuild bundle as suggested in warning, but it has no effect, warning appears again.
How can resolve this warning? Am I missing something important or trying to fix things in wrong way?
Any help will be appreciated because I am out of options at the moment.
Thanks in advance!

OK, I solved my problem. I was missing few things and I found solution here: http://forum.unity3d.com/threads/signing-mac-app-on-os-x-mavericks.206762/.
The thing I still had to do was to manually codesign every file in Contents/Frameworks and Contents/Plugins directories inside .app file and to delete all .meta files inside my plugin. After I did these steps, I codesigned once more whole .app file and created a package which I uploaded on iTunes Connect without warning mentioned above.

Related

Application failed codesign verification

When I upload my app to the App store I am facing the issue below:
Application failed codesign verification. The signature was invalid,
or it was not signed with an Apple submission certificate
I did all of the changes below:
cleaning project,
cleaning all,
deleting build directory,
deleting certificates + profiles
and reinstall distribution provisional profile and distribuction certificate
but still I am facing the same problem. What am I missing?
First, check that your certificate is correct/valid. To do this, log in to the iOS Provisioning Portal with your Apple developer account and create a new distribution certificate. Make sure that you specify that you want to store you app on the iOS App Store. Create a certificate for the App Store by clicking the App Store radio button - don't choose "Ad Hoc". After that, download and install the newly created provisioning certificate.
Check that you've done the following:
Set your code-signing identity in the XCode project to use the new provisioning certificate.
Used the certificate for Distribution profile, not just Developer.
Used the "Clean all targets" function in XCode.
Deleted any build folders from your application's directory tree in the Finder.
After that, build and run your application.
For a fuller explanation, see Apple's documentation about this.
For the iOS error "Application failed codesign verification", see Apple's complete list of potential causes at the following URL "How do I resolve the error: Application failed codesign verification?"
I had the same issue and tried all the solutions listed and then some. But it turned out that it was something so simple, I could kick myself! Set your Archive Build Configuration to Release. You can do this by going into PRODUCT -> EDIT SCHEME -> ARCHIVE -> BUILD CONFIGURATION -> SET TO RELEASE.
Good Luck!

uploading binary

I get warning: Application failed codesign verification. The signature was invalid, or it was
not signed with an Apple submission certificate. (-19011) can anyone help me ...ive been stuck
for a month ...also the app goes on my device for testing and i get a file to zip in my build
iphoneos file but when i use the app loader it says: Directory Services reported the following
error: Your Apple ID or password was entered incorrectly. (-20101)...i don't know how this happens when i log in correctly.. please help someone thank you.
When you receive "Directory Services reported the following error: Your Apple ID or password was entered incorrectly. (-20101)" from Application Loader, this means that your username and/or password has changed or it's in correct.
Solution:
1)Open Application Loader.
2)Click Window->Run Setup Wizard (Shift-Command-S).
3)Read the information on below the "Welcome to Application Loader." text
4)Click "Next".
5)Enter your iTunes Connect information (Apple ID and Password). If there are multiple developers on the account, use the Team Lead/Agent account information.
6) Click "Next".
7) If the information is correct you will get "Your iTunes login information has been verified." and if not you will get the same error as before and you will can always go back to re-enter the correct iTunes Connect information (Apple ID and Password).
I hope this helps.
Before doing a build for submitting (Release) to the app store, in Xcode under project properties ensure you have the settings for Release/Distribution selected. Then in the certificate row check you have your distribution certificate selected.
In Organizer check that your certificate is still valid. If not use your web browser and update the distribution certificate under developer.apple.com. THe update certificate takes a few minutes to become available. Back in Xcode use the update in Organizer to load your new certificates. If you get an error logging in then Xcode probably remembers an old or wrong password.
When you have your certificated sorted out, and want to do a build for the store use "Build and Archive" to upload your binary to Apple. The app loader still exists but since Xcode 3.2.something this functionality is included in Xcode
The best solution would be to develop for the Android. However, failing that are you using the Application Loader, not the xCode one which no longer works.
Also have you created your own Provisioning profiles for release and using them when you archive your code into its zip file from within Xcode?

Irritating - The executable was signed with invalid entitlements

I've been trying from last 2 days,tried every solution available online,but all of them failed..
The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
(0xE8008016).
I'm fed up guyz..i've to deploy my App on Ipad(ver3.2). please note that i dun't want to distribute it,so i think i dun need any entitlements.plist files.
Secondly, i've tried deleting all the profiles from my xcode as well as device, download the new provision profile and then tried,still getting the same error.
i've even tried deploying an empty project on Ipad,but still getting the error.
its making me insane.. :#, please help me out, I've to complete my project... :((
Delete all the provisioning profile from system as well device, also delete from the download folder delete the development certificate from the key chain. Start again from the scratch. I had also faced the same problem. May be this can help

Apple's Problematic Provisioning Portal

I have restarted this process about 4 times over the past 3 weeks. I have not succeeded in submitting my app to the store. Please help me! I just started over again tonight, I did it in this order:
Deleted everything referring to the IPhone in my Keychain,
Redownloaded the Distribution Certificate
Created a new app id called: com.myapp
Downloaded the Provision Profile and installed it into XCode.
Please note: I did not install an Entitlements.plist because I was told I didn't need one. Everything is looking good at this point.
Duplicated my "Release" Configuration and renamed "Distribution"
Under the Configuration of "Distribution", Code Signing Identity, I can see my Provision Profile it actually says: IPhone Distribution: My Name (for Application Identifiers: com.myapp)
So at this point at the bottom of the Project Info Window I see this:
The name (“common name”) of a valid code-signing certificate in a keychain within your keychain path. A missing or invalid certificate will cause a build error. [CODE_SIGN_IDENTITY]
So I realize I haven't altered my bundle name for my app, I change it to com.myapp, warning still doesn't go away. I tried adding in my prefix into the Bundle Identifier like this:
5JSF8843kJJ.com.myapp (for example)
But the error still doesn't go away!
After all this I try to Build and Run on my device anyway thinking it may go away. But I get this error:
The iPod “myIpod” doesn’t have the provisioning profile with which the application was signed.
Click “Install and Run” to install the provisioning profile “myprofile” on “myIpod” and continue running “myappname.app”.
Please Help! I need to get this to work!
Thank you for your time.
UPDATE: I have fully tested the app and I am ready to distribute, I am trying to get a successful Build so that I can zip up my .app file and submit it using Application Loader.
You can't run an app using the Distribution certificate or Distribution Build.
You shouldn't duplicate your Release Build until after you get it running and configured exactly as needed, except for the choice of code signing certificate.

iPhone Build Error (Entitlements)

I'm getting this error when trying to build:
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
(0xE8008016).
This is not my first time building apps. This will be my sixth app, so this thing is tripping. I'm making an AppStore distribution build, so I dont need entitlements. I dont have any entitlement files specified in my code signing entitlement. ITS BLANK. For the project info pane and the target info pane, there is absolutely nothing in my code signing entitlements, which is how its supposed to be. Yet I still get this dumb error. Remember, this is NOT an adhoc build, rather it is an AppStore build. What can be the problem??
Do you have multiple versions of Xcode installed (such as one of the betas)? Did you change the install directory after installing your current stable version of Xcode? Xcode installs things for code signing that can break if you either install a new version of Xcode simultaneously, or you rename your /Developer directory.
Also, try checking the console for related error messages.