Ошибка двоичного файла app store connect

When I ran into this issue, my first thought was to search Stack Overflow for solution. I did the search, found several topics. But, unlike my issue, those posters got some clue from the error such as,

  • App Store error: The binary you uploaded was invalid
  • Invalid iPhone Application Binary
  • Uploading Binary iPhone App «The signature was invalid» again again and again

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate

Or this one:

  • «The binary you uploaded was invalid. the file was not a valid zip file» Error message uploading app to iTunes Connect

The binary you upload was invalid. the file was not a valid zip file

Or this one

  • CFBundleVersion in the Info.plist Upload Error

The binary you uploaded was invalid. The key CFBundleVersion in the Info.plist file must contain a higher version than that of the previously uploaded version.

But for me, I got nothing, it just says ERROR ITMS-9000: «The binary you uploaded was invalid»

Enter image description here

I try to resolve this issue by the following attempts, all of them failed

  • Test on simulator make sure the app works … Check!
  • Test on device (iPhone 5S, iOS 7 and iPhone 4s iOS 6) to make sure the app works … Check!
  • Clean and build … Done!
  • Make sure that I’m using distribution profile (not ad hoc, dev) … Check!
  • Redo the whole process of certificate and provisioning profile … Done!
  • Check my code signing identity … Check!
  • Check bundle id, there are matches (Xcode == App ID in Apple Developer == App in iTunes Connect) … Check!
  • App ID case sensitive check …. Check! (lower case, com.companyname.productname)
  • Delete target in project and then create a new one (I have one project, multiple targets) … Done!
  • Delete scheme and then create new one … Done!
  • Check icon size, check loading image size, check pixels per inch … Check!
  • Check Localizable.strings for typo … Check!
  • Delete build foler … Done!
  • Restart Xcode, restart computer … Done!
  • Connect to another wifi router … Done!
  • Submit from my colleague Macbook … Done!
  • Create new App ID, new certificate, new provisioning profile and update iTunes Connect Bundle ID … Done!
  • Take a break for an hour, try again … Done!

I really have no idea what did I do wrong. I’ve been submit app since iOS 4, hundreds of updates. But never ran into anything like this. In fact, I’ve just update another app yesterday which share the same codebase with this one, no issue at all.

Is there a way I can gather more information about «the invalid binary» Xcode is telling me? Or is there anything else I should try?

For everyone who found this topic (18 July 2014), maybe your best shot might be, taking a break for few hours (or a day) and try again.

— Last Update —

It turns out to be Apple Server issue

  • Says, I have an application called «Sample App»
  • This app has an app id of com.tartw45.sampleapp
  • This app use an App Store Distribution profile called «Simple App App Store Distribution Profile»
  • Back to last Friday (18 July 2014), everything seems ok, no indicator of any error but I couldn’t publish the app as I stated above
  • Today (21 July 2014), I tried again with archive from last week, still no success.
  • I decide to redo the archive process and I found that «Simple App App Store Distribution Profile» is no longer valid
  • I login to developer.apple.com and found that «Simple App App Store Distribution Profile» also no longer there in the list of all provisioning profile. **
  • Then I try to create a new provisioning profile with the same name (Simple App App Store Distribution Profile) but there is an error says that this profile is already exist, please choose another name **
  • So, I create a new provisioning profile with slightly different name, refresh the provisioning profile in XCode, archive again and then publish …. Works!

So, It’s definitely Apple Server issue and your provisioning profile (**), it has nothing to do with your XCode version or project setting (if you successfully submitted your app once before running into this issue with no reason). So, anyone who found this topic, please try to validate your provisioning profile and try to publish again.

I’m trying to upload an application to the iPhone App Store, but I get this error message from iTunes Connect:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.


Note: The details of original question have been removed, as this page has turned into a repository for all information about possible causes of that particular error message.

For general information on submitting iPhone applications to the App Store, see Steps to upload an iPhone application to the AppStore.

1

It’s been my experience that Xcode occasionally gets confused about which signing certificate to use. I got into the habit of quitting and restarting Xcode after any change to the code signing settings (and doing a clean build) to work around this problem.

logancautrell's user avatar

answered Sep 30, 2008 at 22:20

Mark Bessey's user avatar

2

I just wanted to mention that I too had the problem with zip from the command
line as well. The problem lies in the way it handles symlinks by default. Using:

zip -y -r myapp.zip myapp.app

Solved that problem.

0

I had the same issue and solved it this way:

The property certificates were installed on my development machine and mobileprovision.embedded was included in the distribution archive. After an hour or so of Googling and digging I found the source the error. Inside Xcode I had copied the Release configuration and created a new Distribution configuration and then changed the signing identity to my distribution certificate. However, even though it was updated in the GUI the project file was not updated correctly.

If you come across the same error, look in your [ProjectName].xcodeproj directory for the project.pbxproj file and open it in your favorite editor. Look for the Distribution section. My broken one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

You can see the signing identity and provisioning profile are incorrect in the second section. Edit it to match the first section, rebuild, and you should be good to go. The final one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids changed to protect the innocent

Same problem, different solution.

In my case, I was compressing the file using zip -r myapp.zip myapp.app
Turns out, the zip command screwed the bundle. Compressing it from the finder made it work.

3

I had the same issue and after trying several things — I removed the .plist entitlements from the Code Signing Entitlements (just left it blank) and it built fine and uploaded FINALLY.

Good luck all :-D

1

Another data point: for a while, my app went through. Now I’ve added support for in-app purchases, and suddenly it fails with an «Invalid binary/invalid signature» problem. Upon careful looking, I found out that the value of application-identifier in the entitlements plist file was off.

This, most likely, had to do with the fact that I’ve replaced the provisioning profile from a wildcarded one to a app-specific one (required for in-app purchases). The wrong app ID qualified under the old profile. It did not match the app ID in the info.plist, but apparently iTunes forgave that.

So, to recap:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

is OK, while

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

causes «Invalid binary».

I had the same problem aswell, when building I noticed the provisioning wasn’t added in the build.

The fix for me was to set the build to the iphone device as where I normally use the simulator, but then it won’t include the provisioning profile…

This might be a noob mistake. Normally you can’t build to device, but when you do it for distribution you can.

Well, after repeating the steps several times, I was finally successful in uploading my app.

I don’t know exactly what fixed it, but prior to the successful attempt, I closed Xcode and Firefox and restarted them. I guess one of those apps had some bad juju.

1

Here’s an issue I ran into: I added the binary to Subversion before uploading. Comparessing/zipping the binary then included the hidden .svn directories, which messed up the code signing.

I tried various things after reading various posts including those above. What finally worked for me was starting completely over! I deleted every certificate and provisioning profile associated with my app.

I recreated a new development certificate and a new distribution certificate. I downloaded the intermediate certificate again. Then I recreated both the development profile and the distribution profile.

After installing the three certificates (I noticed the distribution had both private and public keys this time) and the two provisioning profiles (my distribution profile didn’t get flagged as not having a valid certificate!), everything worked.

Once I made the decision to revoke everything and just start over, it only took about 5 minutes to create the new stuff and re-install.

I had a similar issue but in Monotouch. I found that my Release profile was set to use developer certs. It should look like this:
enter image description here

It seems this issue has many causes. Here’s the solution to mine:

This applies to anyone who belongs to multiple development teams (e.g. your own apps, and your companies).

If you building the build with one set of credentials and re-signing it with a different one (e.g. for adhoc/appstore distribution), you must ensure that the build was originally built & signed with credentials belonging to the same iOS development team that the distribution credentials you are re-signing with belong to.

So don’t build with «Indy Dev Inc» credentials then try to deploy with «Company Inc» credentials. Make sure you setup both «Company Inc» dev, and distribution credentials, and use them.

I posted more info about this on my blog: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

1

I had the same problem. I was ready to throw in the towel on this problem but I figured it out when I went to check in my code using Murky. I always skim the diffs on the files that changed before I check in. When doing so this time I noticed that the project.pbxproj file had changed….and in the Distribution section the entry for “PROVISIONING_PROFILE[sdk=iphoneos*]” was blank.

Quiting and restarting Xcode didn’t work for me. Instead, I went into both my project and target settings and changed the code signing to directly select my Distribution profile rather than relying on the auto-select feature. Doing this caused the project.pbxproj file to populate with the correct values even though the auto-select feature supposedly selected the exact same profile that I selected manually.

I need a beer…

After trying all of the other fixes listed here we logged a TSI with Apple. Having followed all the steps in Technical Note TN2250 our problem was caused because a sealed resource was missing or invalid. In our case it was ._.DS_Store.

The «..» is called an Apple Double file, and is the result of copying the Xcode Project folder, *unzipped*, onto and back from a file system that doesn’t properly support HFS+’s ‘resource forks’ (used for code signatures). These extra «..» files result and cause code signing verification failure.

To clean the problematic Apple Double files from your Xcode project folder, run the dot_clean command on your Xcode project’s folder, do a clean build, and then rearchive and reattempt your submission.

dot_clean /the/path/to/xcode/project

Note: You can just drag the project folder into the terminal to automatically populate the path

There is no message when you run the command but the project build might show a warning about the file when you next build. You can ignore this, the app will validate and submit successfully.

Resolved this by cleaning up the myProject.xcodeproj file (right click, open package), the package contained files from co-developer, after deleting these the problem was solved

For what it is worth, I want to add what it was that fixed this issue for me. I had a ? (question-mark) in my app title that was causing the error.

I received an invalid binary, if the app does not use remote push notification, but I left the code for registering push and the callback delegates for registering/receiving remote notification uncommented, even if the code does not get used.

This is recent. My last submission last week was fine. This week, it returns invalid binary. Luckily, there is an email that explains the error.

I was having a similar problem, but I don’t use entitlements.plist. However, after a dozen failed uploads, I checked my info.plist and discovered something. My CFBundleIconFiles array had an empty entry. I removed that and re-submitted, and it was finally accepted!

Seriously, how hard would it be for Apple to expose those kind of validation errors?

Edit: It’s not immediately apparant where the CFBundleIconFiles are because they use a different name. In the project info view, Ctl click and select «Show Raw Keys/Values» and then you will see the references to CFBundleWhatever. In this editor’s case, he was trying to use a non-existent icon=72-@2x.png file.

I tried all other proposed solutions, but nothing helped.

I ended up creating a new Xcode project and copy all my code and resources into it. That did the trick, and my app got placed into the review queue.

I can also recommend Apples technical notes on code signing for debugging/verification.

My two cents:

Download the latest version of the Application Loader. I’ve just updated and now get a different error message.

I just went through this hassle (again) but this time I found that my distribution profile had a status of «Invalid». If you think everything else is right, double-check the status in the portal and renew/re-download anything that isn’t in the Active state.

I received an Invalid Binary after an app upload, with no e-mail followup as to why it failed. I tried doing a couple things at once, and I’m not sure which of the following actually fixed it:

  1. Restarted Macbook Pro
  2. Moved the source code for my project from an NTFS drive to an HFS+ drive and recompiled.

I had a problem with this and the 4.3 GM SDK. One of our apps would not make it past upload received. It turned out to be a provisioning profile issue. I regenerated the app store profile and it worked fine.

My solution involved creating a new App ID. I’m not sure exactly why that fixed it, but I suspect it may have been mismatched Bundle Identifiers — creating the new App ID forced me to make sure my app and iTunes were expecting the same thing.

Another solution:

For me simply setting the ‘Release’ certificates under ‘code signing’ fixed it. They were initially set to ‘Don’t code sign’.

For me the problem was solved by resaving a PNG image with the non-interlaced option. In previous versions interlaced png were allowed, but know this images can cause the invalid binary.

My apple message:
Corrupt Icon File — The icon file iconGQ@2x.png appears to be corrupt. Your icon must not be an interlaced PNG file.

You can see if the PNG is interlaced using the command «file» in the terminal:
Eva-Madrazos-MacBook-Pro-2:GQ 7 integracion ads Eva$ file *.png
Default.png: PNG image data, 320 x 480, 8-bit/color RGB, non-interlaced

Good luck,
Eva

I want to point out the possibility to email Apple and ask them to check their logs. I did just that, after having tried loads of things first. It was necessary to remind them after almost four weeks, but finally they replied and pointed to the exact spot of the issue.

The problem in my case was that I had previously tried other app icons, and a reference to the old image still remained in ‘CFBundleIcons’. I used the drag and drop functionality to set the icon, but I didn’t notice that the old content wasn’t completely cleared before the new reference was added.

To see the faulty reference it was necessary to expand the arrows to view each and every sub element in the plist file. One tips is to right-click in the file and select the option for viewing the raw content. In that way you will not need to expand anything.

uuid is not allowed.
I fixed it by remove all [[UIDevice currentDevice] uniqueIdentifier];

I’m trying to upload an application to the iPhone App Store, but I get this error message from iTunes Connect:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.


Note: The details of original question have been removed, as this page has turned into a repository for all information about possible causes of that particular error message.

For general information on submitting iPhone applications to the App Store, see Steps to upload an iPhone application to the AppStore.

1

It’s been my experience that Xcode occasionally gets confused about which signing certificate to use. I got into the habit of quitting and restarting Xcode after any change to the code signing settings (and doing a clean build) to work around this problem.

logancautrell's user avatar

answered Sep 30, 2008 at 22:20

Mark Bessey's user avatar

2

I just wanted to mention that I too had the problem with zip from the command
line as well. The problem lies in the way it handles symlinks by default. Using:

zip -y -r myapp.zip myapp.app

Solved that problem.

0

I had the same issue and solved it this way:

The property certificates were installed on my development machine and mobileprovision.embedded was included in the distribution archive. After an hour or so of Googling and digging I found the source the error. Inside Xcode I had copied the Release configuration and created a new Distribution configuration and then changed the signing identity to my distribution certificate. However, even though it was updated in the GUI the project file was not updated correctly.

If you come across the same error, look in your [ProjectName].xcodeproj directory for the project.pbxproj file and open it in your favorite editor. Look for the Distribution section. My broken one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

You can see the signing identity and provisioning profile are incorrect in the second section. Edit it to match the first section, rebuild, and you should be good to go. The final one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids changed to protect the innocent

Same problem, different solution.

In my case, I was compressing the file using zip -r myapp.zip myapp.app
Turns out, the zip command screwed the bundle. Compressing it from the finder made it work.

3

I had the same issue and after trying several things — I removed the .plist entitlements from the Code Signing Entitlements (just left it blank) and it built fine and uploaded FINALLY.

Good luck all :-D

1

Another data point: for a while, my app went through. Now I’ve added support for in-app purchases, and suddenly it fails with an «Invalid binary/invalid signature» problem. Upon careful looking, I found out that the value of application-identifier in the entitlements plist file was off.

This, most likely, had to do with the fact that I’ve replaced the provisioning profile from a wildcarded one to a app-specific one (required for in-app purchases). The wrong app ID qualified under the old profile. It did not match the app ID in the info.plist, but apparently iTunes forgave that.

So, to recap:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

is OK, while

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

causes «Invalid binary».

I had the same problem aswell, when building I noticed the provisioning wasn’t added in the build.

The fix for me was to set the build to the iphone device as where I normally use the simulator, but then it won’t include the provisioning profile…

This might be a noob mistake. Normally you can’t build to device, but when you do it for distribution you can.

Well, after repeating the steps several times, I was finally successful in uploading my app.

I don’t know exactly what fixed it, but prior to the successful attempt, I closed Xcode and Firefox and restarted them. I guess one of those apps had some bad juju.

1

Here’s an issue I ran into: I added the binary to Subversion before uploading. Comparessing/zipping the binary then included the hidden .svn directories, which messed up the code signing.

I tried various things after reading various posts including those above. What finally worked for me was starting completely over! I deleted every certificate and provisioning profile associated with my app.

I recreated a new development certificate and a new distribution certificate. I downloaded the intermediate certificate again. Then I recreated both the development profile and the distribution profile.

After installing the three certificates (I noticed the distribution had both private and public keys this time) and the two provisioning profiles (my distribution profile didn’t get flagged as not having a valid certificate!), everything worked.

Once I made the decision to revoke everything and just start over, it only took about 5 minutes to create the new stuff and re-install.

I had a similar issue but in Monotouch. I found that my Release profile was set to use developer certs. It should look like this:
enter image description here

It seems this issue has many causes. Here’s the solution to mine:

This applies to anyone who belongs to multiple development teams (e.g. your own apps, and your companies).

If you building the build with one set of credentials and re-signing it with a different one (e.g. for adhoc/appstore distribution), you must ensure that the build was originally built & signed with credentials belonging to the same iOS development team that the distribution credentials you are re-signing with belong to.

So don’t build with «Indy Dev Inc» credentials then try to deploy with «Company Inc» credentials. Make sure you setup both «Company Inc» dev, and distribution credentials, and use them.

I posted more info about this on my blog: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

1

I had the same problem. I was ready to throw in the towel on this problem but I figured it out when I went to check in my code using Murky. I always skim the diffs on the files that changed before I check in. When doing so this time I noticed that the project.pbxproj file had changed….and in the Distribution section the entry for “PROVISIONING_PROFILE[sdk=iphoneos*]” was blank.

Quiting and restarting Xcode didn’t work for me. Instead, I went into both my project and target settings and changed the code signing to directly select my Distribution profile rather than relying on the auto-select feature. Doing this caused the project.pbxproj file to populate with the correct values even though the auto-select feature supposedly selected the exact same profile that I selected manually.

I need a beer…

After trying all of the other fixes listed here we logged a TSI with Apple. Having followed all the steps in Technical Note TN2250 our problem was caused because a sealed resource was missing or invalid. In our case it was ._.DS_Store.

The «..» is called an Apple Double file, and is the result of copying the Xcode Project folder, *unzipped*, onto and back from a file system that doesn’t properly support HFS+’s ‘resource forks’ (used for code signatures). These extra «..» files result and cause code signing verification failure.

To clean the problematic Apple Double files from your Xcode project folder, run the dot_clean command on your Xcode project’s folder, do a clean build, and then rearchive and reattempt your submission.

dot_clean /the/path/to/xcode/project

Note: You can just drag the project folder into the terminal to automatically populate the path

There is no message when you run the command but the project build might show a warning about the file when you next build. You can ignore this, the app will validate and submit successfully.

Resolved this by cleaning up the myProject.xcodeproj file (right click, open package), the package contained files from co-developer, after deleting these the problem was solved

For what it is worth, I want to add what it was that fixed this issue for me. I had a ? (question-mark) in my app title that was causing the error.

I received an invalid binary, if the app does not use remote push notification, but I left the code for registering push and the callback delegates for registering/receiving remote notification uncommented, even if the code does not get used.

This is recent. My last submission last week was fine. This week, it returns invalid binary. Luckily, there is an email that explains the error.

I was having a similar problem, but I don’t use entitlements.plist. However, after a dozen failed uploads, I checked my info.plist and discovered something. My CFBundleIconFiles array had an empty entry. I removed that and re-submitted, and it was finally accepted!

Seriously, how hard would it be for Apple to expose those kind of validation errors?

Edit: It’s not immediately apparant where the CFBundleIconFiles are because they use a different name. In the project info view, Ctl click and select «Show Raw Keys/Values» and then you will see the references to CFBundleWhatever. In this editor’s case, he was trying to use a non-existent icon=72-@2x.png file.

I tried all other proposed solutions, but nothing helped.

I ended up creating a new Xcode project and copy all my code and resources into it. That did the trick, and my app got placed into the review queue.

I can also recommend Apples technical notes on code signing for debugging/verification.

My two cents:

Download the latest version of the Application Loader. I’ve just updated and now get a different error message.

I just went through this hassle (again) but this time I found that my distribution profile had a status of «Invalid». If you think everything else is right, double-check the status in the portal and renew/re-download anything that isn’t in the Active state.

I received an Invalid Binary after an app upload, with no e-mail followup as to why it failed. I tried doing a couple things at once, and I’m not sure which of the following actually fixed it:

  1. Restarted Macbook Pro
  2. Moved the source code for my project from an NTFS drive to an HFS+ drive and recompiled.

I had a problem with this and the 4.3 GM SDK. One of our apps would not make it past upload received. It turned out to be a provisioning profile issue. I regenerated the app store profile and it worked fine.

My solution involved creating a new App ID. I’m not sure exactly why that fixed it, but I suspect it may have been mismatched Bundle Identifiers — creating the new App ID forced me to make sure my app and iTunes were expecting the same thing.

Another solution:

For me simply setting the ‘Release’ certificates under ‘code signing’ fixed it. They were initially set to ‘Don’t code sign’.

For me the problem was solved by resaving a PNG image with the non-interlaced option. In previous versions interlaced png were allowed, but know this images can cause the invalid binary.

My apple message:
Corrupt Icon File — The icon file iconGQ@2x.png appears to be corrupt. Your icon must not be an interlaced PNG file.

You can see if the PNG is interlaced using the command «file» in the terminal:
Eva-Madrazos-MacBook-Pro-2:GQ 7 integracion ads Eva$ file *.png
Default.png: PNG image data, 320 x 480, 8-bit/color RGB, non-interlaced

Good luck,
Eva

I want to point out the possibility to email Apple and ask them to check their logs. I did just that, after having tried loads of things first. It was necessary to remind them after almost four weeks, but finally they replied and pointed to the exact spot of the issue.

The problem in my case was that I had previously tried other app icons, and a reference to the old image still remained in ‘CFBundleIcons’. I used the drag and drop functionality to set the icon, but I didn’t notice that the old content wasn’t completely cleared before the new reference was added.

To see the faulty reference it was necessary to expand the arrows to view each and every sub element in the plist file. One tips is to right-click in the file and select the option for viewing the raw content. In that way you will not need to expand anything.

