invalid binary, email received - iphone

I'm trying to upload an app to app store, and I'm getting a lot of trouble.
Now I received this email:
Dear developer,
We have discovered one or more issues with your recent delivery for "usualBike". To process your delivery, the following issues must be corrected:
Invalid Code Signing Entitlements - Your application bundle's signature contains code signing entitlements that are not supported. Please check your Xcode project's code signing entitlements configuration, and remove any unneeded entitlements.
Specifically, key "com.apple.developer.default-data-protection" is not supported.
Invalid Code Signing Entitlements - Your application bundle's signature contains code signing entitlements that are not supported. Please check your Xcode project's code signing entitlements configuration, and remove any unneeded entitlements.
Specifically, key "com.apple.developer.pass-type-identifiers" is not supported.
Once these issues have been corrected, go to the Version Details page and click "Ready to Upload Binary." Continue through the submission process until the app status is "Waiting for Upload." You can then deliver the corrected binary.
Regards,
The App Store team
The second one I found this:
Invalid binary in itunes connect
But i have iOS 5.1

This probably means that you have Data Protection and Passes enabled for your App ID in the iOS provisioning portal. This is not supported for iOS 5.1
You should disable this by:
Going to the iOS provisioning portal
Open the App ID tab
Click configure next to the App ID you're currently using
Unselect the Enable for Passes and Enable for Data Protection options
Redownload the provision for your application and rebuild it using this new provision.

Related

Adding entitlement file

I need to submit my app to the App Store. So before I do this, I validated my application using Xcode's validate process.
When submitting for Validation, it required a entitlement file to be added to the project. I was unable to create this file so I dragged an entitlement file from another project and included in mine. This entitlement file did not contain any data in it (it was an empty file). However when I submitted it to validation through Xcode the validation passed successfully.
What I want to know is, What does a entitlement file do (since the entitlement file included in my project is empty) and will my app get rejected from appStore for dragging and dropping an entitlement file from another project?
According to Apple Reference
Entitlements confer specific capabilities or security permissions to your app.
Specifically
Set entitlement values in order to enable iCloud, push notifications, and App Sandbox (App Sandbox is Mac OS X only). Each entitlement has a default value, which in most cases disables the capability associated with the entitlement. When you set an entitlement, you are overriding the default by providing an appropriate key-value pair
Entitlement file is just a plist file, you can see it as another setting file that include a few highlevel configuration and is essential for code-signing an adhoc build prior to xcode 4.x
Empty entitlement file is valid as XCode will treat empty entitlement file as you want to use all the default value specified by Apple's reference. Leaving an entitlement file in your app project won't cause any harm, unless you specify something that your app is not capable of , i.e. icloud storage. Better to just delete that file if you don't need local distribution. :)
According to Apple Technical Note TN2250 (I recommend you to get rid of the entitlement file)
If you are defining a custom Code Signing Entitlements file within
your Target > Build Settings, you might try removing that
configuration entirely and rebuilding/resubmitting. More often than
not, Code Signing Entitlements are defined unnecessarily. You only
need to specify a custom Code Signing Entitlements file if your
application is utilizing custom keychain access sharing or iCloud.
Otherwise, remove the Code Signing Entitlements configuration from all
build configurations on your Xcode project's Target > Build Settings,
the rebuild and reattempt your submission/validation.
Specifying a code signing entitlements file unnecessarily is the most
likely cause of errors such as -
The app 'Foo' was not installed on the iPhone "foobar's iPhone"
because the entitlements are not valid.
In most cases, those entitlements seen above should be the only
entitlements in your App's Signature. Applications using Apple Push
Notification or iCloud will add a couple entitlements. Otherwise,
extra entitlements than those listed above, or improperly spelled, or
formatted versions of those entitlements will likely result in "failed
codesign verification" preventing upload to the store, or for Ad Hoc
builds produce the iTunes installation error 'the application was not
installed because the entitlements are not valid'.
Please see Reference

Selecting "Enable Entitlements" for iCloud causes codesign error, even with correct distribution provisioning profile

