Invalid iPhone Application Binary Invalid iPhone Application Binary ios ios

Invalid iPhone Application Binary


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.


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

zip -y -r myapp.zip myapp.app

Solved that problem.


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