uuid is not allowed.
I fixed it by remove all [[UIDevice currentDevice] uniqueIdentifier];

My issue is with uploading the iOS application to the app store. When I go to upload the application it automatically goes through a validation process and stops at the “verifying assets” stage, then shows an error that says “your binary file is invalid.” The error code is ITMS-90680.

Can anyone help with this error?

M--'s user avatar

M—

23.1k7 gold badges57 silver badges92 bronze badges

asked Jun 9, 2017 at 20:41

Brianna Singer's user avatar

You have to do one thing, just add all sizes of the app icon.

or Do:

1) Revoke Distribution Certificate.

2) Launch Keychain Access > Certificates and remove all of the expired Certificates (If you a find few of them)

3) Create a new certificate and install.

For further reference and also this link.

answered Jun 9, 2017 at 20:44

Anurag Sharma's user avatar

Anurag SharmaAnurag Sharma

3,8612 gold badges26 silver badges42 bronze badges

3

Мы наконец-то подошли к отправке нашего первого приложения для iPhone в магазин приложений (или пытаемся это сделать), но я не могу заставить iTunes Connect принять загрузку.

Я попытался использовать как веб-сайт («Загруженный вами двоичный файл недействителен. Подпись недействительна или не была подписана сертификатом отправки Apple»), так и загрузчик приложений («Info.plist не содержит спецификации CFBundleResourceSpecification. «).

После долгого чтения (включая подобных вопросов), повторного чтения и поиска в Google, Могу сказать, что:

  • Я уверен, что идентификатор пакета совпадает с AppID.
  • Существует Icon.png, это PNG-файл размером 57×57 пикселей, и это точное имя в Info.plist.
  • Я занимаюсь сборкой устройства, а не симулятора.
  • Процесс подписания завершается успешно: результаты сборки показывают это, а запуск codesign -vvvv MyApp.app указывает на отсутствие проблем.
  • В пути к ZIP-файлу нет странных символов.
  • Я удалил папку сборки и несколько раз пересобирал двоичный файл.

Верно, что в созданном приложении Info.plist не содержит ключа CFBundleResourceSpecification, но мне совсем не ясно, откуда это значение или что еще мне нужно добавить, чтобы эта работа. (Единственная ссылка, которую я могу найти с помощью поиска Apple, — это некоторая версия для подписи кода примечания… но, как я уже упоминал выше, этап подписания кода, насколько я могу судить, проходит успешно.)

Кто-нибудь сталкивался с какими-либо объяснениями этой проблемы, о которых я еще не упоминал?

РЕДАКТИРОВАТЬ: Вот (слегка отредактированный) результат этапа подписания кода сборки, FWIW:

Скриншот подписи кода http://img70.yfrog.com/img70/8988/codesign.png

7 ответов

Лучший ответ

Проблема, похоже, заключалась в том, что я использовал в своем приложении json-framework, и включив его в качестве дополнительного SDK в соответствии с инструкциями в вики < / а>. Я предполагаю, что XCode запутался из-за наличия> 1 SDK и поэтому не смог найти ResourceRules.plist по умолчанию, как и предполагалось.

Я нашел два решения (ну, во всяком случае, обходные пути):

  1. Используйте параметр сборки «Путь к правилам ресурса подписи кода» (который по умолчанию пуст), чтобы указать путь к файлу, который должен использовать XCode: $(SDKROOT)/ResourceRules.plist. Это работает и кажется достаточно безобидным, но разочаровывает в том смысле, что XCode должен иметь возможность выяснить это самостоятельно. (Я нашел это решение в очень старой проблеме подано на json-framework.)
  2. Не используйте подход SDK. Вместо этого просто включите файлы непосредственно в проект и обновите операторы #import локальными путями. В конечном итоге я выбрал именно такой подход, поскольку мы приняли общее решение объединить все внешние зависимости в сам проект (чтобы другим разработчикам не приходилось настраивать свои машины для начала работы).

Я не уверен, ошибка ли это в XCode или что-то не так с json-framework, но у меня на всякий случай написал о проблеме.

ОБНОВЛЕНИЕ, 30 июня 2010 г .: проблема, которую я зарегистрировал, закрыта, и г-н Браутасет планирует удалить поддержку опции SDK в следующем выпуске (2.3) проекта. Кроме того, код теперь находится на GitHub, хотя страницы кода Google пока существуют.


10

Sixten Otto
30 Июн 2010 в 21:12

Для меня, после проверки всех вещей (кодовый знак, файл значка …), но вы не можете загрузить свое приложение, попробуйте удалить встроенный файл. Не забудьте скопировать файл file.app, чтобы заархивировать свое приложение.


1

Pham Hong Nghiep
17 Дек 2010 в 06:27

Вы уверены, что используете дистрибутив, а не разработку, сертификат и мобильное обеспечение?


0

Ben Gottlieb
2 Фев 2010 в 00:33

Я предполагаю, что вы загружаете файл .zip.

Я только что проверил загруженное мной приложение, и CFBundleResourceSpecification есть только в подписанных версиях (то есть в сборках устройства).


0

David Dunham
3 Фев 2010 в 07:59

Вы собираете / копируете / архивируете что-нибудь из командной строки? В таком случае нужно быть очень осторожным с символическими ссылками. .app поставляется с подкаталогом в качестве символической ссылки на другой, и если вы скопируете его или заархивируете без правильных флагов, он скопирует содержимое на бумажном носителе, что нарушит кодовую подпись.

Это случилось со мной — и хуже всего то, что специальные сборки работают нормально без символической ссылки, поэтому вы не заметите проблемы до сборки магазина приложений.


0

Jesse Beder
3 Фев 2010 в 08:17

Это сообщение может появиться по другой причине (как я только что обнаружил сегодня утром): если в вашем проекте есть несколько Info.plist, Application Uploader может обнаружить «неправильный» Info.plist и запутаться.

Это происходило со мной, потому что автоматизированная часть сборки создавала Info.plist в пакете, внесенном в проект.

Подсказка здесь для решения: http://infinite-sushi.com/2010 / 08 / the-case-of-the-missing-cfbundleresourcespecification /


0

dpjanes
27 Авг 2010 в 15:39

I submitted my app in the App Store. First I validated it, and turns out successful. Then I submitted it and succesfully uploaded to iTunes Connect. After a minute, it says that the file is Invalid binary. I am uploading an update of an existing app which is already published in the App Store. (previous version uploaded by other developer). I tried every solution that I found in google search but no luck.

Verbeia's user avatar

Verbeia

4,4002 gold badges22 silver badges44 bronze badges

asked Nov 12, 2011 at 6:33

janusfidel's user avatar

1

Just for information.

Today I faced the same problem of Invalid Binary while uploading new version of existing application.
I got following email from apple

iPhone 5 Optimization Requirement — Your binary is not optimized for
iPhone 5. As of May 1, all new iPhone apps and app updates
submitted must support the 4-inch display on iPhone 5. All apps must
include a launch image with the -568h size modifier immediately
following the portion of the launch image’s filename.
Launch images must be PNG files and located at the top-level of your
bundle, or provided within each .lproj folder if you localize your
launch images. Learn more about iPhone 5 support and app launch images
by reviewing the iOS Human Interface Guidelines and iOS App
Programming Guide.

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.

Solution:

  1. Added 4inch app screen shots in iTunesconnect meta data
  2. Added Default-568h@2x.png image in my application for iPhone 5

After these changes application successfully submitted.

answered Jun 18, 2013 at 12:35

Irfan DANISH's user avatar

Irfan DANISHIrfan DANISH

8,23712 gold badges42 silver badges67 bronze badges

Need to add arm64

I faced the same problem of Invalid Binary while uploading new version of existing application.

The reason are from February 2015 itself we need to Add arm64 to our app. i added this then my app successfully upload to app store.

answered Feb 9, 2015 at 9:04

PREMKUMAR's user avatar

PREMKUMARPREMKUMAR

8,2938 gold badges27 silver badges51 bronze badges

Try to check the provisioning you made for the itunes store are correct with your application.
Remove the old binary which has been rejected then add the new one.
If you can do try to make fresh provisioning and also check in the xcode as well.
And do check the mode,is that debug or distribution as you need to make the build for distribution.
Hope it man help you.

Cheers
Sanjay

answered Nov 12, 2011 at 11:59

Sabby's user avatar

SabbySabby

2,5862 gold badges27 silver badges41 bronze badges

You cannot submit an app that uses the same bundle ID or the same app name of any app (even the «same» one) submitted by another developer account.

answered Nov 13, 2011 at 3:32

hotpaw2's user avatar

hotpaw2hotpaw2

69.6k14 gold badges90 silver badges152 bronze badges

Make sure you have choosen «App Store» as distribution method in distribution provisioning profile, not «Ad Hoc».

answered Jul 18, 2012 at 2:02

tesmojones's user avatar

tesmojonestesmojones

2,4272 gold badges21 silver badges40 bronze badges

I have faced this issue many times.My app got passed validation and submitted     
successfully to iTunes Connect.But It shows invalid binary in prerelease 
options.I saw one awesome post in Apple discussions and finally solved my 
issue.App bundle id was changed in config file of my web app.I have changed 
old bundle id in config.xml and app uploaded for review.

answered May 28, 2015 at 13:03

SURESH SANKE's user avatar

SURESH SANKESURESH SANKE

1,64517 silver badges34 bronze badges

1

Try using the Application Loader under /Developer/Applications/Utilities. Make sure you have created a New App in iTunesConnect…under Manage Applications, select the application you are going to create an update for… when that loads on the right you will see Add a New Update.

answered Nov 12, 2011 at 6:59

logixologist's user avatar

logixologistlogixologist

3,6744 gold badges28 silver badges46 bronze badges

3

I submitted my app in the App Store. First I validated it, and turns out successful. Then I submitted it and succesfully uploaded to iTunes Connect. After a minute, it says that the file is Invalid binary. I am uploading an update of an existing app which is already published in the App Store. (previous version uploaded by other developer). I tried every solution that I found in google search but no luck.

Verbeia's user avatar

Verbeia

4,4002 gold badges22 silver badges44 bronze badges

asked Nov 12, 2011 at 6:33

janusfidel's user avatar

1

Just for information.

Today I faced the same problem of Invalid Binary while uploading new version of existing application.
I got following email from apple

iPhone 5 Optimization Requirement — Your binary is not optimized for
iPhone 5. As of May 1, all new iPhone apps and app updates
submitted must support the 4-inch display on iPhone 5. All apps must
include a launch image with the -568h size modifier immediately
following the portion of the launch image’s filename.
Launch images must be PNG files and located at the top-level of your
bundle, or provided within each .lproj folder if you localize your
launch images. Learn more about iPhone 5 support and app launch images
by reviewing the iOS Human Interface Guidelines and iOS App
Programming Guide.

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.

Solution:

  1. Added 4inch app screen shots in iTunesconnect meta data
  2. Added Default-568h@2x.png image in my application for iPhone 5

After these changes application successfully submitted.

answered Jun 18, 2013 at 12:35

Irfan DANISH's user avatar

Irfan DANISHIrfan DANISH

8,23712 gold badges42 silver badges67 bronze badges

Need to add arm64

I faced the same problem of Invalid Binary while uploading new version of existing application.

The reason are from February 2015 itself we need to Add arm64 to our app. i added this then my app successfully upload to app store.

answered Feb 9, 2015 at 9:04

PREMKUMAR's user avatar

PREMKUMARPREMKUMAR

8,2938 gold badges27 silver badges51 bronze badges

Try to check the provisioning you made for the itunes store are correct with your application.
Remove the old binary which has been rejected then add the new one.
If you can do try to make fresh provisioning and also check in the xcode as well.
And do check the mode,is that debug or distribution as you need to make the build for distribution.
Hope it man help you.

Cheers
Sanjay

answered Nov 12, 2011 at 11:59

Sabby's user avatar

SabbySabby

2,5862 gold badges27 silver badges41 bronze badges

You cannot submit an app that uses the same bundle ID or the same app name of any app (even the «same» one) submitted by another developer account.

answered Nov 13, 2011 at 3:32

hotpaw2's user avatar

hotpaw2hotpaw2

69.6k14 gold badges90 silver badges152 bronze badges

Make sure you have choosen «App Store» as distribution method in distribution provisioning profile, not «Ad Hoc».

answered Jul 18, 2012 at 2:02

tesmojones's user avatar

tesmojonestesmojones

2,4272 gold badges21 silver badges40 bronze badges

I have faced this issue many times.My app got passed validation and submitted     
successfully to iTunes Connect.But It shows invalid binary in prerelease 
options.I saw one awesome post in Apple discussions and finally solved my 
issue.App bundle id was changed in config file of my web app.I have changed 
old bundle id in config.xml and app uploaded for review.

answered May 28, 2015 at 13:03

SURESH SANKE's user avatar

SURESH SANKESURESH SANKE

1,64517 silver badges34 bronze badges

1

Try using the Application Loader under /Developer/Applications/Utilities. Make sure you have created a New App in iTunesConnect…under Manage Applications, select the application you are going to create an update for… when that loads on the right you will see Add a New Update.

answered Nov 12, 2011 at 6:59

logixologist's user avatar

logixologistlogixologist

3,6744 gold badges28 silver badges46 bronze badges

3

Я пытаюсь загрузить приложение в магазин приложений iPhone, но я получаю это сообщение об ошибке от iTunes Connect:

загруженный вами двоичный файл недействителен. Подпись была недействительной или не была подписана сертификатом Apple submission.


Примечание: детали исходного вопроса были удалены, так как эта страница превратилась в хранилище для всей информации о возможных причинах этой конкретной ошибки сообщение.

общие сведения о подаче приложений для iPhone в App Store см. В разделе шаги для загрузки приложения iPhone в AppStore.

30 ответов


по моему опыту, Xcode иногда путается в том, какой сертификат подписи использовать. У меня вошло в привычку бросать и перезапускать Xcode после любого изменения настроек подписи кода (и делать чистую сборку), чтобы обойти эту проблему.


Я просто хотел упомянуть, что у меня тоже была проблема с zip из команды
линии, а также. Проблема заключается в том, как он обрабатывает символические ссылки по умолчанию. Использование:

zip-y-r myapp.молния приложение.app

решил эту проблему.


у меня была такая же проблема и решил ее таким образом:

сертификаты свойств были установлены на моей машине разработки и mobileprovision.embedded был включен в архив рассылки. Через час или около того поиска и копания я нашел источник ошибки. Внутри Xcode я скопировал конфигурацию выпуска и создал новую конфигурацию распространения, а затем изменил идентификатор подписи на мой сертификат распространения. Однако, несмотря на то, что он был обновлен в GUI файл проекта был обновлен неправильно.

Если вы столкнулись с той же ошибкой, посмотрите в своем [ProjectName].каталог xcodeproj для проекта.pbxproj файл и откройте его в своем любимом редакторе. Ищите раздел распределения. Мой сломанный выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

вы можете увидеть, что идентификатор подписи и профиль подготовки неверны во втором разделе. Отредактируйте его в соответствии с первым разделом, перестройте, и вам должно быть хорошо идти. Последнее выглядело это:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids изменены, чтобы защитить невинных


та же проблема, другое решение.

в моем случае я сжимал файл с помощью zip -r myapp.zip myapp.app
Оказывается, команда zip прикрутила сверток. Сжатие его из искателя заставило его работать.


У меня была такая же проблема, и после нескольких попыток-я удалил.plist права из прав подписи кода (просто оставил его пустым), и он построил штраф и загрузил, наконец.

удачи всем : — D


еще одна точка данных: на некоторое время мое приложение прошло. Теперь я добавил поддержку покупок в приложении, и внезапно он терпит неудачу с проблемой «недопустимая двоичная/недопустимая подпись». При внимательном просмотре я обнаружил, что значение application-identifier в файле entitlements plist отключено.

это, скорее всего, связано с тем, что Я заменил профиль подготовки с wildcarded на app-specific (требуется для покупок в приложении). Неправильный идентификатор приложения квалифицированный по старому профилю. Он не соответствует идентификатору приложения в информации.plist, но, по-видимому, iTunes простил это.

Итак, резюмируем:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

ОК, а

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

вызывает «недопустимый двоичный файл».


У меня была та же проблема, что и при построении, я заметил, что подготовка не была добавлена в сборку.

исправление для меня состояло в том, чтобы установить сборку на устройство iphone, где я обычно использую симулятор, но тогда он не будет включать профиль подготовки…

Это может быть ошибка noob. Обычно вы не можете строить на устройстве, но когда вы делаете это для распространения, вы можете.


Ну, после повторения шагов несколько раз, я, наконец, успешно загрузил свое приложение.

Я не знаю точно, что это исправило, но до успешной попытки я закрыл Xcode и Firefox и перезапустил их. Думаю, в одном из этих приложений был плохой Джуджу.

4

автор: Kristopher Johnson


вот проблема, с которой я столкнулся: я добавил двоичный файл в Subversion перед загрузкой. Comparessing/сжать бинарных затем включаются скрытые .каталоги svn, которые испортили подпись кода.


Я пробовал различные вещи после прочтения различных сообщений, включая те, что выше. Что наконец-то сработало для меня, так это начать все сначала! Я удалил все сертификаты и профили подготовки, связанные с моим приложением.

я воссоздал новый сертификат разработки и новый сертификат распространения. Я снова загрузил промежуточный сертификат. Затем я воссоздал профиль разработки и профиль распространения.

после установки трех сертификатов (I заметил, что в дистрибутиве были как частные, так и открытые ключи на этот раз) и два профиля подготовки (мой профиль распространения не был помечен как не имеющий действительного сертификата!), все работало.

Как только я принял решение отменить все и просто начать все сначала, потребовалось всего около 5 минут, чтобы создать новый материал и переустановить.



У меня была аналогичная проблема, но в Monotouch. Я обнаружил, что мой профиль выпуска настроен на использование сертификатов разработчика. Это должно выглядеть так:
enter image description here

3

автор: BahaiResearch.com


кажется, эта проблема имеет много причин. Вот решение моего:

Это относится ко всем, кто принадлежит к нескольким командам разработчиков (например, ваши собственные приложения и ваши компании).

Если вы создаете сборку с одним набором учетных данных и повторно подписываете ее с другим (например, для распространения adhoc / appstore), вы должны убедитесь, что сборка была первоначально построена и подписана учетными данными, принадлежащими той же команде разработчиков iOS, что учетные данные распространения, которые вы повторно подписываете, принадлежат.

поэтому не создавайте с учетными данными «Indy Dev Inc», а затем попробуйте развернуть с учетными данными» Company Inc». Убедитесь, что вы настроили как «Company Inc» dev, так и учетные данные распространения и используете их.

Я опубликовал больше информации об этом в своем блоге: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/


У меня была та же проблема. Я был готов бросить полотенце на эту проблему, но я понял это, когда я пошел, чтобы проверить свой код с помощью Murky. Я всегда просматриваю различия в файлах, которые изменились, прежде чем регистрироваться. При этом на этот раз я заметил, что проект.pbxproj файл был изменен….и в разделе дистрибутива запись «PROVISIONING_PROFILE[sdk=iphoneos*]» была пустой.

выход и перезапуск Xcode не работали для меня. Вместо этого я вошел в оба моих параметры проекта и цели и изменили подпись кода, чтобы напрямую выбрать мой профиль распространения, а не полагаться на функцию автоматического выбора. Это вызвало проект.файл pbxproj для заполнения правильными значениями, даже если функция автоматического выбора предположительно выбрала тот же профиль, который я выбрал вручную.

Мне нужно пиво…


после попытки всех других исправлений, перечисленных здесь, мы зарегистрировали TSI с Apple. Выполнив все шаги в техническое Примечание TN2250 наша проблема была вызвана тем, что был закрытый ресурс отсутствует или недействителен. В нашем случае это было ._.DS_Store.

The «..»называется двойным файлом Apple и является результатом копирования папки проекта Xcode, * unzipped*, на и обратно из файловой системы, которая должным образом не поддерживает HFS+’s ‘resource forks’ (используется для кода подписывание.) Эти лишние «..»файлы приводят и вызывают сбой проверки подписи кода.

чтобы очистить проблемные двойные файлы Apple из папки проекта Xcode, выполните команду dot_clean в папке проекта Xcode, выполните чистую сборку, а затем повторно выполните архивацию и повторное подключение отправки.

dot_clean /the/path/to/xcode/project

Примечание: Вы можете просто перетащить папку проекта в терминал, чтобы автоматически заполнить путь

нет сообщения, когда вы запускаете команду, но сборка проекта может показать предупреждение о файле при следующей сборке. Вы можете игнорировать это, приложение будет проверять и отправлять успешно.


решил это, очистив myProject.xcodeproj файл (щелкните правой кнопкой мыши, открыть пакет), пакет содержал файлы от со-разработчика, после удаления этих проблема была решена



для чего это стоит, я хочу добавить, что исправила эту проблему для меня. У меня ? (вопросительный знак) в названии моего приложения, которое вызвало ошибку.


Я получил недопустимый двоичный файл, если приложение не использует удаленное push-уведомление, но я оставил код для регистрации push и делегатов обратного вызова для регистрации/получения удаленного уведомления незафиксированным, даже если код не используется.

Это последние. Мое последнее представление на прошлой неделе было в порядке. На этой неделе он возвращает недопустимый двоичный файл. К счастью, есть письмо, которое объясняет ошибки.


У меня была аналогичная проблема, но я не права.файл plist. Однако после дюжины неудачных загрузок я проверил свою информацию.плист и обнаружил что-то. Мой массив CFBundleIconFiles имел пустую запись. Я удалил это и повторно подал, и это было, наконец, принято!