I have updated and rebuilt my app with a new provision profile that was configured with "Enable for iCloud" checkbox selected in the provision portal.
Next, in XCode, for the app project, I selected the box for "Entitlements" in Targets->Summary->Entitlements as shown below to support iCloud. However, as soon as I add this, I am unable to build the application as I get the dreaded
warning: Application failed codesign verification. The signature was invalid, or it was not signed with an iPhone Distribution Certificate. (-19011)
The app builds successfully with NO codesign errors and installs onto hardware with the proper provisioning profile when the "Enable Entitlements" is unchecked. As soon as I check it, it gets the codesign error.
I also tried updating the entitlements file with ABCDEF.com.myapp (with my real iCloud ID and app id) for the com.apple.developer.ubiquity-container-identifiers value.
What am I doing wrong? Any help is greatly appreciated!
Btw, I wrote a blog post with a solution which could be helpful.
You may try to copy and paste the <dict> of key entitlements from your provisioning profile to your.entitlements (a plist) file.
iCloud Gotchas
Finally, I found the solution. It ended up being a Apple Provisioning Portal issue.
Even though I followed these steps:
1. Selected "Enable for iCloud" for the App ID
2. Created(regenerated) a new provision profile that was configured for the respective "Enable for iCloud" app
3. In XCode, for the app project, I selected the box for "Entitlements" in Targets->Summary->Entitlements as shown below to support iCloud.
The build error still persisted. So, I looked at the Prov Prof with an editor and the entitlements were NOT in there even though I just generated a new one.
What I found was after about 1 week, surprise!, if I generated the Prov. Profile now it had the entitlements in it! So, there was a delay before the generation of the PP's would pick up the iCloud entitlements. Also I filed this issue with Apple so they are aware of this strange delay.

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?

Application failed codesign verification. What do I do?

