Kri*_*son 77 iphone itunesconnect code-signing app-store ios
我正在尝试将应用程序上传到iPhone App Store,但是我从iTunes Connect收到此错误消息:
您上传的二进制文件无效.签名无效,或者未使用Apple提交的证书签名.
注意:原始问题的详细信息已被删除,因为此页面已变为存储库,以获取有关该特定错误消息的可能原因的所有信息.
有关将iPhone应用程序提交到App Store的一般信息,请参阅将iPhone应用程序上载到AppStore的步骤.
Edd*_*die 10
我有同样的问题并以这种方式解决了它:
属性证书安装在我的开发机器上,mobileprovision.embedded包含在分发存档中.经过一个小时左右的谷歌搜索和挖掘后,我发现了源错误.在Xcode中,我复制了Release配置并创建了一个新的Distribution配置,然后将签名身份更改为我的分发证书.但是,即使它已在GUI中更新,项目文件也未正确更新.
如果您遇到相同的错误,请在[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;
};
Run Code Online (Sandbox Code Playgroud)
您可以在第二部分中看到签名标识和配置文件不正确.编辑它以匹配第一部分,重建,你应该很高兴去.最后一个看起来像这样:
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;
};
Run Code Online (Sandbox Code Playgroud)
guids改变以保护无辜者
同样的问题,不同的解决方
在我的情况下,我使用zip -r myapp.zip myapp.app
Turns out 压缩文件,zip命令拧紧了捆绑包.从取景器压缩它使它工作.
小智 5
我也有同样的问题,在构建时我注意到构建中没有添加配置.
我的修复方法是将构建设置为iphone设备,因为我通常使用模拟器,但之后它不会包含配置文件......
这可能是一个noob错误.通常情况下,您无法构建设备,但是当您进行分发时,您可以.
小智 5
请参阅此链接以获取解决方案:
http://greghaygood.com/2010/09/04/invalid-binary-message-from-itunesconnect
简短的回答是“最终我仔细检查了我的 info.plist 并发现了一些东西。我根据新指南添加了 CFBundleIconFiles,但数组列表中有一个空条目。我删除了它并重新提交,最后公认!”
另一个数据点:有一段时间,我的应用程序经历了.现在我已经添加了对应用内购买的支持,突然它失败了"无效的二进制/无效签名"问题.仔细观察后,我发现权利plist文件中的application-identifier值已关闭.
这很可能与我将配置文件从通配配置文件替换为特定于应用程序配置文件(应用程序内购买所需)的事实有关.旧配置文件下的错误应用ID限定.它与info.plist中的应用ID不匹配,但显然iTunes原谅了这一点.
所以,回顾一下:
info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*
Run Code Online (Sandbox Code Playgroud)
没问题,而
info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo
Run Code Online (Sandbox Code Playgroud)
导致"无效的二进制文件".