серьезно, насколько сложно было бы Apple разоблачить такие ошибки проверки?

Edit: это не сразу apparant, где CFBundleIconFiles, потому что они используют другой имя. В представлении сведений о проекте Ctl нажмите и выберите «Показать необработанные ключи / значения», а затем вы увидите ссылки на CFBundleWhatever. В случае этого редактора он пытался использовать несуществующий icon=72-@2x.png файл.


мои две копейки:

загрузите последнюю версию загрузчика приложений. Я только что обновил и теперь получаю другое сообщение об ошибке.


Я только что прошел через эту проблему (снова), но на этот раз я обнаружил, что мой профиль распространения имеет статус «недействительный». Если вы считаете, что все остальное правильно, дважды проверьте статус на портале и обновите/повторно загрузите все, что не находится в активном состоянии.


Я получил недопустимый двоичный файл после загрузки приложения, без электронной почты о том, почему это не удалось. Я попытался сделать пару вещей сразу, и я не уверен, какой из следующих фактически исправил его:

  1. Перезапущен Macbook Pro
  2. переместил исходный код моего проекта с диска NTFS на диск HFS+ и перекомпилировал.

У меня была проблема с этим и 4.3 GM SDK. Одно из наших приложений не сделает его мимо полученной загрузки. Это оказалось проблемой профиля подготовки. Я восстановил профиль app store, и он работал нормально.


мое решение включало создание нового идентификатора приложения. Я не уверен, почему это исправило его, но я подозреваю, что это могли быть несоответствующие идентификаторы пакета — создание нового идентификатора приложения заставило меня убедиться, что мое приложение и iTunes ожидали того же.


другое решение:

для меня просто установка сертификатов «Release» под «подписанием кода» исправила это. Первоначально они были настроены на «не кодовый знак».


для меня проблема была решена путем resaving PNG-изображения с опцией non-interlaced. В предыдущих версиях interlaced png были разрешены, но знайте, что эти изображения могут вызвать недопустимый двоичный файл.

мое сообщение apple:
Поврежденный файл значка-файл значка iconGQ@2x.png похоже, она испорчена. Ваш значок не должен быть чересстрочным файлом PNG.

вы можете увидеть, если PNG переплетается с помощью команды «файл» в терминале:
Eva-Madrazos-MacBook-Pro-2: GQ 7 интеграция объявления Eva$ file *.формат PNG
По умолчанию.png: PNG данные изображения, 320 x 480, 8-бит/цвет RGB, не чересстрочный

удачи,
Ева!—1—>


Я хочу указать на возможность электронной почты Apple и попросить их проверить свои журналы. Я так и сделал, предварительно перепробовав кучу вещей. Спустя почти четыре недели пришлось напомнить им об этом, но в конце концов они ответили и указали точное место вопроса.

проблема в моем случае заключалась в том, что я ранее пробовал другие значки приложений, и ссылка на старое изображение все еще оставалась в «CFBundleIcons». Я использовал функцию перетаскивания, чтобы установить значок, но Я не заметил, что старый контент не был полностью очищен до добавления новой ссылки.

чтобы увидеть ошибочную ссылку, необходимо было развернуть стрелки для просмотра каждого подэлемента в файле plist. Один из советов-щелкнуть правой кнопкой мыши по файлу и выбрать опцию для просмотра необработанного содержимого. Таким образом, вам не нужно ничего расширять.


Я пробовал все другие предлагаемые решения, но ничего не помогло.

в итоге я создал новый проект Xcode и скопируйте мой код и ресурсы. Это сделало трюк, и мое приложение было помещено в очередь обзора.

Я также могу порекомендовать яблоки технические примечания по подписанию кода для отладки/проверки.


uuid не допускается.
Я исправил это, удалив все [[UIDevice currentDevice] uniqueIdentifier];


Я пытаюсь загрузить приложение в iPhone App Store, но получаю это сообщение об ошибке из iTunes Connect:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.


Примечание. Детали исходного вопроса были удалены, так как эта страница превратилась в хранилище всей информации о возможных причинах этого конкретного сообщения об ошибке.

Для получения общей информации об отправке приложений iPhone в App Store см. Шаги по загрузке приложения для iPhone в AppStore.

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
34

Итак, повторив эти шаги несколько раз, я наконец успешно загрузил свое приложение.

Я не знаю точно, что это исправило, но перед успешной попыткой я закрыл Xcode и Firefox и перезапустил их. Я предполагаю, что в одном из этих приложений была плохая игра.

По моему опыту, Xcode иногда не понимает, какой сертификат подписи использовать. У меня появилась привычка выходить и перезапускать Xcode после любого изменения настроек подписи кода (и выполнения чистой сборки), чтобы обойти эту проблему.

У меня была такая же проблема, и я решил ее следующим образом:

Сертификаты собственности были установлены на моем компьютере для разработки, и mobileprovision.embedded был включен в архив распространения. Примерно через час поисков в Google и копаний я обнаружил источник ошибки. Внутри Xcode я скопировал конфигурацию выпуска и создал новую конфигурацию распространения, а затем изменил удостоверение подписи на свой сертификат распространения. Однако, несмотря на то, что он был обновлен в графическом интерфейсе, файл проекта не был обновлен правильно.

Если вы столкнулись с той же ошибкой, поищите в каталоге [ProjectName] .xcodeproj файл project.pbxproj и откройте его в своем любимом редакторе. Найдите раздел «Распространение». Мой сломанный выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

Во втором разделе вы можете увидеть, что идентификатор подписи и профиль подготовки неверны. Отредактируйте его, чтобы он соответствовал первому разделу, перестройте, и все будет хорошо. Последний выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

Гиды изменены, чтобы защитить невиновных

Вот проблема, с которой я столкнулся: я добавил двоичный файл в Subversion перед загрузкой. После этого при сжатии / архивировании двоичного файла были включены скрытые каталоги .svn, что испортило подписание кода.

Та же проблема, другое решение.

В моем случае я сжимал файл с помощью zip -r myapp.zip myapp.app
Оказывается, команда zip прикрутил связку. Сжатие из искателя заставило его работать.

Я просто хотел упомянуть, что у меня тоже была проблема с zip из команды
линия тоже. Проблема заключается в том, как он по умолчанию обрабатывает символические ссылки. С помощью:

Zip -y -r myapp.zip myapp.app

Решил эту проблему.

Я пробовал разные вещи после прочтения разных постов, в том числе и выше. То, что в итоге сработало для меня, началось полностью заново! Я удалил все сертификаты и профили обеспечения, связанные с моим приложением.

Я воссоздал новый сертификат разработки и новый сертификат распространения. Я снова скачал промежуточный сертификат. Затем я воссоздал профиль разработки и профиль распространения.

После установки трех сертификатов (на этот раз я заметил, что в дистрибутиве были как закрытый, так и открытый ключи) и двух профилей подготовки (мой профиль распространения не был помечен как не имеющий действительного сертификата!), Все заработало.

Как только я принял решение отозвать все и начать заново, мне потребовалось всего около 5 минут, чтобы создать новый материал и переустановить его.

У меня была такая же проблема: при сборке я заметил, что подготовка не добавлена ​​в сборку.

Для меня исправление заключалось в том, чтобы установить сборку на устройство iphone, где я обычно использую симулятор, но тогда он не будет включать профиль подготовки …

Это может быть ошибкой новичка. Обычно вы не можете собрать для устройства, но когда вы делаете это для распространения, вы можете.

У меня была такая же проблема, и после нескольких попыток — я удалил права .plist из прав на подпись кода (просто оставил его пустым), и он собрался нормально и загрузился НАКОНЕЦ.

Всем удачи :-D

У меня была эта проблема сегодня, но ответы здесь не помогли. Я наконец нашел проблему.

Обязательно используйте раскрывающееся меню: Проект> Изменить активную цель «Название проекта» для изменения подписи кода на распространение — я выбрал проект на панели «Группы и файлы» и использовал кнопку «Информация», которая показывает информацию ПРОЕКТ, а не информацию ЦЕЛЬ — очень запутанно! Я понял только тогда, когда я отключил подписку кода в проекте и построил, а он все еще хочет подписывать код!

Думаю, поэтому в посте Эдди ему пришлось изменить его на уровне project.pbxproj

Также в исходном посте на 1-м шаге:
1. В Xcode выберите Device | Release target.
Неужто это должно быть Устройство | Цель распространения? (при условии, что этот скопированный выпуск и переименован в его распространение в соответствии с инструкциями Apple на портале Provisioning Portal)

Мои два цента:

Загрузите последнюю версию загрузчика приложений. Я только что обновился и теперь получаю другое сообщение об ошибке.

У меня такая же проблема. Я был готов решить эту проблему, но понял это, когда пошел проверять свой код с помощью Murky. Я всегда просматриваю различия в файлах, которые изменились, прежде чем я вернусь. В этот раз я заметил, что файл project.pbxproj был изменен …. и в разделе «Распространение» запись «PROVISIONING_PROFILE [sdk = iphoneos *] »Было пустым.

У меня не работали выход и перезапуск Xcode. Вместо этого я вошел в настройки своего проекта и цели и изменил подпись кода, чтобы напрямую выбрать мой профиль распространения, а не полагаться на функцию автоматического выбора. Это привело к тому, что файл project.pbxproj заполнился правильными значениями, хотя функция автоматического выбора предположительно выбрала тот же самый профиль, который я выбрал вручную.

Мне нужно пиво…

У меня была аналогичная проблема, но я не использую rightlements.plist. Однако после десятка неудачных загрузок я проверил свой info.plist и кое-что обнаружил. В моем массиве CFBundleIconFiles была пустая запись. Я удалил это и отправил повторно, и, наконец, он был принят!

Серьезно, насколько сложно для Apple выявить подобные ошибки валидации?

Обновлено: это не сразу видно, где находятся CFBundleIconFiles, потому что они используют другое имя. В информационном окне проекта нажмите Ctrl и выберите «Показать необработанные ключи / значения», после чего вы увидите ссылки на CFBundleWhatever. В случае с этим редактором он пытался использовать несуществующий файл icon=72-@2x.png.

См. Эту ссылку для решения:

Http://greghaygood.com/2010/09/04/invalid-binary-message-from-itunesconnect

Короткий ответ: «В конце концов я дважды проверил свой info.plist и кое-что обнаружил. Я добавил CFBundleIconFiles в соответствии с новыми рекомендациями, но в списке массивов была пустая запись. Я удалил ее и повторно отправил, и, наконец, принято!»

Я просто прошел через эту неприятность (снова), но на этот раз обнаружил, что мой профиль распространения имеет статус «Недействительный». Если вы считаете, что все остальное в порядке, дважды проверьте статус на портале и обновите / повторно загрузите все, что не находится в активном состоянии.

Решили эту проблему, очистив файл myProject.xcodeproj (щелкните правой кнопкой мыши, откройте пакет), пакет содержал файлы от соразработчика, после их удаления проблема была решена

Я получил недействительный двоичный файл после загрузки приложения, и я не получил ответ по электронной почте о том, почему это не удалось. Я пробовал делать сразу несколько вещей, и я не уверен, что из следующего на самом деле исправило это:

  1. Перезагрузили Macbook Pro
  2. Исходный код моего проекта перенесен с диска NTFS на диск HFS + и перекомпилирован.

У меня была аналогичная проблема, но в Monotouch. Я обнаружил, что мой профиль выпуска настроен на использование сертификатов разработчика. Должно получиться так:

Для меня решением было создание сертификата распространения по адресу:
Портал подготовки разработчиков Apple.

У меня была проблема с этим и с 4.3 GM SDK. Одно из наших приложений не прошло загрузку. Оказалось, что это проблема с профилем подготовки. Я регенерировал профиль магазина приложений, и он работал нормально.

Еще одна точка данных: какое-то время мое приложение работало. Теперь я добавил поддержку покупок в приложении, и внезапно он не работает с проблемой «Недействительный двоичный код / ​​недействительная подпись». При внимательном рассмотрении я обнаружил, что значение идентификатора приложения в файле plist прав было отключено.

Скорее всего, это было связано с тем, что я заменил профиль подготовки с подстановочного символа на профиль для конкретного приложения (требуется для покупок в приложении). Неверный идентификатор приложения в старом профиле. Он не соответствовал идентификатору приложения в info.plist, но, видимо, iTunes простил это.

Итак, резюмируем:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

В порядке, пока

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

Вызывает «Неверный двоичный файл».

Я получил недопустимый двоичный файл, если приложение не использует удаленное push-уведомление, но я оставил код для регистрации push и делегатов обратного вызова для регистрации / получения удаленного уведомления без комментариев, даже если код не используется.

Это недавно. Моя последняя отправка на прошлой неделе была прекрасной. На этой неделе он возвращает неверный двоичный файл. К счастью, есть письмо с объяснением ошибки.

Кажется, у этой проблемы много причин. Вот мое решение:

Это относится ко всем, кто принадлежит к нескольким командам разработчиков (например, к вашим собственным приложениям и вашим компаниям).

Если вы создаете сборку с одним набором учетных данных и повторно подписываете ее с другим (например, для распространения adhoc / appstore), вы должны убедитесь, что сборка была изначально создана и подписана с учетными данными, принадлежащими той же группе разработчиков iOS, которой принадлежат учетные данные распространения, с которыми вы повторно подписываете.

Поэтому не создавайте с учетными данными «Indy Dev Inc», а затем пытайтесь выполнить развертывание с учетными данными «Company Inc». Убедитесь, что вы настроили и разработчик «Company Inc», и учетные данные распространения, и используете их.

Я разместил больше информации об этом в своем блоге: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

Как бы то ни было, я хочу добавить, что помогло мне решить эту проблему. У меня есть ? (знак вопроса) в названии моего приложения, которое вызывало ошибку.

Мое решение заключалось в создании нового идентификатора приложения. Я не уверен, почему это исправлено, но я подозреваю, что это могло быть несовпадение идентификаторов пакетов — создание нового идентификатора приложения заставило меня убедиться, что мое приложение и iTunes ожидают того же.

Попробовав все другие исправления, перечисленные здесь, мы зарегистрировали TSI с Apple. После выполнения всех шагов в Техническое примечание TN2250 наша проблема была вызвана тем, что запечатанный ресурс отсутствует или недействителен. В нашем случае это был ._.DS_Store.

Файл «.. »называется файлом Apple Double и является результатом копирования * распакованной * папки проекта Xcode в файловую систему, которая не поддерживает должным образом« вилки ресурсов »HFS + (используемые для подписей кода). дополнительный «..» файлы приводят к ошибке проверки подписи кода.

Чтобы удалить проблемные файлы Apple Double из папки проекта Xcode, запустите команду dot_clean в папке проекта Xcode, выполните чистую сборку, а затем повторно заархивируйте и повторите попытку отправки.

dot_clean /the/path/to/xcode/project

Примечание: вы можете просто перетащить папку проекта в терминал, чтобы автоматически заполнить путь

При запуске команды сообщение отсутствует, но сборка проекта может показать предупреждение о файле при следующей сборке. Вы можете проигнорировать это, приложение проверит и отправит успешно.

Другое решение:

Для меня просто установка сертификатов «Release» в «подпись кода» исправила это. Первоначально они были настроены на «Не кодировать».

Для меня проблема была решена путем пересохранения изображения PNG с опцией без чересстрочной развертки. В предыдущих версиях разрешались чересстрочные png, но знайте, что эти изображения могут вызвать недопустимый двоичный файл.

Мое сообщение о яблоке:
Поврежденный файл значка — файл значка iconGQ@2x.png кажется поврежденным. Ваш значок не должен быть файлом PNG с чересстрочной разверткой.

Вы можете увидеть, чередуется ли PNG, используя команду «файл» в терминале:
Eva-Madrazos-MacBook-Pro-2: реклама интеграции GQ 7 Eva $ file * .png
Default.png: данные изображения PNG, 320 x 480, 8-битный / цветной RGB, без чересстрочной развертки

Удачи,
Ева

Я хочу указать на возможность отправить электронное письмо Apple и попросить их проверить свои журналы. Я так и сделал, предварительно попробовав множество вещей. Необходимо было напомнить им почти через четыре недели, но в конце концов они ответили и указали точное место проблемы.

В моем случае проблема заключалась в том, что я ранее пробовал другие значки приложений, и ссылка на старое изображение все еще оставалась в «CFBundleIcons». Я использовал функцию перетаскивания, чтобы установить значок, но я не заметил, что старый контент не был полностью очищен до добавления новой ссылки.

Чтобы увидеть ошибочную ссылку, необходимо было развернуть стрелки, чтобы просмотреть каждый подэлемент в файле plist. Один из советов — щелкнуть файл правой кнопкой мыши и выбрать вариант просмотра необработанного содержимого. Таким образом, вам не нужно ничего расширять.

Я пробовал все другие предложенные решения, но ничего не помогло.

В итоге я создал новый проект Xcode и скопировал в него весь свой код и ресурсы. Это помогло, и мое приложение было помещено в очередь на проверку.

Также могу порекомендовать Технические примечания к подписи кода Apple для отладки / проверки.

Uuid не допускается.
Я исправил это, удалив все [[UIDevice currentDevice] uniqueIdentifier];

С 1 мая 2013 года Apple обновила свои рекомендации по человеческому интерфейсу iOS, так что если вы хотите загрузить новое приложение или обновление, оно должно быть совместимо с iphone 5 (4 дюйма), то есть это не должно быть 3,5-дюймовым приложением, работающим на большом экран.

Из яблока:

Dear developer,

We have discovered one or more issues with your recent delivery for
«————-«. To process your delivery, the following issues must
be corrected:

iPhone 5 Optimization Requirement — Your binary is not optimized for
iPhone 5. As of May 1, all new iPhone apps and app updates submitted
must support the 4-inch display on iPhone 5. All apps must include a
launch image of the appropriate size. Learn more about iPhone 5
support by reviewing the iOS Human Interface Guidelines.

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

Есть еще один случай, когда двоичный файл будет признан недействительным. С 1 февраля 2015 г. новые приложения для iOS должны поддерживать 64-разрядную архитектуру. Вот письмо от Apple:

Dear developer,

We have discovered one or more issues with your recent delivery for
«Home — Recruitment». To process your delivery, the following issues
must be corrected:

Missing 64-bit support — Beginning on February 1, 2015 new iOS apps
submitted to the App Store must include 64-bit support and be built
with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need
to follow the same requirements. To enable 64-bit in your project, we
recommend using the default Xcode build setting of “Standard
architectures” to build a single binary with both 32-bit and 64-bit
code.

Once these issues have been corrected, you can then redeliver the
corrected binary.

Regards,

The App Store team

В моем случае это был TestFlight SDK, включенный в двоичный файл проекта.

Я создал новый проект из другого старого источника проекта (который включал testflight), но поскольку это новый проект с новыми идентификаторами, TestFlight SDK здесь больше не разрешен.

Я удалил его, затем заархивировал и снова загрузил. На этот раз нет ошибки «недопустимый двоичный код».

Другие вопросы по теме

When I ran into this issue, my first thought was to search Stack Overflow for solution. I did the search, found several topics. But, unlike my issue, those posters got some clue from the error such as,

  • App Store error: The binary you uploaded was invalid
  • Invalid iPhone Application Binary
  • Uploading Binary iPhone App «The signature was invalid» again again and again

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate

Or this one:

  • «The binary you uploaded was invalid. the file was not a valid zip file» Error message uploading app to iTunes Connect

The binary you upload was invalid. the file was not a valid zip file

Or this one

  • CFBundleVersion in the Info.plist Upload Error

The binary you uploaded was invalid. The key CFBundleVersion in the Info.plist file must contain a higher version than that of the previously uploaded version.

But for me, I got nothing, it just says ERROR ITMS-9000: «The binary you uploaded was invalid»

Enter image description here

I try to resolve this issue by the following attempts, all of them failed

  • Test on simulator make sure the app works … Check!
  • Test on device (iPhone 5S, iOS 7 and iPhone 4s iOS 6) to make sure the app works … Check!
  • Clean and build … Done!
  • Make sure that I’m using distribution profile (not ad hoc, dev) … Check!
  • Redo the whole process of certificate and provisioning profile … Done!
  • Check my code signing identity … Check!
  • Check bundle id, there are matches (Xcode == App ID in Apple Developer == App in iTunes Connect) … Check!
  • App ID case sensitive check …. Check! (lower case, com.companyname.productname)
  • Delete target in project and then create a new one (I have one project, multiple targets) … Done!
  • Delete scheme and then create new one … Done!
  • Check icon size, check loading image size, check pixels per inch … Check!
  • Check Localizable.strings for typo … Check!
  • Delete build foler … Done!
  • Restart Xcode, restart computer … Done!
  • Connect to another wifi router … Done!
  • Submit from my colleague Macbook … Done!
  • Create new App ID, new certificate, new provisioning profile and update iTunes Connect Bundle ID … Done!
  • Take a break for an hour, try again … Done!

I really have no idea what did I do wrong. I’ve been submit app since iOS 4, hundreds of updates. But never ran into anything like this. In fact, I’ve just update another app yesterday which share the same codebase with this one, no issue at all.

Is there a way I can gather more information about «the invalid binary» Xcode is telling me? Or is there anything else I should try?

For everyone who found this topic (18 July 2014), maybe your best shot might be, taking a break for few hours (or a day) and try again.

— Last Update —