Xcode gives me this warning when I build the app for release.
Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)
Do I need to delete all entries from my keychain and redo getting a certificate, provisioning profile, etc?
I can build and debug on the iPhone and iPad without a problem.
If you know how I can solve this dilemma, please provide exact steps or a way for me to contact you about this.
Thanks
----UPDATE -----
Build Log
Validate build/Release-iphoneos/iApp.app
cd "/Users/iosdeveloper/Documents/Programming/iPad/iApp HD"
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
setenv PRODUCT_TYPE com.apple.product-type.application
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/Validation "/Users/iosdeveloper/Documents/Programming/iPad/iApp HD/build/Release-iphoneos/iApp.app"
warning: Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)
Executable=/Users/iosdeveloper/Documents/Programming/iPad/iApp HD/build/Release-iphoneos/iApp.app/iApp
codesign_wrapper-0.7.10: using Apple CA for profile evaluation
/Users/iosdeveloper/Documents/Programming/iPad/iApp HD/build/Release-iphoneos/iApp.app: valid on disk
/Users/iosdeveloper/Documents/Programming/iPad/iApp HD/build/Release-iphoneos/iApp.app: satisfies its Designated Requirement
test-requirement: failed to satisfy code requirement(s)
codesign_wrapper-0.7.10: failed to execute codesign(1)
- (null)
Here's the checklist I go through when I've hit this:
Clean all targets, exit Xcode, then go drag the build folder from your project to the trash.
Do the Get Info on your project, make sure the Code Signing Entitlements and Code Signing Identity are selected correctly. Do the same for your Targets.
Login to the iOS Provisioning Portal and make sure the Distribution certificate has not expired. Also check the Distribution Provisioning Profile and make sure it is Active. Make sure the Certificate is properly in your Keychain and the Distribution profile is in Xcode Organizer (if you have multiple of the same one, delete all but the correct one and redo step #2).
Look at your Build Results on the failure and identify which profile it is actually using and make sure it is the right one.
You probably need to check what code signing profile is selected in your distribution build properties.
It looks like your target is "Development" but Xcode applied some of distribution settings to it, so the warning simply means your ad-hoc build has no valid AppStore submission certificate. Go to your target settings, choose the Release configuration and uncheck "Validate Built Product" option.
Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)
i am got the Same Warning Message...
I just Changed to iOs Deployment target 4.3 to 3.2.2 its works perfectly .....
Note: you may have to go to XCode's "Project" and select "Edit Active Target (appname)",
which is near the bottom of the list ... in the new pane that opens, select "Build", then
under "Code Signing Identity" select your distribution provision. Note that this seems
to be editing a different thing than "Project" / "Edit Project" (editing "target" instead
of "project"). I found I had to edit both project and target's code signing identities.
I had exactly the same problem. It was due to installing Xcode 4.0.2 and 4.2 preview 3 at the same time. Removed both (through the provided uninstall scripts):
<Xcodedir>/Library/uninstall-devtools --mode=all
Then rebooted and installed 4.0.2 and it works :/
I have found the codesign process a headache - I always shudder when I get am ready to use Ad Hoc distribution to beta test. After the usual round of errors and failed fix attempts I ignored the "application failed codesign" error and sent the build to a beta tester. It worked without issue.
Very frustrating.
In the build log provided in the -UPDATE- section of the original post the root cause of the failed signature verification is expressed with the text:
"test-requirement: code failed to satisfy specified code requirement(s)". That particular flavor of failed signature verification is almost always caused by mistakenly signing your app with an iPhone Developer profile instead of an iPhone Distribution profile.
It can be confirmed with the steps in "How do I verify the certificate that was used to sign my app?". If the certificate "Identity" is "iPhone Developer: YOUR_NAME" instead of "iPhone Distribution: ..." that is the reason for the "Application failed codesign verification" error, and you can resolve it by performing the following steps:
1a). if you have not yet created an App Store Distribution Provisioning Profile yet, that is done on the "Distribution" tab of the "Provisioning" Section of the iOS Portal site.
Note, the "Distribution" tab is only available to Team Members whose role is either "Agent" (the one who signed up for the iOS Developer Program), or "Admin" (those that the Agent grant access to app-distribution capabilities).
1b). if you're fairly certain you have an App Store Distribution Provisioning Profile installed in your Xcode profile library, you can verify it is an App Store profile as well as the App ID associated to it by using the steps in section How do I confirm my Provisioning Profile is for App Store distribution?
2). verify that your Scheme 'Archive' task is mapped to "Release" using the steps in section:
"Creating an Application Archive"
3). check that you have an your App Store provisioning profile assigned to your "Release" Code Signing Identity using the steps in section
"Assigning Provisioning Profiles to Build Configurations".
Note: it's important to make these changes at the Target level Build Settings, versus the Project level ones, as Target settings override Project ones...you can think of the Project level build settings as 'defaults' to populate target settings (and any future targets) with. Also, Ensure the "All" button is depressed in the upper-left corner of Target Build Settings to reveal the "Code Signing Identity" section.
4). retry your Product > Archive.
If the issue persists after the above, I recommend continuing onto Apple's complete list of potential causes of this error at the following URL "How do I resolve the error: Application failed codesign verification?"
My problem was solved when I noticed that I only had a "team" provisioning profile, and the details in iOS Dev Center told me that it was not a profile fit for development because it had no device attached. So I created a second provisioning profile, which let me check the box for my device so that it had a device attached.
Then when validating or submitting the app from the Organizer window (after pressing 'Build and archive'), I first made the mistake of selecting this new profile as the code signing profile. That was wrong. The profile that worked was iPhone Developer.
Good luck!
PS: This whole submission process is a heap of abacadabra. Do you really have to create a zillion distribution profiles, provisioning profiles, etc.? It hasn't encouraged me in any way to better test my app. I already did that before I chose to upload, and clicking a hundred buttons labeled 'Create','Download' and 'Submit' isn't really a quality control process that added anything (well except being forced to buy an iPad and test on that). Who ever said iOS was developer friendly?
My problem was that the Archive scheme did not have Build Configuration of App Store, but of Release. To change this, go to Product -> Edit scheme, select Archive on left side and change Build Configuration to App Store. I am assuming the code signing is configured properly (with distribution certificate).
You probably created a new certificate without refreshing the provisioning profiles
Create your iOS Distribution Provisioning Profile for App Store Distribution
I solved this by deleting the Archive that's not validating from the Organizer, closed and reopened Xcode and built for Archiving again.
I then chose Archive from the drop down menu. After doing that my app passed validation.
Hope that helps.