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

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];

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 здесь больше не разрешен.

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

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

Мы наконец-то подошли к отправке нашего первого приложения для 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

Я пытаюсь загрузить приложение в магазин приложений 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];


#xcode #app-store-connect

#xcode #app-store-connect

Вопрос:

В Mac OS 10.15.7 в Xcode 12.1 при попытке загрузить двоичный файл моего приложения в App Store Connect я получаю:

«Ошибка при подключении к App Store: пожалуйста, обновите iTMSTransporter до более новой версии. (4107)»

Я пытался перезагрузить компьютер, удалить .itmstransporter и многое другое, но безрезультатно.

Тем временем я загрузил приложение Transporter из Mac App Store и смог отправить оттуда, экспортировав двоичный файл, а не загрузив его в App Store, но я хотел бы восстановить функциональность в Xcode.

Кто-нибудь имеет представление о том, что может быть причиной этого?

Комментарии:

1. Первое, что я бы сделал, это попробовал Xcode 12.2, который сегодня вышел в финал. Также не то, чтобы у Apple были всевозможные проблемы с подключением сегодня, так что, возможно, завтра все будет лучше.

2. @мэтт Правильно, с Big Sur все было так. Однако я смог загрузить его через приложение Transporter. Определенно я собираюсь установить 12.2 и посмотреть, исправит ли это, спасибо.

3. @SerPounce есть какие-либо обновления по этому поводу? вы смогли его загрузить? я столкнулся с той же проблемой

4. @Blu На данный момент я обновил свои приложения с помощью приложения Transporter. Я собираюсь обновить Xcode позже сегодня и посмотреть, работает ли он.

5. @berbie serpoune Я опубликовал свое приложение напрямую через Visual Studio, и оно было отправлено без каких-либо проблем!

Ответ №1:

Я, наконец, смог решить эту проблему. Просматривая свою систему, я нашел 3 версии iTMSTransporter. Печать версии каждого использования ./iTMSTransporter -version дает следующие результаты:

  • /Applications/Transporter.app/Contents/itms/bin/ имеет версию 2.0.0

  • /Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/bin/ имеет версию 2.1.0

  • /usr/local/itms/bin/ имеет версию 1.9.3

Похоже, что /usr/local/itms Xcode использовал старую версию. После удаления /usr/local/itms я смог загрузить свой двоичный файл в Xcode 12.2 и использовать xcodebuild инструмент командной строки.

Я также удалил ~/Library/Caches/com.apple.amp.itmstransporter , но я не ожидаю, что это была реальная проблема.

ОБНОВЛЕНИЕ: это также решило мою проблему сегодня в Xcode 12.3, где Distribute App и xcodebuild застряли в

аутентификация в App Store

Комментарии:

1. я удаляю /usr/local/itms/bin , и это работает! Спасибо

2. Удаление /usr/local/itms исправило это и для меня. Спасибо! Интересно, как мы попали в это состояние.

3. То же, что и @BlackMB, мне нужно было только удалить /usr/local/itms/bin, чтобы устранить проблему (это папка с iTMSTransporter (или как она там называется).

Ответ №2:

Я сталкиваюсь с теми же проблемами и решил их после выполнения ./iTMSTransporter -updateChannel earlyAccess в командной строке.

 /Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/bin/iTMSTransporter -updateChannel earlyAccess
  

или

 /Applications/Transporter.app/Contents/itms/bin/iTMSTransporter -updateChannel earlyAccess
  

Комментарии:

1. Сэкономьте мое время 1

Ответ №3:

Я столкнулся с этим с XCode 13.0, решение состоит в том, чтобы просто обновить ваш XCode до нового выпущенного. Кроме того, вы можете просто проигнорировать это предупреждение.

Ответ №4:

Просто очистите папку сборки и повторите попытку архивирования.

Ответ №5:

Ответ №6:

  • Ошибка двигателя шевроле лачетти р0341
  • Ошибка двигателя чек энджин
  • Ошибка двигателя чек форд фокус 2
  • Ошибка двигателя хонда цивик 5д
  • Ошибка двигателя ховер н3