It turns out to be Apple Server issue

  • Says, I have an application called «Sample App»
  • This app has an app id of com.tartw45.sampleapp
  • This app use an App Store Distribution profile called «Simple App App Store Distribution Profile»
  • Back to last Friday (18 July 2014), everything seems ok, no indicator of any error but I couldn’t publish the app as I stated above
  • Today (21 July 2014), I tried again with archive from last week, still no success.
  • I decide to redo the archive process and I found that «Simple App App Store Distribution Profile» is no longer valid
  • I login to developer.apple.com and found that «Simple App App Store Distribution Profile» also no longer there in the list of all provisioning profile. **
  • Then I try to create a new provisioning profile with the same name (Simple App App Store Distribution Profile) but there is an error says that this profile is already exist, please choose another name **
  • So, I create a new provisioning profile with slightly different name, refresh the provisioning profile in XCode, archive again and then publish …. Works!

So, It’s definitely Apple Server issue and your provisioning profile (**), it has nothing to do with your XCode version or project setting (if you successfully submitted your app once before running into this issue with no reason). So, anyone who found this topic, please try to validate your provisioning profile and try to publish again.

I’m trying to upload an application to the iPhone App Store, but I get this error message from iTunes Connect:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.


Note: The details of original question have been removed, as this page has turned into a repository for all information about possible causes of that particular error message.

For general information on submitting iPhone applications to the App Store, see Steps to upload an iPhone application to the AppStore.

1

It’s been my experience that Xcode occasionally gets confused about which signing certificate to use. I got into the habit of quitting and restarting Xcode after any change to the code signing settings (and doing a clean build) to work around this problem.

logancautrell's user avatar

answered Sep 30, 2008 at 22:20

Mark Bessey's user avatar

2

I just wanted to mention that I too had the problem with zip from the command
line as well. The problem lies in the way it handles symlinks by default. Using:

zip -y -r myapp.zip myapp.app

Solved that problem.

0

I had the same issue and solved it this way:

The property certificates were installed on my development machine and mobileprovision.embedded was included in the distribution archive. After an hour or so of Googling and digging I found the source the error. Inside Xcode I had copied the Release configuration and created a new Distribution configuration and then changed the signing identity to my distribution certificate. However, even though it was updated in the GUI the project file was not updated correctly.

If you come across the same error, look in your [ProjectName].xcodeproj directory for the project.pbxproj file and open it in your favorite editor. Look for the Distribution section. My broken one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

You can see the signing identity and provisioning profile are incorrect in the second section. Edit it to match the first section, rebuild, and you should be good to go. The final one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids changed to protect the innocent

Same problem, different solution.

In my case, I was compressing the file using zip -r myapp.zip myapp.app
Turns out, the zip command screwed the bundle. Compressing it from the finder made it work.

3

I had the same issue and after trying several things — I removed the .plist entitlements from the Code Signing Entitlements (just left it blank) and it built fine and uploaded FINALLY.

Good luck all

1

Another data point: for a while, my app went through. Now I’ve added support for in-app purchases, and suddenly it fails with an «Invalid binary/invalid signature» problem. Upon careful looking, I found out that the value of application-identifier in the entitlements plist file was off.

This, most likely, had to do with the fact that I’ve replaced the provisioning profile from a wildcarded one to a app-specific one (required for in-app purchases). The wrong app ID qualified under the old profile. It did not match the app ID in the info.plist, but apparently iTunes forgave that.

So, to recap:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

is OK, while

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

causes «Invalid binary».

I had the same problem aswell, when building I noticed the provisioning wasn’t added in the build.

The fix for me was to set the build to the iphone device as where I normally use the simulator, but then it won’t include the provisioning profile…

This might be a noob mistake. Normally you can’t build to device, but when you do it for distribution you can.

Well, after repeating the steps several times, I was finally successful in uploading my app.

I don’t know exactly what fixed it, but prior to the successful attempt, I closed Xcode and Firefox and restarted them. I guess one of those apps had some bad juju.

1

Here’s an issue I ran into: I added the binary to Subversion before uploading. Comparessing/zipping the binary then included the hidden .svn directories, which messed up the code signing.

I tried various things after reading various posts including those above. What finally worked for me was starting completely over! I deleted every certificate and provisioning profile associated with my app.

I recreated a new development certificate and a new distribution certificate. I downloaded the intermediate certificate again. Then I recreated both the development profile and the distribution profile.

After installing the three certificates (I noticed the distribution had both private and public keys this time) and the two provisioning profiles (my distribution profile didn’t get flagged as not having a valid certificate!), everything worked.

Once I made the decision to revoke everything and just start over, it only took about 5 minutes to create the new stuff and re-install.

I had a similar issue but in Monotouch. I found that my Release profile was set to use developer certs. It should look like this:
enter image description here

It seems this issue has many causes. Here’s the solution to mine:

This applies to anyone who belongs to multiple development teams (e.g. your own apps, and your companies).

If you building the build with one set of credentials and re-signing it with a different one (e.g. for adhoc/appstore distribution), you must ensure that the build was originally built & signed with credentials belonging to the same iOS development team that the distribution credentials you are re-signing with belong to.

So don’t build with «Indy Dev Inc» credentials then try to deploy with «Company Inc» credentials. Make sure you setup both «Company Inc» dev, and distribution credentials, and use them.

I posted more info about this on my blog: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

1

I had the same problem. I was ready to throw in the towel on this problem but I figured it out when I went to check in my code using Murky. I always skim the diffs on the files that changed before I check in. When doing so this time I noticed that the project.pbxproj file had changed….and in the Distribution section the entry for “PROVISIONING_PROFILE[sdk=iphoneos*]” was blank.

Quiting and restarting Xcode didn’t work for me. Instead, I went into both my project and target settings and changed the code signing to directly select my Distribution profile rather than relying on the auto-select feature. Doing this caused the project.pbxproj file to populate with the correct values even though the auto-select feature supposedly selected the exact same profile that I selected manually.

I need a beer…

After trying all of the other fixes listed here we logged a TSI with Apple. Having followed all the steps in Technical Note TN2250 our problem was caused because a sealed resource was missing or invalid. In our case it was ._.DS_Store.

The «..» is called an Apple Double file, and is the result of copying the Xcode Project folder, *unzipped*, onto and back from a file system that doesn’t properly support HFS+’s ‘resource forks’ (used for code signatures). These extra «..» files result and cause code signing verification failure.

To clean the problematic Apple Double files from your Xcode project folder, run the dot_clean command on your Xcode project’s folder, do a clean build, and then rearchive and reattempt your submission.

dot_clean /the/path/to/xcode/project

Note: You can just drag the project folder into the terminal to automatically populate the path

There is no message when you run the command but the project build might show a warning about the file when you next build. You can ignore this, the app will validate and submit successfully.

Resolved this by cleaning up the myProject.xcodeproj file (right click, open package), the package contained files from co-developer, after deleting these the problem was solved

For what it is worth, I want to add what it was that fixed this issue for me. I had a ? (question-mark) in my app title that was causing the error.

I received an invalid binary, if the app does not use remote push notification, but I left the code for registering push and the callback delegates for registering/receiving remote notification uncommented, even if the code does not get used.

This is recent. My last submission last week was fine. This week, it returns invalid binary. Luckily, there is an email that explains the error.

I was having a similar problem, but I don’t use entitlements.plist. However, after a dozen failed uploads, I checked my info.plist and discovered something. My CFBundleIconFiles array had an empty entry. I removed that and re-submitted, and it was finally accepted!

Seriously, how hard would it be for Apple to expose those kind of validation errors?

Edit: It’s not immediately apparant where the CFBundleIconFiles are because they use a different name. In the project info view, Ctl click and select «Show Raw Keys/Values» and then you will see the references to CFBundleWhatever. In this editor’s case, he was trying to use a non-existent icon=72-@2x.png file.

I tried all other proposed solutions, but nothing helped.

I ended up creating a new Xcode project and copy all my code and resources into it. That did the trick, and my app got placed into the review queue.

I can also recommend Apples technical notes on code signing for debugging/verification.

My two cents:

Download the latest version of the Application Loader. I’ve just updated and now get a different error message.

I just went through this hassle (again) but this time I found that my distribution profile had a status of «Invalid». If you think everything else is right, double-check the status in the portal and renew/re-download anything that isn’t in the Active state.

I received an Invalid Binary after an app upload, with no e-mail followup as to why it failed. I tried doing a couple things at once, and I’m not sure which of the following actually fixed it:

  1. Restarted Macbook Pro
  2. Moved the source code for my project from an NTFS drive to an HFS+ drive and recompiled.

I had a problem with this and the 4.3 GM SDK. One of our apps would not make it past upload received. It turned out to be a provisioning profile issue. I regenerated the app store profile and it worked fine.

My solution involved creating a new App ID. I’m not sure exactly why that fixed it, but I suspect it may have been mismatched Bundle Identifiers — creating the new App ID forced me to make sure my app and iTunes were expecting the same thing.

Another solution:

For me simply setting the ‘Release’ certificates under ‘code signing’ fixed it. They were initially set to ‘Don’t code sign’.

For me the problem was solved by resaving a PNG image with the non-interlaced option. In previous versions interlaced png were allowed, but know this images can cause the invalid binary.

My apple message:
Corrupt Icon File — The icon file iconGQ@2x.png appears to be corrupt. Your icon must not be an interlaced PNG file.

You can see if the PNG is interlaced using the command «file» in the terminal:
Eva-Madrazos-MacBook-Pro-2:GQ 7 integracion ads Eva$ file *.png
Default.png: PNG image data, 320 x 480, 8-bit/color RGB, non-interlaced

Good luck,
Eva

I want to point out the possibility to email Apple and ask them to check their logs. I did just that, after having tried loads of things first. It was necessary to remind them after almost four weeks, but finally they replied and pointed to the exact spot of the issue.

The problem in my case was that I had previously tried other app icons, and a reference to the old image still remained in ‘CFBundleIcons’. I used the drag and drop functionality to set the icon, but I didn’t notice that the old content wasn’t completely cleared before the new reference was added.

To see the faulty reference it was necessary to expand the arrows to view each and every sub element in the plist file. One tips is to right-click in the file and select the option for viewing the raw content. In that way you will not need to expand anything.

uuid is not allowed.
I fixed it by remove all [[UIDevice currentDevice] uniqueIdentifier];

I’m trying to upload an application to the iPhone App Store, but I get this error message from iTunes Connect:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.


Note: The details of original question have been removed, as this page has turned into a repository for all information about possible causes of that particular error message.

For general information on submitting iPhone applications to the App Store, see Steps to upload an iPhone application to the AppStore.

1

It’s been my experience that Xcode occasionally gets confused about which signing certificate to use. I got into the habit of quitting and restarting Xcode after any change to the code signing settings (and doing a clean build) to work around this problem.

logancautrell's user avatar

answered Sep 30, 2008 at 22:20

Mark Bessey's user avatar

2

I just wanted to mention that I too had the problem with zip from the command
line as well. The problem lies in the way it handles symlinks by default. Using:

zip -y -r myapp.zip myapp.app

Solved that problem.

0

I had the same issue and solved it this way:

The property certificates were installed on my development machine and mobileprovision.embedded was included in the distribution archive. After an hour or so of Googling and digging I found the source the error. Inside Xcode I had copied the Release configuration and created a new Distribution configuration and then changed the signing identity to my distribution certificate. However, even though it was updated in the GUI the project file was not updated correctly.

If you come across the same error, look in your [ProjectName].xcodeproj directory for the project.pbxproj file and open it in your favorite editor. Look for the Distribution section. My broken one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

You can see the signing identity and provisioning profile are incorrect in the second section. Edit it to match the first section, rebuild, and you should be good to go. The final one looked like this:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids changed to protect the innocent

Same problem, different solution.

In my case, I was compressing the file using zip -r myapp.zip myapp.app
Turns out, the zip command screwed the bundle. Compressing it from the finder made it work.

3

I had the same issue and after trying several things — I removed the .plist entitlements from the Code Signing Entitlements (just left it blank) and it built fine and uploaded FINALLY.

Good luck all

1

Another data point: for a while, my app went through. Now I’ve added support for in-app purchases, and suddenly it fails with an «Invalid binary/invalid signature» problem. Upon careful looking, I found out that the value of application-identifier in the entitlements plist file was off.

This, most likely, had to do with the fact that I’ve replaced the provisioning profile from a wildcarded one to a app-specific one (required for in-app purchases). The wrong app ID qualified under the old profile. It did not match the app ID in the info.plist, but apparently iTunes forgave that.

So, to recap:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

is OK, while

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

causes «Invalid binary».

I had the same problem aswell, when building I noticed the provisioning wasn’t added in the build.

The fix for me was to set the build to the iphone device as where I normally use the simulator, but then it won’t include the provisioning profile…

This might be a noob mistake. Normally you can’t build to device, but when you do it for distribution you can.

Well, after repeating the steps several times, I was finally successful in uploading my app.

I don’t know exactly what fixed it, but prior to the successful attempt, I closed Xcode and Firefox and restarted them. I guess one of those apps had some bad juju.

1

Here’s an issue I ran into: I added the binary to Subversion before uploading. Comparessing/zipping the binary then included the hidden .svn directories, which messed up the code signing.

I tried various things after reading various posts including those above. What finally worked for me was starting completely over! I deleted every certificate and provisioning profile associated with my app.

I recreated a new development certificate and a new distribution certificate. I downloaded the intermediate certificate again. Then I recreated both the development profile and the distribution profile.

After installing the three certificates (I noticed the distribution had both private and public keys this time) and the two provisioning profiles (my distribution profile didn’t get flagged as not having a valid certificate!), everything worked.

Once I made the decision to revoke everything and just start over, it only took about 5 minutes to create the new stuff and re-install.

I had a similar issue but in Monotouch. I found that my Release profile was set to use developer certs. It should look like this:
enter image description here

It seems this issue has many causes. Here’s the solution to mine:

This applies to anyone who belongs to multiple development teams (e.g. your own apps, and your companies).

If you building the build with one set of credentials and re-signing it with a different one (e.g. for adhoc/appstore distribution), you must ensure that the build was originally built & signed with credentials belonging to the same iOS development team that the distribution credentials you are re-signing with belong to.

So don’t build with «Indy Dev Inc» credentials then try to deploy with «Company Inc» credentials. Make sure you setup both «Company Inc» dev, and distribution credentials, and use them.

I posted more info about this on my blog: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

1

I had the same problem. I was ready to throw in the towel on this problem but I figured it out when I went to check in my code using Murky. I always skim the diffs on the files that changed before I check in. When doing so this time I noticed that the project.pbxproj file had changed….and in the Distribution section the entry for “PROVISIONING_PROFILE[sdk=iphoneos*]” was blank.

Quiting and restarting Xcode didn’t work for me. Instead, I went into both my project and target settings and changed the code signing to directly select my Distribution profile rather than relying on the auto-select feature. Doing this caused the project.pbxproj file to populate with the correct values even though the auto-select feature supposedly selected the exact same profile that I selected manually.

I need a beer…

After trying all of the other fixes listed here we logged a TSI with Apple. Having followed all the steps in Technical Note TN2250 our problem was caused because a sealed resource was missing or invalid. In our case it was ._.DS_Store.

The «..» is called an Apple Double file, and is the result of copying the Xcode Project folder, *unzipped*, onto and back from a file system that doesn’t properly support HFS+’s ‘resource forks’ (used for code signatures). These extra «..» files result and cause code signing verification failure.

To clean the problematic Apple Double files from your Xcode project folder, run the dot_clean command on your Xcode project’s folder, do a clean build, and then rearchive and reattempt your submission.

dot_clean /the/path/to/xcode/project

Note: You can just drag the project folder into the terminal to automatically populate the path

There is no message when you run the command but the project build might show a warning about the file when you next build. You can ignore this, the app will validate and submit successfully.

Resolved this by cleaning up the myProject.xcodeproj file (right click, open package), the package contained files from co-developer, after deleting these the problem was solved

For what it is worth, I want to add what it was that fixed this issue for me. I had a ? (question-mark) in my app title that was causing the error.

I received an invalid binary, if the app does not use remote push notification, but I left the code for registering push and the callback delegates for registering/receiving remote notification uncommented, even if the code does not get used.

This is recent. My last submission last week was fine. This week, it returns invalid binary. Luckily, there is an email that explains the error.

I was having a similar problem, but I don’t use entitlements.plist. However, after a dozen failed uploads, I checked my info.plist and discovered something. My CFBundleIconFiles array had an empty entry. I removed that and re-submitted, and it was finally accepted!

Seriously, how hard would it be for Apple to expose those kind of validation errors?

Edit: It’s not immediately apparant where the CFBundleIconFiles are because they use a different name. In the project info view, Ctl click and select «Show Raw Keys/Values» and then you will see the references to CFBundleWhatever. In this editor’s case, he was trying to use a non-existent icon=72-@2x.png file.

I tried all other proposed solutions, but nothing helped.

I ended up creating a new Xcode project and copy all my code and resources into it. That did the trick, and my app got placed into the review queue.

I can also recommend Apples technical notes on code signing for debugging/verification.

My two cents:

Download the latest version of the Application Loader. I’ve just updated and now get a different error message.

I just went through this hassle (again) but this time I found that my distribution profile had a status of «Invalid». If you think everything else is right, double-check the status in the portal and renew/re-download anything that isn’t in the Active state.

I received an Invalid Binary after an app upload, with no e-mail followup as to why it failed. I tried doing a couple things at once, and I’m not sure which of the following actually fixed it:

  1. Restarted Macbook Pro
  2. Moved the source code for my project from an NTFS drive to an HFS+ drive and recompiled.

I had a problem with this and the 4.3 GM SDK. One of our apps would not make it past upload received. It turned out to be a provisioning profile issue. I regenerated the app store profile and it worked fine.

My solution involved creating a new App ID. I’m not sure exactly why that fixed it, but I suspect it may have been mismatched Bundle Identifiers — creating the new App ID forced me to make sure my app and iTunes were expecting the same thing.

Another solution:

For me simply setting the ‘Release’ certificates under ‘code signing’ fixed it. They were initially set to ‘Don’t code sign’.

For me the problem was solved by resaving a PNG image with the non-interlaced option. In previous versions interlaced png were allowed, but know this images can cause the invalid binary.

My apple message:
Corrupt Icon File — The icon file iconGQ@2x.png appears to be corrupt. Your icon must not be an interlaced PNG file.

You can see if the PNG is interlaced using the command «file» in the terminal:
Eva-Madrazos-MacBook-Pro-2:GQ 7 integracion ads Eva$ file *.png
Default.png: PNG image data, 320 x 480, 8-bit/color RGB, non-interlaced

Good luck,
Eva

I want to point out the possibility to email Apple and ask them to check their logs. I did just that, after having tried loads of things first. It was necessary to remind them after almost four weeks, but finally they replied and pointed to the exact spot of the issue.

The problem in my case was that I had previously tried other app icons, and a reference to the old image still remained in ‘CFBundleIcons’. I used the drag and drop functionality to set the icon, but I didn’t notice that the old content wasn’t completely cleared before the new reference was added.

To see the faulty reference it was necessary to expand the arrows to view each and every sub element in the plist file. One tips is to right-click in the file and select the option for viewing the raw content. In that way you will not need to expand anything.

uuid is not allowed.
I fixed it by remove all [[UIDevice currentDevice] uniqueIdentifier];

My issue is with uploading the iOS application to the app store. When I go to upload the application it automatically goes through a validation process and stops at the “verifying assets” stage, then shows an error that says “your binary file is invalid.” The error code is ITMS-90680.

Can anyone help with this error?

M--'s user avatar

M—

23.1k7 gold badges57 silver badges92 bronze badges

asked Jun 9, 2017 at 20:41

Brianna Singer's user avatar

You have to do one thing, just add all sizes of the app icon.

or Do:

1) Revoke Distribution Certificate.

2) Launch Keychain Access > Certificates and remove all of the expired Certificates (If you a find few of them)

3) Create a new certificate and install.

For further reference and also this link.

answered Jun 9, 2017 at 20:44

Anurag Sharma's user avatar

Anurag SharmaAnurag Sharma

3,8612 gold badges26 silver badges42 bronze badges

3

Мы наконец-то подошли к отправке нашего первого приложения для iPhone в магазин приложений (или пытаемся это сделать), но я не могу заставить iTunes Connect принять загрузку.

Я попытался использовать как веб-сайт («Загруженный вами двоичный файл недействителен. Подпись недействительна или не была подписана сертификатом отправки Apple»), так и загрузчик приложений («Info.plist не содержит спецификации CFBundleResourceSpecification. «).

После долгого чтения (включая подобных вопросов), повторного чтения и поиска в Google, Могу сказать, что:

  • Я уверен, что идентификатор пакета совпадает с AppID.
  • Существует Icon.png, это PNG-файл размером 57×57 пикселей, и это точное имя в Info.plist.
  • Я занимаюсь сборкой устройства, а не симулятора.
  • Процесс подписания завершается успешно: результаты сборки показывают это, а запуск codesign -vvvv MyApp.app указывает на отсутствие проблем.
  • В пути к ZIP-файлу нет странных символов.
  • Я удалил папку сборки и несколько раз пересобирал двоичный файл.

Верно, что в созданном приложении Info.plist не содержит ключа CFBundleResourceSpecification, но мне совсем не ясно, откуда это значение или что еще мне нужно добавить, чтобы эта работа. (Единственная ссылка, которую я могу найти с помощью поиска Apple, — это некоторая версия для подписи кода примечания… но, как я уже упоминал выше, этап подписания кода, насколько я могу судить, проходит успешно.)

Кто-нибудь сталкивался с какими-либо объяснениями этой проблемы, о которых я еще не упоминал?

РЕДАКТИРОВАТЬ: Вот (слегка отредактированный) результат этапа подписания кода сборки, FWIW:

Скриншот подписи кода http://img70.yfrog.com/img70/8988/codesign.png

7 ответов

Лучший ответ

Проблема, похоже, заключалась в том, что я использовал в своем приложении json-framework, и включив его в качестве дополнительного SDK в соответствии с инструкциями в вики < / а>. Я предполагаю, что XCode запутался из-за наличия> 1 SDK и поэтому не смог найти ResourceRules.plist по умолчанию, как и предполагалось.

Я нашел два решения (ну, во всяком случае, обходные пути):

  1. Используйте параметр сборки «Путь к правилам ресурса подписи кода» (который по умолчанию пуст), чтобы указать путь к файлу, который должен использовать XCode: $(SDKROOT)/ResourceRules.plist. Это работает и кажется достаточно безобидным, но разочаровывает в том смысле, что XCode должен иметь возможность выяснить это самостоятельно. (Я нашел это решение в очень старой проблеме подано на json-framework.)
  2. Не используйте подход SDK. Вместо этого просто включите файлы непосредственно в проект и обновите операторы #import локальными путями. В конечном итоге я выбрал именно такой подход, поскольку мы приняли общее решение объединить все внешние зависимости в сам проект (чтобы другим разработчикам не приходилось настраивать свои машины для начала работы).

Я не уверен, ошибка ли это в XCode или что-то не так с json-framework, но у меня на всякий случай написал о проблеме.

ОБНОВЛЕНИЕ, 30 июня 2010 г .: проблема, которую я зарегистрировал, закрыта, и г-н Браутасет планирует удалить поддержку опции SDK в следующем выпуске (2.3) проекта. Кроме того, код теперь находится на GitHub, хотя страницы кода Google пока существуют.


10

Sixten Otto
30 Июн 2010 в 21:12

Для меня, после проверки всех вещей (кодовый знак, файл значка …), но вы не можете загрузить свое приложение, попробуйте удалить встроенный файл. Не забудьте скопировать файл file.app, чтобы заархивировать свое приложение.


1

Pham Hong Nghiep
17 Дек 2010 в 06:27

Вы уверены, что используете дистрибутив, а не разработку, сертификат и мобильное обеспечение?


0

Ben Gottlieb
2 Фев 2010 в 00:33

Я предполагаю, что вы загружаете файл .zip.

Я только что проверил загруженное мной приложение, и CFBundleResourceSpecification есть только в подписанных версиях (то есть в сборках устройства).


0

David Dunham
3 Фев 2010 в 07:59

Вы собираете / копируете / архивируете что-нибудь из командной строки? В таком случае нужно быть очень осторожным с символическими ссылками. .app поставляется с подкаталогом в качестве символической ссылки на другой, и если вы скопируете его или заархивируете без правильных флагов, он скопирует содержимое на бумажном носителе, что нарушит кодовую подпись.

Это случилось со мной — и хуже всего то, что специальные сборки работают нормально без символической ссылки, поэтому вы не заметите проблемы до сборки магазина приложений.


0

Jesse Beder
3 Фев 2010 в 08:17

Это сообщение может появиться по другой причине (как я только что обнаружил сегодня утром): если в вашем проекте есть несколько Info.plist, Application Uploader может обнаружить «неправильный» Info.plist и запутаться.

Это происходило со мной, потому что автоматизированная часть сборки создавала Info.plist в пакете, внесенном в проект.

Подсказка здесь для решения: http://infinite-sushi.com/2010 / 08 / the-case-of-the-missing-cfbundleresourcespecification /


0

dpjanes
27 Авг 2010 в 15:39

I submitted my app in the App Store. First I validated it, and turns out successful. Then I submitted it and succesfully uploaded to iTunes Connect. After a minute, it says that the file is Invalid binary. I am uploading an update of an existing app which is already published in the App Store. (previous version uploaded by other developer). I tried every solution that I found in google search but no luck.

Verbeia's user avatar

Verbeia

4,4002 gold badges22 silver badges44 bronze badges

asked Nov 12, 2011 at 6:33

janusfidel's user avatar

1

Just for information.

Today I faced the same problem of Invalid Binary while uploading new version of existing application.
I got following email from apple

iPhone 5 Optimization Requirement — Your binary is not optimized for
iPhone 5. As of May 1, all new iPhone apps and app updates
submitted must support the 4-inch display on iPhone 5. All apps must
include a launch image with the -568h size modifier immediately
following the portion of the launch image’s filename.
Launch images must be PNG files and located at the top-level of your
bundle, or provided within each .lproj folder if you localize your
launch images. Learn more about iPhone 5 support and app launch images
by reviewing the iOS Human Interface Guidelines and iOS App
Programming Guide.

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.

Solution:

  1. Added 4inch app screen shots in iTunesconnect meta data
  2. Added Default-568h@2x.png image in my application for iPhone 5

After these changes application successfully submitted.

answered Jun 18, 2013 at 12:35

Irfan DANISH's user avatar

Irfan DANISHIrfan DANISH

8,23712 gold badges42 silver badges67 bronze badges

Need to add arm64

I faced the same problem of Invalid Binary while uploading new version of existing application.

The reason are from February 2015 itself we need to Add arm64 to our app. i added this then my app successfully upload to app store.

answered Feb 9, 2015 at 9:04

PREMKUMAR's user avatar

PREMKUMARPREMKUMAR

8,2938 gold badges27 silver badges51 bronze badges

Try to check the provisioning you made for the itunes store are correct with your application.
Remove the old binary which has been rejected then add the new one.
If you can do try to make fresh provisioning and also check in the xcode as well.
And do check the mode,is that debug or distribution as you need to make the build for distribution.
Hope it man help you.

Cheers
Sanjay

answered Nov 12, 2011 at 11:59

Sabby's user avatar

SabbySabby

2,5862 gold badges27 silver badges41 bronze badges

You cannot submit an app that uses the same bundle ID or the same app name of any app (even the «same» one) submitted by another developer account.

answered Nov 13, 2011 at 3:32

hotpaw2's user avatar

hotpaw2hotpaw2

69.6k14 gold badges90 silver badges152 bronze badges

Make sure you have choosen «App Store» as distribution method in distribution provisioning profile, not «Ad Hoc».

answered Jul 18, 2012 at 2:02

tesmojones's user avatar

tesmojonestesmojones

2,4272 gold badges21 silver badges40 bronze badges

I have faced this issue many times.My app got passed validation and submitted     
successfully to iTunes Connect.But It shows invalid binary in prerelease 
options.I saw one awesome post in Apple discussions and finally solved my 
issue.App bundle id was changed in config file of my web app.I have changed 
old bundle id in config.xml and app uploaded for review.

answered May 28, 2015 at 13:03

SURESH SANKE's user avatar

SURESH SANKESURESH SANKE

1,64517 silver badges34 bronze badges

1

Try using the Application Loader under /Developer/Applications/Utilities. Make sure you have created a New App in iTunesConnect…under Manage Applications, select the application you are going to create an update for… when that loads on the right you will see Add a New Update.

answered Nov 12, 2011 at 6:59

logixologist's user avatar

logixologistlogixologist

3,6744 gold badges28 silver badges46 bronze badges

3

I submitted my app in the App Store. First I validated it, and turns out successful. Then I submitted it and succesfully uploaded to iTunes Connect. After a minute, it says that the file is Invalid binary. I am uploading an update of an existing app which is already published in the App Store. (previous version uploaded by other developer). I tried every solution that I found in google search but no luck.

Verbeia's user avatar

Verbeia

4,4002 gold badges22 silver badges44 bronze badges

asked Nov 12, 2011 at 6:33

janusfidel's user avatar

1

Just for information.

Today I faced the same problem of Invalid Binary while uploading new version of existing application.
I got following email from apple

iPhone 5 Optimization Requirement — Your binary is not optimized for
iPhone 5. As of May 1, all new iPhone apps and app updates
submitted must support the 4-inch display on iPhone 5. All apps must
include a launch image with the -568h size modifier immediately
following the portion of the launch image’s filename.
Launch images must be PNG files and located at the top-level of your
bundle, or provided within each .lproj folder if you localize your
launch images. Learn more about iPhone 5 support and app launch images
by reviewing the iOS Human Interface Guidelines and iOS App
Programming Guide.

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.

Solution:

  1. Added 4inch app screen shots in iTunesconnect meta data
  2. Added Default-568h@2x.png image in my application for iPhone 5

After these changes application successfully submitted.

answered Jun 18, 2013 at 12:35

Irfan DANISH's user avatar

Irfan DANISHIrfan DANISH

8,23712 gold badges42 silver badges67 bronze badges

Need to add arm64

I faced the same problem of Invalid Binary while uploading new version of existing application.

The reason are from February 2015 itself we need to Add arm64 to our app. i added this then my app successfully upload to app store.

answered Feb 9, 2015 at 9:04

PREMKUMAR's user avatar

PREMKUMARPREMKUMAR

8,2938 gold badges27 silver badges51 bronze badges

Try to check the provisioning you made for the itunes store are correct with your application.
Remove the old binary which has been rejected then add the new one.
If you can do try to make fresh provisioning and also check in the xcode as well.
And do check the mode,is that debug or distribution as you need to make the build for distribution.
Hope it man help you.

Cheers
Sanjay

answered Nov 12, 2011 at 11:59

Sabby's user avatar

SabbySabby

2,5862 gold badges27 silver badges41 bronze badges

You cannot submit an app that uses the same bundle ID or the same app name of any app (even the «same» one) submitted by another developer account.

answered Nov 13, 2011 at 3:32

hotpaw2's user avatar

hotpaw2hotpaw2

69.6k14 gold badges90 silver badges152 bronze badges

Make sure you have choosen «App Store» as distribution method in distribution provisioning profile, not «Ad Hoc».

answered Jul 18, 2012 at 2:02

tesmojones's user avatar

tesmojonestesmojones

2,4272 gold badges21 silver badges40 bronze badges

I have faced this issue many times.My app got passed validation and submitted     
successfully to iTunes Connect.But It shows invalid binary in prerelease 
options.I saw one awesome post in Apple discussions and finally solved my 
issue.App bundle id was changed in config file of my web app.I have changed 
old bundle id in config.xml and app uploaded for review.

answered May 28, 2015 at 13:03

SURESH SANKE's user avatar

SURESH SANKESURESH SANKE

1,64517 silver badges34 bronze badges

1

Try using the Application Loader under /Developer/Applications/Utilities. Make sure you have created a New App in iTunesConnect…under Manage Applications, select the application you are going to create an update for… when that loads on the right you will see Add a New Update.

answered Nov 12, 2011 at 6:59

logixologist's user avatar

logixologistlogixologist

3,6744 gold badges28 silver badges46 bronze badges

3

Я пытаюсь загрузить приложение в магазин приложений iPhone, но я получаю это сообщение об ошибке от iTunes Connect:

загруженный вами двоичный файл недействителен. Подпись была недействительной или не была подписана сертификатом Apple submission.


Примечание: детали исходного вопроса были удалены, так как эта страница превратилась в хранилище для всей информации о возможных причинах этой конкретной ошибки сообщение.

общие сведения о подаче приложений для iPhone в App Store см. В разделе шаги для загрузки приложения iPhone в AppStore.

30 ответов


по моему опыту, Xcode иногда путается в том, какой сертификат подписи использовать. У меня вошло в привычку бросать и перезапускать Xcode после любого изменения настроек подписи кода (и делать чистую сборку), чтобы обойти эту проблему.


Я просто хотел упомянуть, что у меня тоже была проблема с zip из команды
линии, а также. Проблема заключается в том, как он обрабатывает символические ссылки по умолчанию. Использование:

zip-y-r myapp.молния приложение.app

решил эту проблему.


у меня была такая же проблема и решил ее таким образом:

сертификаты свойств были установлены на моей машине разработки и mobileprovision.embedded был включен в архив рассылки. Через час или около того поиска и копания я нашел источник ошибки. Внутри Xcode я скопировал конфигурацию выпуска и создал новую конфигурацию распространения, а затем изменил идентификатор подписи на мой сертификат распространения. Однако, несмотря на то, что он был обновлен в GUI файл проекта был обновлен неправильно.

Если вы столкнулись с той же ошибкой, посмотрите в своем [ProjectName].каталог xcodeproj для проекта.pbxproj файл и откройте его в своем любимом редакторе. Ищите раздел распределения. Мой сломанный выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

вы можете увидеть, что идентификатор подписи и профиль подготовки неверны во втором разделе. Отредактируйте его в соответствии с первым разделом, перестройте, и вам должно быть хорошо идти. Последнее выглядело это:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids изменены, чтобы защитить невинных


та же проблема, другое решение.

в моем случае я сжимал файл с помощью zip -r myapp.zip myapp.app
Оказывается, команда zip прикрутила сверток. Сжатие его из искателя заставило его работать.


У меня была такая же проблема, и после нескольких попыток-я удалил.plist права из прав подписи кода (просто оставил его пустым), и он построил штраф и загрузил, наконец.

удачи всем : — D


еще одна точка данных: на некоторое время мое приложение прошло. Теперь я добавил поддержку покупок в приложении, и внезапно он терпит неудачу с проблемой «недопустимая двоичная/недопустимая подпись». При внимательном просмотре я обнаружил, что значение application-identifier в файле entitlements plist отключено.

это, скорее всего, связано с тем, что Я заменил профиль подготовки с wildcarded на app-specific (требуется для покупок в приложении). Неправильный идентификатор приложения квалифицированный по старому профилю. Он не соответствует идентификатору приложения в информации.plist, но, по-видимому, iTunes простил это.

Итак, резюмируем:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

ОК, а

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

вызывает «недопустимый двоичный файл».


У меня была та же проблема, что и при построении, я заметил, что подготовка не была добавлена в сборку.

исправление для меня состояло в том, чтобы установить сборку на устройство iphone, где я обычно использую симулятор, но тогда он не будет включать профиль подготовки…

Это может быть ошибка noob. Обычно вы не можете строить на устройстве, но когда вы делаете это для распространения, вы можете.


Ну, после повторения шагов несколько раз, я, наконец, успешно загрузил свое приложение.

Я не знаю точно, что это исправило, но до успешной попытки я закрыл Xcode и Firefox и перезапустил их. Думаю, в одном из этих приложений был плохой Джуджу.

4

автор: Kristopher Johnson


вот проблема, с которой я столкнулся: я добавил двоичный файл в Subversion перед загрузкой. Comparessing/сжать бинарных затем включаются скрытые .каталоги svn, которые испортили подпись кода.


Я пробовал различные вещи после прочтения различных сообщений, включая те, что выше. Что наконец-то сработало для меня, так это начать все сначала! Я удалил все сертификаты и профили подготовки, связанные с моим приложением.

я воссоздал новый сертификат разработки и новый сертификат распространения. Я снова загрузил промежуточный сертификат. Затем я воссоздал профиль разработки и профиль распространения.

после установки трех сертификатов (I заметил, что в дистрибутиве были как частные, так и открытые ключи на этот раз) и два профиля подготовки (мой профиль распространения не был помечен как не имеющий действительного сертификата!), все работало.

Как только я принял решение отменить все и просто начать все сначала, потребовалось всего около 5 минут, чтобы создать новый материал и переустановить.



У меня была аналогичная проблема, но в Monotouch. Я обнаружил, что мой профиль выпуска настроен на использование сертификатов разработчика. Это должно выглядеть так:
enter image description here

3

автор: BahaiResearch.com


кажется, эта проблема имеет много причин. Вот решение моего:

Это относится ко всем, кто принадлежит к нескольким командам разработчиков (например, ваши собственные приложения и ваши компании).

Если вы создаете сборку с одним набором учетных данных и повторно подписываете ее с другим (например, для распространения adhoc / appstore), вы должны убедитесь, что сборка была первоначально построена и подписана учетными данными, принадлежащими той же команде разработчиков iOS, что учетные данные распространения, которые вы повторно подписываете, принадлежат.

поэтому не создавайте с учетными данными «Indy Dev Inc», а затем попробуйте развернуть с учетными данными» Company Inc». Убедитесь, что вы настроили как «Company Inc» dev, так и учетные данные распространения и используете их.

Я опубликовал больше информации об этом в своем блоге: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/


У меня была та же проблема. Я был готов бросить полотенце на эту проблему, но я понял это, когда я пошел, чтобы проверить свой код с помощью Murky. Я всегда просматриваю различия в файлах, которые изменились, прежде чем регистрироваться. При этом на этот раз я заметил, что проект.pbxproj файл был изменен….и в разделе дистрибутива запись «PROVISIONING_PROFILE[sdk=iphoneos*]» была пустой.

выход и перезапуск Xcode не работали для меня. Вместо этого я вошел в оба моих параметры проекта и цели и изменили подпись кода, чтобы напрямую выбрать мой профиль распространения, а не полагаться на функцию автоматического выбора. Это вызвало проект.файл pbxproj для заполнения правильными значениями, даже если функция автоматического выбора предположительно выбрала тот же профиль, который я выбрал вручную.

Мне нужно пиво…


после попытки всех других исправлений, перечисленных здесь, мы зарегистрировали TSI с Apple. Выполнив все шаги в техническое Примечание TN2250 наша проблема была вызвана тем, что был закрытый ресурс отсутствует или недействителен. В нашем случае это было ._.DS_Store.

The «..»называется двойным файлом Apple и является результатом копирования папки проекта Xcode, * unzipped*, на и обратно из файловой системы, которая должным образом не поддерживает HFS+’s ‘resource forks’ (используется для кода подписывание.) Эти лишние «..»файлы приводят и вызывают сбой проверки подписи кода.

чтобы очистить проблемные двойные файлы Apple из папки проекта Xcode, выполните команду dot_clean в папке проекта Xcode, выполните чистую сборку, а затем повторно выполните архивацию и повторное подключение отправки.

dot_clean /the/path/to/xcode/project

Примечание: Вы можете просто перетащить папку проекта в терминал, чтобы автоматически заполнить путь

нет сообщения, когда вы запускаете команду, но сборка проекта может показать предупреждение о файле при следующей сборке. Вы можете игнорировать это, приложение будет проверять и отправлять успешно.


решил это, очистив myProject.xcodeproj файл (щелкните правой кнопкой мыши, открыть пакет), пакет содержал файлы от со-разработчика, после удаления этих проблема была решена



для чего это стоит, я хочу добавить, что исправила эту проблему для меня. У меня ? (вопросительный знак) в названии моего приложения, которое вызвало ошибку.


Я получил недопустимый двоичный файл, если приложение не использует удаленное push-уведомление, но я оставил код для регистрации push и делегатов обратного вызова для регистрации/получения удаленного уведомления незафиксированным, даже если код не используется.

Это последние. Мое последнее представление на прошлой неделе было в порядке. На этой неделе он возвращает недопустимый двоичный файл. К счастью, есть письмо, которое объясняет ошибки.


У меня была аналогичная проблема, но я не права.файл plist. Однако после дюжины неудачных загрузок я проверил свою информацию.плист и обнаружил что-то. Мой массив CFBundleIconFiles имел пустую запись. Я удалил это и повторно подал, и это было, наконец, принято!

серьезно, насколько сложно было бы Apple разоблачить такие ошибки проверки?

Edit: это не сразу apparant, где CFBundleIconFiles, потому что они используют другой имя. В представлении сведений о проекте Ctl нажмите и выберите «Показать необработанные ключи / значения», а затем вы увидите ссылки на CFBundleWhatever. В случае этого редактора он пытался использовать несуществующий icon=72-@2x.png файл.


мои две копейки:

загрузите последнюю версию загрузчика приложений. Я только что обновил и теперь получаю другое сообщение об ошибке.


Я только что прошел через эту проблему (снова), но на этот раз я обнаружил, что мой профиль распространения имеет статус «недействительный». Если вы считаете, что все остальное правильно, дважды проверьте статус на портале и обновите/повторно загрузите все, что не находится в активном состоянии.


Я получил недопустимый двоичный файл после загрузки приложения, без электронной почты о том, почему это не удалось. Я попытался сделать пару вещей сразу, и я не уверен, какой из следующих фактически исправил его:

  1. Перезапущен Macbook Pro
  2. переместил исходный код моего проекта с диска NTFS на диск HFS+ и перекомпилировал.

У меня была проблема с этим и 4.3 GM SDK. Одно из наших приложений не сделает его мимо полученной загрузки. Это оказалось проблемой профиля подготовки. Я восстановил профиль app store, и он работал нормально.


мое решение включало создание нового идентификатора приложения. Я не уверен, почему это исправило его, но я подозреваю, что это могли быть несоответствующие идентификаторы пакета — создание нового идентификатора приложения заставило меня убедиться, что мое приложение и iTunes ожидали того же.


другое решение:

для меня просто установка сертификатов «Release» под «подписанием кода» исправила это. Первоначально они были настроены на «не кодовый знак».


для меня проблема была решена путем resaving PNG-изображения с опцией non-interlaced. В предыдущих версиях interlaced png были разрешены, но знайте, что эти изображения могут вызвать недопустимый двоичный файл.

мое сообщение apple:
Поврежденный файл значка-файл значка iconGQ@2x.png похоже, она испорчена. Ваш значок не должен быть чересстрочным файлом PNG.

вы можете увидеть, если PNG переплетается с помощью команды «файл» в терминале:
Eva-Madrazos-MacBook-Pro-2: GQ 7 интеграция объявления Eva$ file *.формат PNG
По умолчанию.png: PNG данные изображения, 320 x 480, 8-бит/цвет RGB, не чересстрочный

удачи,
Ева!—1—>


Я хочу указать на возможность электронной почты Apple и попросить их проверить свои журналы. Я так и сделал, предварительно перепробовав кучу вещей. Спустя почти четыре недели пришлось напомнить им об этом, но в конце концов они ответили и указали точное место вопроса.

проблема в моем случае заключалась в том, что я ранее пробовал другие значки приложений, и ссылка на старое изображение все еще оставалась в «CFBundleIcons». Я использовал функцию перетаскивания, чтобы установить значок, но Я не заметил, что старый контент не был полностью очищен до добавления новой ссылки.

чтобы увидеть ошибочную ссылку, необходимо было развернуть стрелки для просмотра каждого подэлемента в файле plist. Один из советов-щелкнуть правой кнопкой мыши по файлу и выбрать опцию для просмотра необработанного содержимого. Таким образом, вам не нужно ничего расширять.


Я пробовал все другие предлагаемые решения, но ничего не помогло.

в итоге я создал новый проект Xcode и скопируйте мой код и ресурсы. Это сделало трюк, и мое приложение было помещено в очередь обзора.

Я также могу порекомендовать яблоки технические примечания по подписанию кода для отладки/проверки.


uuid не допускается.
Я исправил это, удалив все [[UIDevice currentDevice] uniqueIdentifier];


Я пытаюсь загрузить приложение в iPhone App Store, но получаю это сообщение об ошибке из iTunes Connect:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.


Примечание. Детали исходного вопроса были удалены, так как эта страница превратилась в хранилище всей информации о возможных причинах этого конкретного сообщения об ошибке.

Для получения общей информации об отправке приложений iPhone в App Store см. Шаги по загрузке приложения для iPhone в AppStore.

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
34

Итак, повторив эти шаги несколько раз, я наконец успешно загрузил свое приложение.

Я не знаю точно, что это исправило, но перед успешной попыткой я закрыл Xcode и Firefox и перезапустил их. Я предполагаю, что в одном из этих приложений была плохая игра.

По моему опыту, Xcode иногда не понимает, какой сертификат подписи использовать. У меня появилась привычка выходить и перезапускать Xcode после любого изменения настроек подписи кода (и выполнения чистой сборки), чтобы обойти эту проблему.

У меня была такая же проблема, и я решил ее следующим образом:

Сертификаты собственности были установлены на моем компьютере для разработки, и mobileprovision.embedded был включен в архив распространения. Примерно через час поисков в Google и копаний я обнаружил источник ошибки. Внутри Xcode я скопировал конфигурацию выпуска и создал новую конфигурацию распространения, а затем изменил удостоверение подписи на свой сертификат распространения. Однако, несмотря на то, что он был обновлен в графическом интерфейсе, файл проекта не был обновлен правильно.

Если вы столкнулись с той же ошибкой, поищите в каталоге [ProjectName] .xcodeproj файл project.pbxproj и откройте его в своем любимом редакторе. Найдите раздел «Распространение». Мой сломанный выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

Во втором разделе вы можете увидеть, что идентификатор подписи и профиль подготовки неверны. Отредактируйте его, чтобы он соответствовал первому разделу, перестройте, и все будет хорошо. Последний выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

Гиды изменены, чтобы защитить невиновных

Вот проблема, с которой я столкнулся: я добавил двоичный файл в Subversion перед загрузкой. После этого при сжатии / архивировании двоичного файла были включены скрытые каталоги .svn, что испортило подписание кода.

Та же проблема, другое решение.

В моем случае я сжимал файл с помощью zip -r myapp.zip myapp.app
Оказывается, команда zip прикрутил связку. Сжатие из искателя заставило его работать.

Я просто хотел упомянуть, что у меня тоже была проблема с zip из команды
линия тоже. Проблема заключается в том, как он по умолчанию обрабатывает символические ссылки. С помощью:

Zip -y -r myapp.zip myapp.app

Решил эту проблему.

Я пробовал разные вещи после прочтения разных постов, в том числе и выше. То, что в итоге сработало для меня, началось полностью заново! Я удалил все сертификаты и профили обеспечения, связанные с моим приложением.

Я воссоздал новый сертификат разработки и новый сертификат распространения. Я снова скачал промежуточный сертификат. Затем я воссоздал профиль разработки и профиль распространения.

После установки трех сертификатов (на этот раз я заметил, что в дистрибутиве были как закрытый, так и открытый ключи) и двух профилей подготовки (мой профиль распространения не был помечен как не имеющий действительного сертификата!), Все заработало.

Как только я принял решение отозвать все и начать заново, мне потребовалось всего около 5 минут, чтобы создать новый материал и переустановить его.

У меня была такая же проблема: при сборке я заметил, что подготовка не добавлена ​​в сборку.

Для меня исправление заключалось в том, чтобы установить сборку на устройство iphone, где я обычно использую симулятор, но тогда он не будет включать профиль подготовки …

Это может быть ошибкой новичка. Обычно вы не можете собрать для устройства, но когда вы делаете это для распространения, вы можете.

У меня была такая же проблема, и после нескольких попыток — я удалил права .plist из прав на подпись кода (просто оставил его пустым), и он собрался нормально и загрузился НАКОНЕЦ.

Всем удачи

У меня была эта проблема сегодня, но ответы здесь не помогли. Я наконец нашел проблему.

Обязательно используйте раскрывающееся меню: Проект> Изменить активную цель «Название проекта» для изменения подписи кода на распространение — я выбрал проект на панели «Группы и файлы» и использовал кнопку «Информация», которая показывает информацию ПРОЕКТ, а не информацию ЦЕЛЬ — очень запутанно! Я понял только тогда, когда я отключил подписку кода в проекте и построил, а он все еще хочет подписывать код!

Думаю, поэтому в посте Эдди ему пришлось изменить его на уровне project.pbxproj

Также в исходном посте на 1-м шаге:
1. В Xcode выберите Device | Release target.
Неужто это должно быть Устройство | Цель распространения? (при условии, что этот скопированный выпуск и переименован в его распространение в соответствии с инструкциями Apple на портале Provisioning Portal)

Мои два цента:

Загрузите последнюю версию загрузчика приложений. Я только что обновился и теперь получаю другое сообщение об ошибке.

У меня такая же проблема. Я был готов решить эту проблему, но понял это, когда пошел проверять свой код с помощью Murky. Я всегда просматриваю различия в файлах, которые изменились, прежде чем я вернусь. В этот раз я заметил, что файл project.pbxproj был изменен …. и в разделе «Распространение» запись «PROVISIONING_PROFILE [sdk = iphoneos *] »Было пустым.

У меня не работали выход и перезапуск Xcode. Вместо этого я вошел в настройки своего проекта и цели и изменил подпись кода, чтобы напрямую выбрать мой профиль распространения, а не полагаться на функцию автоматического выбора. Это привело к тому, что файл project.pbxproj заполнился правильными значениями, хотя функция автоматического выбора предположительно выбрала тот же самый профиль, который я выбрал вручную.

Мне нужно пиво…

У меня была аналогичная проблема, но я не использую rightlements.plist. Однако после десятка неудачных загрузок я проверил свой info.plist и кое-что обнаружил. В моем массиве CFBundleIconFiles была пустая запись. Я удалил это и отправил повторно, и, наконец, он был принят!

Серьезно, насколько сложно для Apple выявить подобные ошибки валидации?

Обновлено: это не сразу видно, где находятся CFBundleIconFiles, потому что они используют другое имя. В информационном окне проекта нажмите Ctrl и выберите «Показать необработанные ключи / значения», после чего вы увидите ссылки на CFBundleWhatever. В случае с этим редактором он пытался использовать несуществующий файл icon=72-@2x.png.

См. Эту ссылку для решения:

Http://greghaygood.com/2010/09/04/invalid-binary-message-from-itunesconnect

Короткий ответ: «В конце концов я дважды проверил свой info.plist и кое-что обнаружил. Я добавил CFBundleIconFiles в соответствии с новыми рекомендациями, но в списке массивов была пустая запись. Я удалил ее и повторно отправил, и, наконец, принято!»

Я просто прошел через эту неприятность (снова), но на этот раз обнаружил, что мой профиль распространения имеет статус «Недействительный». Если вы считаете, что все остальное в порядке, дважды проверьте статус на портале и обновите / повторно загрузите все, что не находится в активном состоянии.

Решили эту проблему, очистив файл myProject.xcodeproj (щелкните правой кнопкой мыши, откройте пакет), пакет содержал файлы от соразработчика, после их удаления проблема была решена

Я получил недействительный двоичный файл после загрузки приложения, и я не получил ответ по электронной почте о том, почему это не удалось. Я пробовал делать сразу несколько вещей, и я не уверен, что из следующего на самом деле исправило это:

  1. Перезагрузили Macbook Pro
  2. Исходный код моего проекта перенесен с диска NTFS на диск HFS + и перекомпилирован.

У меня была аналогичная проблема, но в Monotouch. Я обнаружил, что мой профиль выпуска настроен на использование сертификатов разработчика. Должно получиться так:

Для меня решением было создание сертификата распространения по адресу:
Портал подготовки разработчиков Apple.

У меня была проблема с этим и с 4.3 GM SDK. Одно из наших приложений не прошло загрузку. Оказалось, что это проблема с профилем подготовки. Я регенерировал профиль магазина приложений, и он работал нормально.

Еще одна точка данных: какое-то время мое приложение работало. Теперь я добавил поддержку покупок в приложении, и внезапно он не работает с проблемой «Недействительный двоичный код / ​​недействительная подпись». При внимательном рассмотрении я обнаружил, что значение идентификатора приложения в файле plist прав было отключено.

Скорее всего, это было связано с тем, что я заменил профиль подготовки с подстановочного символа на профиль для конкретного приложения (требуется для покупок в приложении). Неверный идентификатор приложения в старом профиле. Он не соответствовал идентификатору приложения в info.plist, но, видимо, iTunes простил это.

Итак, резюмируем:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

В порядке, пока

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

Вызывает «Неверный двоичный файл».

Я получил недопустимый двоичный файл, если приложение не использует удаленное push-уведомление, но я оставил код для регистрации push и делегатов обратного вызова для регистрации / получения удаленного уведомления без комментариев, даже если код не используется.

Это недавно. Моя последняя отправка на прошлой неделе была прекрасной. На этой неделе он возвращает неверный двоичный файл. К счастью, есть письмо с объяснением ошибки.

Кажется, у этой проблемы много причин. Вот мое решение:

Это относится ко всем, кто принадлежит к нескольким командам разработчиков (например, к вашим собственным приложениям и вашим компаниям).

Если вы создаете сборку с одним набором учетных данных и повторно подписываете ее с другим (например, для распространения adhoc / appstore), вы должны убедитесь, что сборка была изначально создана и подписана с учетными данными, принадлежащими той же группе разработчиков iOS, которой принадлежат учетные данные распространения, с которыми вы повторно подписываете.

Поэтому не создавайте с учетными данными «Indy Dev Inc», а затем пытайтесь выполнить развертывание с учетными данными «Company Inc». Убедитесь, что вы настроили и разработчик «Company Inc», и учетные данные распространения, и используете их.

Я разместил больше информации об этом в своем блоге: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

Как бы то ни было, я хочу добавить, что помогло мне решить эту проблему. У меня есть ? (знак вопроса) в названии моего приложения, которое вызывало ошибку.

Мое решение заключалось в создании нового идентификатора приложения. Я не уверен, почему это исправлено, но я подозреваю, что это могло быть несовпадение идентификаторов пакетов — создание нового идентификатора приложения заставило меня убедиться, что мое приложение и iTunes ожидают того же.

Попробовав все другие исправления, перечисленные здесь, мы зарегистрировали TSI с Apple. После выполнения всех шагов в Техническое примечание TN2250 наша проблема была вызвана тем, что запечатанный ресурс отсутствует или недействителен. В нашем случае это был ._.DS_Store.

Файл «.. »называется файлом Apple Double и является результатом копирования * распакованной * папки проекта Xcode в файловую систему, которая не поддерживает должным образом« вилки ресурсов »HFS + (используемые для подписей кода). дополнительный «..» файлы приводят к ошибке проверки подписи кода.

Чтобы удалить проблемные файлы Apple Double из папки проекта Xcode, запустите команду dot_clean в папке проекта Xcode, выполните чистую сборку, а затем повторно заархивируйте и повторите попытку отправки.

dot_clean /the/path/to/xcode/project

Примечание: вы можете просто перетащить папку проекта в терминал, чтобы автоматически заполнить путь

При запуске команды сообщение отсутствует, но сборка проекта может показать предупреждение о файле при следующей сборке. Вы можете проигнорировать это, приложение проверит и отправит успешно.

Другое решение:

Для меня просто установка сертификатов «Release» в «подпись кода» исправила это. Первоначально они были настроены на «Не кодировать».

Для меня проблема была решена путем пересохранения изображения PNG с опцией без чересстрочной развертки. В предыдущих версиях разрешались чересстрочные png, но знайте, что эти изображения могут вызвать недопустимый двоичный файл.

Мое сообщение о яблоке:
Поврежденный файл значка — файл значка iconGQ@2x.png кажется поврежденным. Ваш значок не должен быть файлом PNG с чересстрочной разверткой.

Вы можете увидеть, чередуется ли PNG, используя команду «файл» в терминале:
Eva-Madrazos-MacBook-Pro-2: реклама интеграции GQ 7 Eva $ file * .png
Default.png: данные изображения PNG, 320 x 480, 8-битный / цветной RGB, без чересстрочной развертки

Удачи,
Ева

Я хочу указать на возможность отправить электронное письмо Apple и попросить их проверить свои журналы. Я так и сделал, предварительно попробовав множество вещей. Необходимо было напомнить им почти через четыре недели, но в конце концов они ответили и указали точное место проблемы.

В моем случае проблема заключалась в том, что я ранее пробовал другие значки приложений, и ссылка на старое изображение все еще оставалась в «CFBundleIcons». Я использовал функцию перетаскивания, чтобы установить значок, но я не заметил, что старый контент не был полностью очищен до добавления новой ссылки.

Чтобы увидеть ошибочную ссылку, необходимо было развернуть стрелки, чтобы просмотреть каждый подэлемент в файле plist. Один из советов — щелкнуть файл правой кнопкой мыши и выбрать вариант просмотра необработанного содержимого. Таким образом, вам не нужно ничего расширять.

Я пробовал все другие предложенные решения, но ничего не помогло.

В итоге я создал новый проект Xcode и скопировал в него весь свой код и ресурсы. Это помогло, и мое приложение было помещено в очередь на проверку.

Также могу порекомендовать Технические примечания к подписи кода Apple для отладки / проверки.

Uuid не допускается.
Я исправил это, удалив все [[UIDevice currentDevice] uniqueIdentifier];

С 1 мая 2013 года Apple обновила свои рекомендации по человеческому интерфейсу iOS, так что если вы хотите загрузить новое приложение или обновление, оно должно быть совместимо с iphone 5 (4 дюйма), то есть это не должно быть 3,5-дюймовым приложением, работающим на большом экран.

Из яблока:

Dear developer,

We have discovered one or more issues with your recent delivery for
«————-«. To process your delivery, the following issues must
be corrected:

iPhone 5 Optimization Requirement — Your binary is not optimized for
iPhone 5. As of May 1, all new iPhone apps and app updates submitted
must support the 4-inch display on iPhone 5. All apps must include a
launch image of the appropriate size. Learn more about iPhone 5
support by reviewing the iOS Human Interface Guidelines.

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

Есть еще один случай, когда двоичный файл будет признан недействительным. С 1 февраля 2015 г. новые приложения для iOS должны поддерживать 64-разрядную архитектуру. Вот письмо от Apple:

Dear developer,

We have discovered one or more issues with your recent delivery for
«Home — Recruitment». To process your delivery, the following issues
must be corrected:

Missing 64-bit support — Beginning on February 1, 2015 new iOS apps
submitted to the App Store must include 64-bit support and be built
with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need
to follow the same requirements. To enable 64-bit in your project, we
recommend using the default Xcode build setting of “Standard
architectures” to build a single binary with both 32-bit and 64-bit
code.

Once these issues have been corrected, you can then redeliver the
corrected binary.

Regards,

The App Store team

В моем случае это был TestFlight SDK, включенный в двоичный файл проекта.

Я создал новый проект из другого старого источника проекта (который включал testflight), но поскольку это новый проект с новыми идентификаторами, TestFlight SDK здесь больше не разрешен.

Я удалил его, затем заархивировал и снова загрузил. На этот раз нет ошибки «недопустимый двоичный код».

Другие вопросы по теме

Я пытаюсь загрузить приложение в магазин приложений iPhone, но я получаю это сообщение об ошибке от iTunes Connect:

загруженный вами двоичный файл недействителен. Подпись была недействительной или не была подписана сертификатом Apple submission.


Примечание: детали исходного вопроса были удалены, так как эта страница превратилась в хранилище для всей информации о возможных причинах этой конкретной ошибки сообщение.

общие сведения о подаче приложений для iPhone в App Store см. В разделе шаги для загрузки приложения iPhone в AppStore.

30 ответов


по моему опыту, Xcode иногда путается в том, какой сертификат подписи использовать. У меня вошло в привычку бросать и перезапускать Xcode после любого изменения настроек подписи кода (и делать чистую сборку), чтобы обойти эту проблему.


Я просто хотел упомянуть, что у меня тоже была проблема с zip из команды
линии, а также. Проблема заключается в том, как он обрабатывает символические ссылки по умолчанию. Использование:

zip-y-r myapp.молния приложение.app

решил эту проблему.


у меня была такая же проблема и решил ее таким образом:

сертификаты свойств были установлены на моей машине разработки и mobileprovision.embedded был включен в архив рассылки. Через час или около того поиска и копания я нашел источник ошибки. Внутри Xcode я скопировал конфигурацию выпуска и создал новую конфигурацию распространения, а затем изменил идентификатор подписи на мой сертификат распространения. Однако, несмотря на то, что он был обновлен в GUI файл проекта был обновлен неправильно.

Если вы столкнулись с той же ошибкой, посмотрите в своем [ProjectName].каталог xcodeproj для проекта.pbxproj файл и откройте его в своем любимом редакторе. Ищите раздел распределения. Мой сломанный выглядел так:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

вы можете увидеть, что идентификатор подписи и профиль подготовки неверны во втором разделе. Отредактируйте его в соответствии с первым разделом, перестройте, и вам должно быть хорошо идти. Последнее выглядело это:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guids изменены, чтобы защитить невинных


та же проблема, другое решение.

в моем случае я сжимал файл с помощью zip -r myapp.zip myapp.app
Оказывается, команда zip прикрутила сверток. Сжатие его из искателя заставило его работать.


У меня была такая же проблема, и после нескольких попыток-я удалил.plist права из прав подписи кода (просто оставил его пустым), и он построил штраф и загрузил, наконец.

удачи всем : — D


еще одна точка данных: на некоторое время мое приложение прошло. Теперь я добавил поддержку покупок в приложении, и внезапно он терпит неудачу с проблемой «недопустимая двоичная/недопустимая подпись». При внимательном просмотре я обнаружил, что значение application-identifier в файле entitlements plist отключено.

это, скорее всего, связано с тем, что Я заменил профиль подготовки с wildcarded на app-specific (требуется для покупок в приложении). Неправильный идентификатор приложения квалифицированный по старому профилю. Он не соответствует идентификатору приложения в информации.plist, но, по-видимому, iTunes простил это.

Итак, резюмируем:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

ОК, а

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

вызывает «недопустимый двоичный файл».


У меня была та же проблема, что и при построении, я заметил, что подготовка не была добавлена в сборку.

исправление для меня состояло в том, чтобы установить сборку на устройство iphone, где я обычно использую симулятор, но тогда он не будет включать профиль подготовки…

Это может быть ошибка noob. Обычно вы не можете строить на устройстве, но когда вы делаете это для распространения, вы можете.


Ну, после повторения шагов несколько раз, я, наконец, успешно загрузил свое приложение.

Я не знаю точно, что это исправило, но до успешной попытки я закрыл Xcode и Firefox и перезапустил их. Думаю, в одном из этих приложений был плохой Джуджу.

4

автор: Kristopher Johnson


вот проблема, с которой я столкнулся: я добавил двоичный файл в Subversion перед загрузкой. Comparessing/сжать бинарных затем включаются скрытые .каталоги svn, которые испортили подпись кода.


Я пробовал различные вещи после прочтения различных сообщений, включая те, что выше. Что наконец-то сработало для меня, так это начать все сначала! Я удалил все сертификаты и профили подготовки, связанные с моим приложением.

я воссоздал новый сертификат разработки и новый сертификат распространения. Я снова загрузил промежуточный сертификат. Затем я воссоздал профиль разработки и профиль распространения.

после установки трех сертификатов (I заметил, что в дистрибутиве были как частные, так и открытые ключи на этот раз) и два профиля подготовки (мой профиль распространения не был помечен как не имеющий действительного сертификата!), все работало.

Как только я принял решение отменить все и просто начать все сначала, потребовалось всего около 5 минут, чтобы создать новый материал и переустановить.



У меня была аналогичная проблема, но в Monotouch. Я обнаружил, что мой профиль выпуска настроен на использование сертификатов разработчика. Это должно выглядеть так:
enter image description here

3

автор: BahaiResearch.com


кажется, эта проблема имеет много причин. Вот решение моего:

Это относится ко всем, кто принадлежит к нескольким командам разработчиков (например, ваши собственные приложения и ваши компании).

Если вы создаете сборку с одним набором учетных данных и повторно подписываете ее с другим (например, для распространения adhoc / appstore), вы должны убедитесь, что сборка была первоначально построена и подписана учетными данными, принадлежащими той же команде разработчиков iOS, что учетные данные распространения, которые вы повторно подписываете, принадлежат.

поэтому не создавайте с учетными данными «Indy Dev Inc», а затем попробуйте развернуть с учетными данными» Company Inc». Убедитесь, что вы настроили как «Company Inc» dev, так и учетные данные распространения и используете их.

Я опубликовал больше информации об этом в своем блоге: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/


У меня была та же проблема. Я был готов бросить полотенце на эту проблему, но я понял это, когда я пошел, чтобы проверить свой код с помощью Murky. Я всегда просматриваю различия в файлах, которые изменились, прежде чем регистрироваться. При этом на этот раз я заметил, что проект.pbxproj файл был изменен….и в разделе дистрибутива запись «PROVISIONING_PROFILE[sdk=iphoneos*]» была пустой.

выход и перезапуск Xcode не работали для меня. Вместо этого я вошел в оба моих параметры проекта и цели и изменили подпись кода, чтобы напрямую выбрать мой профиль распространения, а не полагаться на функцию автоматического выбора. Это вызвало проект.файл pbxproj для заполнения правильными значениями, даже если функция автоматического выбора предположительно выбрала тот же профиль, который я выбрал вручную.

Мне нужно пиво…


после попытки всех других исправлений, перечисленных здесь, мы зарегистрировали TSI с Apple. Выполнив все шаги в техническое Примечание TN2250 наша проблема была вызвана тем, что был закрытый ресурс отсутствует или недействителен. В нашем случае это было ._.DS_Store.

The «..»называется двойным файлом Apple и является результатом копирования папки проекта Xcode, * unzipped*, на и обратно из файловой системы, которая должным образом не поддерживает HFS+’s ‘resource forks’ (используется для кода подписывание.) Эти лишние «..»файлы приводят и вызывают сбой проверки подписи кода.

чтобы очистить проблемные двойные файлы Apple из папки проекта Xcode, выполните команду dot_clean в папке проекта Xcode, выполните чистую сборку, а затем повторно выполните архивацию и повторное подключение отправки.

dot_clean /the/path/to/xcode/project

Примечание: Вы можете просто перетащить папку проекта в терминал, чтобы автоматически заполнить путь

нет сообщения, когда вы запускаете команду, но сборка проекта может показать предупреждение о файле при следующей сборке. Вы можете игнорировать это, приложение будет проверять и отправлять успешно.


решил это, очистив myProject.xcodeproj файл (щелкните правой кнопкой мыши, открыть пакет), пакет содержал файлы от со-разработчика, после удаления этих проблема была решена



для чего это стоит, я хочу добавить, что исправила эту проблему для меня. У меня ? (вопросительный знак) в названии моего приложения, которое вызвало ошибку.


Я получил недопустимый двоичный файл, если приложение не использует удаленное push-уведомление, но я оставил код для регистрации push и делегатов обратного вызова для регистрации/получения удаленного уведомления незафиксированным, даже если код не используется.

Это последние. Мое последнее представление на прошлой неделе было в порядке. На этой неделе он возвращает недопустимый двоичный файл. К счастью, есть письмо, которое объясняет ошибки.


У меня была аналогичная проблема, но я не права.файл plist. Однако после дюжины неудачных загрузок я проверил свою информацию.плист и обнаружил что-то. Мой массив CFBundleIconFiles имел пустую запись. Я удалил это и повторно подал, и это было, наконец, принято!

серьезно, насколько сложно было бы Apple разоблачить такие ошибки проверки?

Edit: это не сразу apparant, где CFBundleIconFiles, потому что они используют другой имя. В представлении сведений о проекте Ctl нажмите и выберите «Показать необработанные ключи / значения», а затем вы увидите ссылки на CFBundleWhatever. В случае этого редактора он пытался использовать несуществующий icon=72-@2x.png файл.


мои две копейки:

загрузите последнюю версию загрузчика приложений. Я только что обновил и теперь получаю другое сообщение об ошибке.


Я только что прошел через эту проблему (снова), но на этот раз я обнаружил, что мой профиль распространения имеет статус «недействительный». Если вы считаете, что все остальное правильно, дважды проверьте статус на портале и обновите/повторно загрузите все, что не находится в активном состоянии.


Я получил недопустимый двоичный файл после загрузки приложения, без электронной почты о том, почему это не удалось. Я попытался сделать пару вещей сразу, и я не уверен, какой из следующих фактически исправил его:

  1. Перезапущен Macbook Pro
  2. переместил исходный код моего проекта с диска NTFS на диск HFS+ и перекомпилировал.

У меня была проблема с этим и 4.3 GM SDK. Одно из наших приложений не сделает его мимо полученной загрузки. Это оказалось проблемой профиля подготовки. Я восстановил профиль app store, и он работал нормально.


мое решение включало создание нового идентификатора приложения. Я не уверен, почему это исправило его, но я подозреваю, что это могли быть несоответствующие идентификаторы пакета — создание нового идентификатора приложения заставило меня убедиться, что мое приложение и iTunes ожидали того же.


другое решение:

для меня просто установка сертификатов «Release» под «подписанием кода» исправила это. Первоначально они были настроены на «не кодовый знак».


для меня проблема была решена путем resaving PNG-изображения с опцией non-interlaced. В предыдущих версиях interlaced png были разрешены, но знайте, что эти изображения могут вызвать недопустимый двоичный файл.

мое сообщение apple:
Поврежденный файл значка-файл значка iconGQ@2x.png похоже, она испорчена. Ваш значок не должен быть чересстрочным файлом PNG.

вы можете увидеть, если PNG переплетается с помощью команды «файл» в терминале:
Eva-Madrazos-MacBook-Pro-2: GQ 7 интеграция объявления Eva$ file *.формат PNG
По умолчанию.png: PNG данные изображения, 320 x 480, 8-бит/цвет RGB, не чересстрочный

удачи,
Ева!—1—>


Я хочу указать на возможность электронной почты Apple и попросить их проверить свои журналы. Я так и сделал, предварительно перепробовав кучу вещей. Спустя почти четыре недели пришлось напомнить им об этом, но в конце концов они ответили и указали точное место вопроса.

проблема в моем случае заключалась в том, что я ранее пробовал другие значки приложений, и ссылка на старое изображение все еще оставалась в «CFBundleIcons». Я использовал функцию перетаскивания, чтобы установить значок, но Я не заметил, что старый контент не был полностью очищен до добавления новой ссылки.

чтобы увидеть ошибочную ссылку, необходимо было развернуть стрелки для просмотра каждого подэлемента в файле plist. Один из советов-щелкнуть правой кнопкой мыши по файлу и выбрать опцию для просмотра необработанного содержимого. Таким образом, вам не нужно ничего расширять.


Я пробовал все другие предлагаемые решения, но ничего не помогло.

в итоге я создал новый проект Xcode и скопируйте мой код и ресурсы. Это сделало трюк, и мое приложение было помещено в очередь обзора.

Я также могу порекомендовать яблоки технические примечания по подписанию кода для отладки/проверки.


uuid не допускается.
Я исправил это, удалив все [[UIDevice currentDevice] uniqueIdentifier];


Мы наконец-то подошли к отправке нашего первого приложения для iPhone в магазин приложений (или пытаемся это сделать), но я не могу заставить iTunes Connect принять загрузку.

Я попытался использовать как веб-сайт («Загруженный вами двоичный файл недействителен. Подпись недействительна или не была подписана сертификатом отправки Apple»), так и загрузчик приложений («Info.plist не содержит спецификации CFBundleResourceSpecification. «).

После долгого чтения (включая подобных вопросов), повторного чтения и поиска в Google, Могу сказать, что:

  • Я уверен, что идентификатор пакета совпадает с AppID.
  • Существует Icon.png, это PNG-файл размером 57×57 пикселей, и это точное имя в Info.plist.
  • Я занимаюсь сборкой устройства, а не симулятора.
  • Процесс подписания завершается успешно: результаты сборки показывают это, а запуск codesign -vvvv MyApp.app указывает на отсутствие проблем.
  • В пути к ZIP-файлу нет странных символов.
  • Я удалил папку сборки и несколько раз пересобирал двоичный файл.

Верно, что в созданном приложении Info.plist не содержит ключа CFBundleResourceSpecification, но мне совсем не ясно, откуда это значение или что еще мне нужно добавить, чтобы эта работа. (Единственная ссылка, которую я могу найти с помощью поиска Apple, — это некоторая версия для подписи кода примечания… но, как я уже упоминал выше, этап подписания кода, насколько я могу судить, проходит успешно.)

Кто-нибудь сталкивался с какими-либо объяснениями этой проблемы, о которых я еще не упоминал?

РЕДАКТИРОВАТЬ: Вот (слегка отредактированный) результат этапа подписания кода сборки, FWIW:

Скриншот подписи кода http://img70.yfrog.com/img70/8988/codesign.png

7 ответов

Лучший ответ

Проблема, похоже, заключалась в том, что я использовал в своем приложении json-framework, и включив его в качестве дополнительного SDK в соответствии с инструкциями в вики < / а>. Я предполагаю, что XCode запутался из-за наличия> 1 SDK и поэтому не смог найти ResourceRules.plist по умолчанию, как и предполагалось.

Я нашел два решения (ну, во всяком случае, обходные пути):

  1. Используйте параметр сборки «Путь к правилам ресурса подписи кода» (который по умолчанию пуст), чтобы указать путь к файлу, который должен использовать XCode: $(SDKROOT)/ResourceRules.plist. Это работает и кажется достаточно безобидным, но разочаровывает в том смысле, что XCode должен иметь возможность выяснить это самостоятельно. (Я нашел это решение в очень старой проблеме подано на json-framework.)
  2. Не используйте подход SDK. Вместо этого просто включите файлы непосредственно в проект и обновите операторы #import локальными путями. В конечном итоге я выбрал именно такой подход, поскольку мы приняли общее решение объединить все внешние зависимости в сам проект (чтобы другим разработчикам не приходилось настраивать свои машины для начала работы).

Я не уверен, ошибка ли это в XCode или что-то не так с json-framework, но у меня на всякий случай написал о проблеме.

ОБНОВЛЕНИЕ, 30 июня 2010 г .: проблема, которую я зарегистрировал, закрыта, и г-н Браутасет планирует удалить поддержку опции SDK в следующем выпуске (2.3) проекта. Кроме того, код теперь находится на GitHub, хотя страницы кода Google пока существуют.


10

Sixten Otto
30 Июн 2010 в 21:12

Для меня, после проверки всех вещей (кодовый знак, файл значка …), но вы не можете загрузить свое приложение, попробуйте удалить встроенный файл. Не забудьте скопировать файл file.app, чтобы заархивировать свое приложение.


1

Pham Hong Nghiep
17 Дек 2010 в 06:27

Вы уверены, что используете дистрибутив, а не разработку, сертификат и мобильное обеспечение?


0

Ben Gottlieb
2 Фев 2010 в 00:33

Я предполагаю, что вы загружаете файл .zip.

Я только что проверил загруженное мной приложение, и CFBundleResourceSpecification есть только в подписанных версиях (то есть в сборках устройства).


0

David Dunham
3 Фев 2010 в 07:59

Вы собираете / копируете / архивируете что-нибудь из командной строки? В таком случае нужно быть очень осторожным с символическими ссылками. .app поставляется с подкаталогом в качестве символической ссылки на другой, и если вы скопируете его или заархивируете без правильных флагов, он скопирует содержимое на бумажном носителе, что нарушит кодовую подпись.

Это случилось со мной — и хуже всего то, что специальные сборки работают нормально без символической ссылки, поэтому вы не заметите проблемы до сборки магазина приложений.


0

Jesse Beder
3 Фев 2010 в 08:17

Это сообщение может появиться по другой причине (как я только что обнаружил сегодня утром): если в вашем проекте есть несколько Info.plist, Application Uploader может обнаружить «неправильный» Info.plist и запутаться.

Это происходило со мной, потому что автоматизированная часть сборки создавала Info.plist в пакете, внесенном в проект.

Подсказка здесь для решения: http://infinite-sushi.com/2010 / 08 / the-case-of-the-missing-cfbundleresourcespecification /


0

dpjanes
27 Авг 2010 в 15:39

Я пытаюсь отправить обновление существующего приложения от имени одного из моих клиентов, и я получаю сбои «Invalid Binary» из iTunes Connect без объяснения ошибки. Завтра я уезжаю на двухнедельный отпуск без доступа к сети, поэтому я немного отчаянно нуждаюсь в решении. Любые идеи с благодарностью.

Это обновление изменяет название приложения и исправляет несколько незначительных ошибок. Я делал предыдущие заявки через iTunes Connect, но я отправляю это обновление через XCode, как того требует Apple.

Я настроил себя в качестве технического контакта для этого клиента, поэтому я получаю уведомление, когда я переводю новую версию в состояние «Ожидание загрузки» через iTunes Connect. Когда я затем проверяю двоичный файл через органайзер Xcode, инструмент в конце концов сообщает, что двоичный файл действителен. Когда я отправляю двоичный файл через органайзер Xcode, он в конечном итоге возвращается и сообщает, что двоичный файл успешно загружен. Оба эти шага занимают некоторое время (может быть, 15 минут каждый), вероятно, потому что пакет приложений составляет 63 мегабайта с тысячами ресурсов.

В течение следующего часа или двух портал iTunes Connect по-прежнему сообщает, что приложение находится в состоянии «Ожидание загрузки». Я полагаю, что некоторая задержка является нормальной между временем, когда загрузка завершается в XCode, и когда состояние изменяется в iTunes Connect. Эти часы задержки кажутся чрезмерными, но я полагаю, что это не совсем удивительно, учитывая размер приложения.

В конце концов, состояние просто тихо меняется на «Invalid Binary» в iTunes connect. Я понимаю, что iTunes Connect должен отправить электронное письмо с объяснением ошибки, когда это происходит, но я ничего не получаю, как и мой клиент. (Я предполагаю, что это должно идти всем пользователям, отмеченным для уведомления об изменениях состояния приложения в iTunes Connect. Это предположение правильно?)

Вот параметры сборки, скопированные и вставленные из моей конфигурации App Store Distribution:

ADDITIONAL_SDKS = 
ARCHS = $(ARCHS_STANDARD_32_BIT)
SDKROOT = iphoneos4.0
ONLY_ACTIVE_ARCH = YES
VALID_ARCHS = armv6 armv7
SYMROOT = /Users/cduhn/Documents/workspace/xcode_build_output
OBJROOT = $(SYMROOT)
CONFIGURATION_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
CONFIGURATION_TEMP_DIR = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
SHARED_PRECOMPS_DIR = $(CACHE_ROOT)/SharedPrecompiledHeaders
BUILD_VARIANTS = normal
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
ENABLE_OPENMP_SUPPORT = NO
GENERATE_PROFILING_CODE = NO
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES
RUN_CLANG_STATIC_ANALYZER = NO
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = NO
VALIDATE_PRODUCT = NO
CODE_SIGN_ENTITLEMENTS = Entitlements.plist
CODE_SIGN_IDENTITY = 
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution: Capturing Moments
CODE_SIGN_RESOURCE_RULES_PATH = 
OTHER_CODE_SIGN_FLAGS = 
STRIPFLAGS = 
ALTERNATE_GROUP = $(INSTALL_GROUP)
ALTERNATE_OWNER = $(INSTALL_OWNER)
ALTERNATE_MODE = $(INSTALL_MODE_FLAG)
ALTERNATE_PERMISSIONS_FILES = 
DEPLOYMENT_LOCATION = NO
DEPLOYMENT_POSTPROCESSING = NO
INSTALL_GROUP = $(GROUP)
INSTALL_OWNER = $(USER)
INSTALL_MODE_FLAG = u+w,go-w,a+rX
DSTROOT = /tmp/$(PROJECT_NAME).dst
INSTALL_PATH = $(HOME)/Applications
MACOSX_DEPLOYMENT_TARGET = $(inherited)
SKIP_INSTALL = YES
COPY_PHASE_STRIP = YES
STRIP_INSTALLED_PRODUCT = 
STRIP_STYLE = all
TARGETED_DEVICE_FAMILY = 1
SEPARATE_STRIP = NO
IPHONEOS_DEPLOYMENT_TARGET = 3.0
MODULE_NAME = 
MODULE_START = 
MODULE_STOP = 
MODULE_VERSION = 
BUNDLE_LOADER = 
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic
DYLIB_COMPATIBILITY_VERSION = 
DYLIB_CURRENT_VERSION = 
LINKER_DISPLAYS_MANGLED_NAMES = NO
PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO
LD_DYLIB_INSTALL_NAME = 
EXPORTED_SYMBOLS_FILE = 
INIT_ROUTINE = 
LINK_WITH_STANDARD_LIBRARIES = YES
MACH_O_TYPE = mh_execute
LD_OPENMP_FLAGS = -fopenmp
ORDER_FILE = 
OTHER_LDFLAGS = -all_load -ObjC
LD_MAP_FILE_PATH = $(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt
GENERATE_MASTER_OBJECT_FILE = NO
PREBINDING = NO
PRELINK_LIBS = 
KEEP_PRIVATE_EXTERNS = NO
LD_RUNPATH_SEARCH_PATHS = 
SEPARATE_SYMBOL_EDIT = NO
PRELINK_FLAGS = 
SECTORDER_FLAGS = 
UNEXPORTED_SYMBOLS_FILE = 
WARNING_LDFLAGS = 
LD_GENERATE_MAP_FILE = NO
COMPRESS_PNG_FILES = YES
APPLY_RULES_IN_COPY_FILES = NO
EXECUTABLE_EXTENSION = 
EXECUTABLE_PREFIX = 
INFOPLIST_EXPAND_BUILD_SETTINGS = YES
GENERATE_PKGINFO_FILE = YES
FRAMEWORK_VERSION = A
INFOPLIST_FILE = iRevealMaui-Info.plist
INFOPLIST_OTHER_PREPROCESSOR_FLAGS = 
INFOPLIST_OUTPUT_FORMAT = binary
INFOPLIST_PREPROCESSOR_DEFINITIONS = 
INFOPLIST_PREFIX_HEADER = 
INFOPLIST_PREPROCESS = NO
COPYING_PRESERVES_HFS_DATA = NO
PRIVATE_HEADERS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/PrivateHeaders
PRODUCT_NAME = iRevealMaui
PLIST_FILE_OUTPUT_FORMAT = binary
PUBLIC_HEADERS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Headers
STRINGS_FILE_OUTPUT_ENCODING = binary
WRAPPER_EXTENSION = app
ALWAYS_SEARCH_USER_PATHS = NO
FRAMEWORK_SEARCH_PATHS = 
HEADER_SEARCH_PATHS = ${SDKROOT}/usr/include/libxml2/** ../three20/Build/Products/three20
LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/../desiccant/Classes/External/google-analytics"
REZ_SEARCH_PATHS = 
EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = *.nib *.lproj *.framework *.gch (*) CVS .svn *.xcodeproj *.xcode *.pbproj *.pbxproj
INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = 
OTHER_TEST_FLAGS = 
TEST_HOST = 
TEST_RIG = 
CURRENT_PROJECT_VERSION = 
VERSION_INFO_FILE = $(PRODUCT_NAME)_vers.c
VERSION_INFO_EXPORT_DECL = 
VERSION_INFO_PREFIX = 
VERSION_INFO_SUFFIX = 
VERSIONING_SYSTEM = 
VERSION_INFO_BUILDER = $(USER)
GCC_FAST_OBJC_DISPATCH = YES
GCC_AUTO_VECTORIZATION = NO
GCC_OBJC_CALL_CXX_CDTORS = YES
GCC_ENABLE_SSE3_EXTENSIONS = NO
GCC_ENABLE_SSE41_EXTENSIONS = NO
GCC_ENABLE_SSE42_EXTENSIONS = NO
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = NO
GCC_STRICT_ALIASING = NO
GCC_FEEDBACK_DIRECTED_OPTIMIZATION = Off
GCC_ENABLE_FIX_AND_CONTINUE = NO
GCC_GENERATE_DEBUGGING_SYMBOLS = YES
GCC_DYNAMIC_NO_PIC = YES
GCC_GENERATE_TEST_COVERAGE_FILES = NO
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
GCC_MODEL_TUNING = G4
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_ENABLE_KERNEL_DEVELOPMENT = NO
GCC_DEBUGGING_SYMBOLS = default
GCC_REUSE_STRINGS = YES
GCC_NO_COMMON_BLOCKS = NO
GCC_ENABLE_OBJC_GC = unsupported
GCC_OPTIMIZATION_LEVEL = s
GCC_FAST_MATH = NO
GCC_ENABLE_SYMBOL_SEPARATION = YES
GCC_THREADSAFE_STATICS = YES
GCC_SYMBOLS_PRIVATE_EXTERN = YES
GCC_UNROLL_LOOPS = NO
GCC_MODEL_PPC64 = NO
GCC_CHAR_IS_UNSIGNED_CHAR = NO
GCC_ENABLE_ASM_KEYWORD = YES
GCC_C_LANGUAGE_STANDARD = c99
GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW = NO
GCC_CW_ASM_SYNTAX = YES
GCC_INPUT_FILETYPE = automatic
GCC_ALTIVEC_EXTENSIONS = NO
GCC_ENABLE_CPP_EXCEPTIONS = YES
GCC_ENABLE_CPP_RTTI = YES
GCC_LINK_WITH_DYNAMIC_LIBRARIES = YES
GCC_ENABLE_OBJC_EXCEPTIONS = YES
GCC_ENABLE_TRIGRAPHS = NO
GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS = NO
GCC_USE_INDIRECT_FUNCTION_CALLS = NO
GCC_USE_REGISTER_FUNCTION_CALLS = NO
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO
OTHER_CPLUSPLUSFLAGS = $(OTHER_CFLAGS)
GCC_PRECOMPILE_PREFIX_HEADER = YES
GCC_PREFIX_HEADER = iRevealMaui_Prefix.pch
GCC_ENABLE_BUILTIN_FUNCTIONS = YES
GCC_ENABLE_PASCAL_STRINGS = YES
GCC_FORCE_CPU_SUBTYPE_ALL = NO
GCC_SHORT_ENUMS = NO
GCC_ONE_BYTE_BOOL = NO
GCC_USE_STANDARD_INCLUDE_SEARCHING = YES
GCC_PREPROCESSOR_DEFINITIONS = 
GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = 
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO
GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO
GCC_WARN_ABOUT_GLOBAL_CONSTRUCTORS = NO
GCC_WARN_SHADOW = NO
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES
GCC_WARN_INHIBIT_ALL_WARNINGS = NO
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = NO
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_MISSING_PARENTHESES = NO
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO
GCC_WARN_ABOUT_MISSING_NEWLINE = NO
GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO
WARNING_CFLAGS = 
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO
GCC_WARN_PEDANTIC = NO
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES
GCC_WARN_PROTOTYPE_CONVERSION = NO
GCC_WARN_SIGN_COMPARE = NO
GCC_WARN_STRICT_SELECTOR_MATCH = NO
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO
GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = NO
GCC_TREAT_WARNINGS_AS_ERRORS = NO
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES
GCC_WARN_UNDECLARED_SELECTOR = NO
GCC_WARN_UNINITIALIZED_AUTOS = NO
GCC_WARN_UNKNOWN_PRAGMAS = NO
GCC_WARN_UNUSED_FUNCTION = NO
GCC_WARN_UNUSED_LABEL = NO
GCC_WARN_UNUSED_PARAMETER = NO
GCC_WARN_UNUSED_VALUE = NO
GCC_WARN_UNUSED_VARIABLE = YES
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
IBC_FLATTEN_NIBS = YES
IBC_OTHER_FLAGS = 
IBC_PLUGIN_SEARCH_PATHS = 
IBC_PLUGINS = 
IBC_ERRORS = YES
IBC_NOTICES = YES
IBC_WARNINGS = YES

Вот содержимое моего Info.plist:

Любые идеи с благодарностью.

РЕДАКТИРОВАТЬ — объяснил очевидное время изменения статуса

Судя по моей истории статусов, кажется, что статус «Invalid Binary» фактически устанавливается в течение нескольких минут, но iTunes Connect скрывает этот факт с помощью плохо разработанной стратегии кэширования.

Чтобы отслеживать изменения в состоянии, я обновлял и нажимал между четырьмя страницами: «Управление приложениями», страница «Информация о приложении», «Просмотр сведений» и «История состояния». Когда наконец обновляется история состояний, это показывает, что приложение перешло в состояние «Недопустимый двоичный код» примерно за час до этого.

В качестве эксперимента я попытался изменить свой идентификатор приложения и отправить двоичный файл в качестве нового приложения. На этот раз я нажал на страницу «Подробности» через несколько минут после отправки двоичного файла. Его статус показывал «Загрузить получено». Видимый прогресс! Пару минут спустя я щелкнул в «Истории состояния», и она показала «Недопустимый двоичный файл» всего через несколько минут после завершения загрузки. Затем я вернулся и обновил страницу «Просмотр деталей». Он по-прежнему показывает «Upload Received», несмотря на то, что в истории состояния отображается «Invalid Binary». Это довольно четкое свидетельство того, что все эти страницы кэшируются и показывают устаревшие данные в течение длительных периодов времени. Я понял это только тогда, когда повторно отправил бинарный файл как новое приложение, потому что я загружал страницы для этого приложения в первый раз.

Это не решает мою проблему «Invalid Binary» и не объясняет, почему я не получаю никаких писем, но помогает исключить некоторые гипотезы.

2010-08-08 06:44

30
ответов

Решение

Спасибо всем, кто предложил решения. Оказывается, ни одно из ваших предложений не помогло в моем случае, но я решил проблему. Вот что сработало для меня:

Удалите Entitlements.plist из вашего проекта. Затем выполните Add -> New File и повторно добавьте Entitlements.plist.

Формат Entitlements.plist изменился между SDK 3.1.3 и 3.2. Если ваш Entitlements.plist был создан с SDK более ранней, чем 3.2, и вы сейчас пытаетесь обновить свое приложение с помощью SDK 3.2 или более поздней версии, значит, вам необходимо удалить Entitlements.plist и повторно добавить его, используя новый формат, В противном случае Apple отклонит ваше обновление как «Недопустимый бинарный код».


user33701

18 авг ’10 в 05:10
2010-08-18 05:10

2010-08-18 05:10

После 16 часов непрерывных исследований методом проб и ошибок и тряски головой я нашел решение на форуме разработчиков Apple.

Очевидно, есть ошибка, позволяющая вашему бинарному файлу проходить проверку и загрузку, но затем отклоняться системой iTunes Connect. И вы не получите письмо, объясняющее, что случилось!

Если ваше приложение предназначено как для iPhone, так и для iPad, у вас, вероятно, есть что-то подобное в файле Info.plist:

скриншот перед

Вы должны полностью удалить CFBundleIconFiles~ipad параметр и включить значок iPad в Icons files массив вместо как здесь:

скриншот после исправления

Это все, ребята!

Дайте мне знать, если это помогло вам!

2010-08-10 08:50

У меня была та же ошибка INVALID BINARY в iTunes Connect, даже если загрузчик приложений принял мой двоичный файл. Решение было очень простым…

Откройте ваш info.plist, щелкните правой кнопкой мыши и выберите Показать необработанный ключ / значения:

  • CFBundleIconFile = Icon.png (мой значок iPhone 57×57 PNG)
  • CFBundleIconFile ~ ipad = Icon-72.png (мой значок ipad 72×72 PNG)
  • CFBundleIconFiles = array
    • Item 0 = Icon.png
    • Item 1 = [email protected] (мой значок iPhone 4 114×114 PNG)
    • Item 2 = Icon-72.png

Сохраните, очистите все цели, создайте и проанализируйте, сожмите в Finder и отправьте повторно!

Ошибка была вызвана тем, что я набрал клавишу «Файлы значков». В необработанном виде это сопоставлено с «файлами значков» вместо CFBundleIconFiles. У меня Xcode 3.2.3, я думаю, Xcode 3.2.4 лучше отображает этот ключевой идентификатор.

Удачи всем!

Источник: Технические вопросы и ответы QA1686: значки приложений на iPad и iPhone

2010-10-16 14:46

У меня была такая же проблема в течение нескольких дней. Кажется, что эта ошибка может быть вызвана множеством разных проблем, поэтому жаль, что Apple не уточнила ошибку с помощью электронного письма.

Для меня решение было вообще не использовать «Загрузчик приложений»!

Вместо этого сделайте следующее в Xcode:

  • Выберите приложение, перейдите в «Сборка»> «Сборка и архивирование».
  • После этого перейдите в «Окно»> «Органайзер».
  • Выберите ваше приложение в разделе «Архивные приложения»
  • Click’Validate»
  • Если проверка прошла успешно (как у меня было):
  • нажмите «Отправить».

Затем он подаст заявку в Apple. Для меня через несколько секунд статус был изменен на «Ожидание проверки», а не «Недействительный двоичный файл».

2011-01-06 11:26

В настоящее время (8 мая 2013 г.) эта ошибка выдается, если вы обращаетесь к UDUD в своем приложении. MKStoreKit (популярная библиотека с открытым исходным кодом) делает, и это было то, что вызывало это для меня. Найдите приведенный ниже метод в своих файлах (при условии, что он находится не в предварительно скомпилированном двоичном файле, в этом случае перейдите в Google, чтобы у вас было все, и проверьте их заметки о выпуске).

[UIDevice currentDevice].uniqueIdentifier

2013-05-08 20:18

Используйте инструменты сборки и архивирования в XCode, как описано в другом ответе здесь.

По какой-то причине инструмент архивации вызвал что-то в Apple, чтобы отправить обратно электронное письмо, сообщающее, что на самом деле не так (поврежденный файл PNG).

Моя проблема? Xcode повреждает некоторые файлы PNG, когда сжимает их. Перейдите в Настройки сборки, посмотрите в разделе «Упаковка» и установите «Сжать PNG файлы» в «Нет».

2012-06-18 13:42

В XCode нажмите на название вашего приложения с левой стороны и перейдите на вкладку настроек сборки с правой стороны. Прокрутите вниз до «Идентификация подписи кода» -> «Освобождение»

Убедитесь, что выбран ваш профиль распространения. Я не осознавал, что должен был явно установить это, и мое приложение было проверено просто отлично, но двоичный код недействителен. Моя настройка все еще была в профиле разработчика


user45849

01 ноя ’11 в 13:09
2011-11-01 13:09

2011-11-01 13:09

Ни один из Ответов здесь не помог мне. Я использую Cocoapods в моем проекте. Почему-то в настройках проекта Cocoapods Base SDK и поддерживаемых платформ было установлено OSX. (Cocoapods версия: 0.37.2) Я переключил его на iOS, и он работал.Мои настройки проекта Cocoapods

2015-07-17 02:26

У меня была та же проблема, и она была явно привязана к размеру начального экрана по умолчанию, поставляемого с приложением.

Я отправлял изображение по умолчанию 1024×768, но нашел в этой статье:

http://weston-fl.com/blog/?p=840/

Это должно быть 1024×748 (для альбомной настройки по умолчанию), и мне кажется, что это сработало: iTunesconnect взял его после этого.

2011-10-21 04:19

Это может быть проблемой следующего, которую я получил после отправки из автоматического ответа от iTunesConnect:

Отсутствует право на push-уведомление. Ваше приложение регистрируется в Apple Push Notification Service, но права на подпись приложения не включают в себя необходимые права «aps-environment». Убедитесь, что вы включили службы push-уведомлений для этого приложения и что вы загрузили профиль обеспечения распространения, включающий право «aps-environment».

После устранения проблемы вернитесь на страницу сведений о версии приложения в модуле «Управление приложениями» в iTunes Connect и нажмите кнопку «Готово к отправке двоичных файлов». Это проведет вас через двоичный поток представления и вернет статус версии вашего приложения в Ожидание загрузки. Затем вы можете использовать Application Loader для загрузки вашего нового двоичного файла. Если с вашей заявкой будут обнаружены какие-либо другие проблемы, с вами свяжутся.

2011-04-14 21:24

Это может быть связано с конфиденциальностью в iOS 10. Требуется, чтобы разработчики добавляли описание при использовании данных о конфиденциальности пользователей, таких как «Открыть библиотеку фотографий», «Открыть камеру», «Календарь доступа»… и так далее.

Пожалуйста, проверьте каждую часть ваших кодов, включая сторонние фреймворки, чтобы увидеть, есть ли какие-то проблемы с конфиденциальностью. Затем добавьте описание в файл Info.plist. Я решил это таким образом ^_^

2016-09-14 14:06

Другой возможный вариант — это сообщение об ошибке после повторной отправки двоичного файла:

Ваш Info.plist содержит вложенное свойство UINewsstandIcon в CFBundleIcons, которое предназначено для использования с функциями Newstand. Чтобы включить функции Newsstand, Info.plist должен включать ключ UINewsstandApp=true Info.plist.

Проверьте ваш info.plist — я не добавил это свойство сам и не получил никаких ошибок при локальном тестировании или тестировании.

2018-12-21 04:26

Просто здесь была та же проблема, и похоже, что решение было добавить недостающий экран запуска Retina 4 дюйма в мой проект (я специально удалил его — предыдущие обновления были в порядке с этим, но, похоже, им это больше не нравится), как рекомендовано в журналах при архивировании приложения.

2013-06-26 15:45

Та же проблема, другое решение: моя архивная схема использовала специальную конфигурацию сборки, когда она должна была быть выпущена.

Контрольный список для моих неудачных попыток исправления в моем блоге.

2011-10-04 10:38

У меня была эта проблема. моя проблема оказалась в том, чтобы установить цель развертывания на что-то меньшее, чем 3,2, но с архитектурой по-прежнему установлен «оптимизирован для armv7». это использует xcode 3.2.3. последний параметр должен быть изменен на «стандартный (armv6 и armv7)». когда я создавал свое приложение для разработки, мне приходилось его менять, потому что xcode жаловался, когда я пытался запустить приложение на старом itouch, но в дистрибутивной сборке нет устройства для запуска (если только вы сначала не проверили с помощью ad hoc)), так что вы не заметите проблему, пока itunes connect не отклонит двоичный файл.

2010-09-17 02:11

Сегодня я несколько раз сталкивался с одной и той же «недействительной двоичной» проблемой. Наконец, я решил эту проблему, проверив сообщения о сборке в XCode 4. Нажмите показать все сообщения для журнала сборки, найти кодовый знак и проверить часть, обычно внизу. Все мои неудачные отправки имеют ошибку проверки в журнале сборки, но переданы в архив — кнопка проверки.

2011-08-15 14:54

Я только что получил письмо от Apple

Missing 64-bit support - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code.

Поэтому, пожалуйста, не забудьте добавить arm64 в качестве допустимой архитектуры в настройках проекта и в настройках проекта.

Теперь добавьте arm64

И это будет выглядеть

2015-02-20 03:50

В моем случае я получал тот же самый Неверный двоичный статус в течение нескольких секунд для загруженного приложения с помощью Xcode->Organizer или Application Loader без электронных писем от Apple. Я заменил PNG- файлы в iconset в своем приложении для Mac OS X, и проблема была решена.

Я получил поврежденную подсказку PNG-файла от «Charleston Software Associates», большое спасибо.

2016-02-16 22:47

У меня та же проблема. Сначала я попробовал программу с правами, так как казалось, что она соответствует моей ситуации.

Мальчик, они разные

<plist version="1.0">
<dict>
    <key>get-task-allow</key>
    <false/>
</dict>

Новый… (xcode 3.2.5, 4.2 target и min iOS)

<plist version="1.0">
<dict>
    <!--- Required entitlements (in most cases shouldn't be changed) --->
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>

<!--- Custom entitlements below --->


</dict>
</plist>


user69948

15 фев ’11 в 21:39
2011-02-15 21:39

2011-02-15 21:39

Я боролся с этим в течение половины дня. Даже попробовал переустановить xcode. Для меня ответом было возвращение к порталу инициализации в itunes connect, отзыв моего сертификата и создание нового. Затем создайте новый профиль обеспечения распространения, затем перестройте и повторно отправьте. Какая длинная недокументированная боль в шее.

2011-03-29 18:07

2015

Invalid Binary Теперь проблема может быть вызвана, если EMBEDDED_CONTENT_CONTAINS_SWIFT является true, но не включают в себя Swift код в двоичном

Идите вперед и подделайте это значение в настройках сборки приложения.

Xcode также включал пользовательские настройки, которые включали слово Swift — Я просто пошел вперед и тоже отбраковал.

2015-03-06 18:42

Я столкнулся с той же проблемой, попробовал большинство решений и, наконец, пришел к решению ниже.

Просто проверьте следующие вещи..

1) добавить arm64 в качестве допустимой архитектуры в настройках проекта, а также в настройках проекта

2) Измените файл info.plist и добавьте массив файлов Icons со всеми необходимыми изображениями с именем.

3) Самое главное — из-за отклонения вы изменили номер версии приложения в файле plist, но не на портале iTunes.
Вам нужно установить / управлять одним и тем же номером версии в приложении и на портале iTunes. Установите это и попробуйте загрузить двоичный файл снова, это решит вашу проблему.

2015-04-16 06:18

В моем случае я сгенерировал профили обеспечения с использованием другого CSR и не использовал исходный CSR, который был создан впервые для доступа к порталу обеспечения. Подписание кода и отправка приложений с профилями обеспечения, созданными из исходного CSR, решили мою проблему.

2011-07-10 09:03

Трюк с иконкой IPad работает.

Удалите CFBundledIconFiles~ipad и добавьте значок 72×72 к клавише «Файлы значков».

Остерегайтесь скриншотов, этот метод иногда создает ошибку отсутствия скриншотов

2010-08-11 15:20

Я уже давно борюсь с той же проблемой. Сегодня утром я обнаружил, что у командного агента были отключены все уведомления, поэтому я включил их все и, наконец, начал получать электронные письма об изменении состояния, когда приложение изменилось на «Ожидание загрузки», но ничего не изменилось, когда состояние изменилось на «Binary Invalid». «. После нескольких попыток я наконец-то получил обновление приложения в состоянии «Ожидание просмотра». Для меня это решило изменение значения «Цель развертывания iPhone OS» в настройках сборки цели с iPhone OS 2.2.1 (настройка для исходного приложения) на iPhone OS 3.0.

2010-08-12 20:00

Спасибо.. это была проблема с файлами значков в моем проекте. Я удалил их, как предложил Сашо. Наконец перешел на ожидание обзора.

2013-01-24 21:43

Если в случае газетного киоска приложение.

Убедитесь, что иконка газетного киоска добавлена. В моем случае проблема заключается в том, что я забываю добавить значок киоска в пакет проекта, но я ссылаюсь на него в plist.

Загрузчик приложений не будет проверять значок киоска, поэтому ошибка «Недопустимый двоичный файл» отображается только в «iTunes connect».

Спасибо

2013-03-28 11:10

У меня был указатель на файл значка извлечения, которого больше не было. Я удалил указатель, и загрузка пока кажется приемлемой. Они довольно быстро отправили электронное письмо, в котором содержались соответствующие подробности, хотя вышеизложенные подсказки, как обычно, помогли мне встать на правильный путь.

2012-10-23 20:26

У меня такая же проблема. Убедитесь, что вы выбрали «App Store» в качестве метода распространения в профиле обеспечения распространения, а не «Ad Hoc».

2012-07-18 02:32

I am getting this error in iTunes Connect.

I have an app and I make some changes in that. So now I am uploading the updated version with the Organizer, but after upload, I am getting «invalid binary«, but no more information.
Looking into this forum I found many people face same issue but no solution works for me.

I validate the app before uploading and the validate process is OK..
any advice will be welcome, this is driving me crazy.

thanks in advance.

Titanium SDK 5.5.0 GA

macOS Sierra.

Janmenjaya's user avatar

Janmenjaya

4,1511 gold badge23 silver badges43 bronze badges

asked Sep 22, 2016 at 19:51

Juan Carlos Salinas Ojeda's user avatar

Whenever you get an invalid binary error an email gets sent to the itunesConnect account, with the explanation on why it is invalid.

I did receive an invalid binary message and contained the following message:

This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSAppleMusicUsageDescription key with a string value explaining to the user how the app uses this data.

So it does have to do with a permission request. The way to fix this issue is to check the email, and explain why you are requesting access to that privacy-sensitive data. Keep in mind that we are not using Apple Music, but for some reason that showed up there ;)

answered Sep 29, 2016 at 20:03

Leo's user avatar

2

I get this email from Apple:

This app attempts to access privacy-sensitive data without a usage
description. The app’s Info.plist must contain an
NSPhotoLibraryUsageDescription key with a string value explaining to
the user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage
description. The app’s Info.plist must contain an
NSMicrophoneUsageDescription key with a string value explaining to the
user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage
description. The app’s Info.plist must contain an
NSCameraUsageDescription key with a string value explaining to the
user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage
description. The app’s Info.plist must contain an
NSAppleMusicUsageDescription key with a string value explaining to the
user how the app uses this data.

Once these issues have been corrected, you can then redeliver the
corrected binary.

My App is using the camera, not Apple Music, not Agenda, etc… Maybe one of the Modules…

But anyway, I fixed it by adding this to tiapp.xml

<ios>
    <plist>
        <dict>
            <key>NSContactsUsageDescription</key>
            <string>Can we use to your contacts?</string>
            <key>NSCameraUsageDescription</key>
            <string>Can we use your camera?</string>
            <key>NSCalendarsUsageDescription</key>
            <string>Can we use your calendar?</string>
            <key>NSPhotoLibraryUsageDescription</key>
            <string>Can we save to your library?</string>
            <key>NSMicrophoneUsageDescription</key>
            <string>Can we use your microphone?</string>
        </dict>
    </plist>
</ios>

You can visit this page:

https://www.appcelerator.com/blog/2016/09/ga-release-for-titanium-sdk-5-5-0-appcelerator-cli-5-5-0-appcelerator-studio-4-7-1/

I hope that helps.

answered Sep 22, 2016 at 20:33

macCesar's user avatar

3

I finally solve this problem.

In my app i use:
Version: 1.0.6
Build: 1.0.6

For some reason, now i cant do that, so i change the build version to: 106 and that makes the magic.

i hope this can help to others..

answered Sep 27, 2016 at 22:48

Juan Carlos Salinas Ojeda's user avatar

I realized that I uploaded the binary using Xcode Beta. After uploading with the regular Xcode — it worked.

answered Feb 3, 2019 at 17:43

Eran Talmor's user avatar

Eran TalmorEran Talmor

1,9181 gold badge12 silver badges6 bronze badges

Возможно, вам также будет интересно:

  • Ошибка движка игры 0x80000003 star wars clone wars
  • Ошибка движение в указанном направлении
  • Ошибка двигателя шкода рапид 2014
  • Ошибка двигателя шкода октавия а5 epc
  • Ошибка двигателя шевроле круз после того как

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии