App通过验证
上传时收到错误错误itms-90035
"签名无效。代码对象根本没有签名。二进制文件 path [myApp.app/RNGridMenu.o]包含无效签名。使 确定您已使用分发证书签署了您的申请, 不是特别的......"
myApp.app/RNGridMenu.o
不在项目的任何地方。 RNGridMenu.h
&仅RNGridMenu.m
。 RNGridMenu
已在该项目中使用了一年多,甚至在3天前上传了
我已经检查了
Error ITMS-90035 - Xcode 6.3.1 [Invalid Signature]
XCode Error itms-90035 - Invalid signature?
所有这些都有相同的错误代码但不解决我的问题
答案 0 :(得分:55)
我在为我正在提交的应用程序调试此问题时尝试了几乎所有解决方案,并意识到您可以通过多种方式获得此错误。以下是对错误以及解决方法的总结。
1)您没有为您的PROJECT和TARGET选择具有有效证书的分配配置文件。确保您在"发布"的构建设置中选择了有效的配置文件。选项,并在developer.apple.com上验证您的配置文件仍然有效。 (这里:https://developer.apple.com/account/ios/profile/profileList.action)
2)您在构建设置中的代码签名标识对于分发是有效的。确保您选择了一个有效的,并且选择了"发布"选项。
3)您的计划(可以通过Product - > Scheme - > Edit Scheme找到)为您的执行类型需要"发布"用于构建配置。如果您要归档App Store提交的应用程序,请确保您有"发布"在此窗口中为Archive构建类型设置。
4)您的钥匙串访问中有多个分发证书。尝试从钥匙串中删除重复的证书,然后再尝试提交。
5)其中一个最邪恶的......你有一行代码以"#!"开头。在你的一个文件的顶部,通常是" .sh"或" .py"。最近,Apple似乎要求对这些文件进行代码签名。感觉就像他们身边的一个小虫,但对于你的提交只是删除这一行!如果你有" .sh"这也可能发生。除了Pod目录中的构建脚本之外的文件。
6)project.pbxproj文件中有重复的CODE_SIGN_IDENTITY行。他们可能看起来像这样......
" CODE_SIGN_IDENTITY [SDK =的iPhoneOS *]" =" iPhone开发者&#34 ;; CODE_SIGN_IDENTITY =" iPhone发布";
删除其中一行,您的文件应该能够再次正确构建。
7)从您的开发者帐户刷新Xcode中的证书和配置文件。 Xcode - >偏好设置...选择您的帐户 - >查看详细信息 - >点击刷新按钮。
8)厨房水槽方法:创建一个新项目并从头开始加载您的设置。重新创建证书和配置文件。从来没有乐趣,但这在一些无望的情况下对我有用。
祝你好运!答案 1 :(得分:2)
试过&经过测试的解决方案:
RNGrid.m
& RNGrid.h
到其他位置RNGrid.m
& RNGrid.h
并移至垃圾箱RNGrid.m
和& RNGrid.h
文件返回项目并将其复制到目标文件夹此解决方案适用于我,此处也已回答:Why does one .o file in my project has no Provisioning Profile?
答案 2 :(得分:2)
似乎从10.0版(10A255)开始的XCode不能正确地使用PRODUCT_NAME
签名包含诸如ü
之类的变音符号的应用程序(可能还有其他非ASCII字符-但我们尚未对此进行测试)。这是在具有APFS的macOS 10.13.6(17G65)上,可能也是 的原因。
它 did 可以与具有APFS的相同macOS版本一起使用,并且可以使用较早的XCode版本,因此我们怀疑它是XCode。
无论如何,解决方法是将PRODUCT_NAME
设置为没有变音符号的字符串...
答案 3 :(得分:1)
我遇到了同样的问题:
我的项目是使用非标准Auth协议访问API的客户端。我将此协议的库实现为一个独立的项目,并将其作为子项目导入客户端。 两个项目都使用AFNetworking作为HTTP客户端。客户端和库也使用其他非共享外部库。
此模式在Xcode 6.3之前运行良好:所有审核提交都在所有阶段都被接受。 更新到XCode 6.3.1之后,由于AFNetworking lib的未签名.o文件,我被拒绝提交给iTunes。在迭代完所有答案但没有成功之后,我决定删除子项目。我将所有库文件移动到客户端项目并删除了冗余的AFNetworking文件。完成此操作后,该应用程序在iTunes Connect上获得批准:)
它起到了时间解决方案的作用。可能我需要使用CocoaPods或Carthage来再次分离应用程序和lib。
答案 4 :(得分:0)
我已经尝试了Stackoverflow上描述的所有解决方案。我还尝试了thebhanman在第一个答案中所说的所有可能性,但没有解决问题。
解决方案对我有用: - [使用Application Loader上传]
不要将 .ipa 与终端或 Itunes 等进行额外处理。使用xcode
第1步:在xcode中转到产品 存档应用
第2步: - 选择导出选项
第3步: - 选择第一个选项// - >保存iosappstore部署
第4步: Xcode将使用日期和时间文件夹制作应用程序的 .ipa 文件。
注意: - 首先验证您的应用。如果验证成功完成,请尝试使用 Application Loader 。
我希望这将有助于将来的某些人。因为我浪费了2天时间来解决这个问题。
答案 5 :(得分:0)
在为Xamarin进行绑定项目时遇到了这个问题。
该库不会绑定,所以我制作了一个代理框架,该框架调用了我需要的框架。
这是自制的代理框架,收到了ITMS-90035错误消息。
经过数小时的纠缠,我发现IPA文件中的框架与代理框架的实际内容不匹配。
无数次清理/重建项目后,我设法通过删除Mac上的Xamarin缓存来解决此问题。
它位于〜/ Library / Caches / Xamarin 。
删除Xamarin文件夹后,我重新构建了绑定项目。然后,我可以将我的应用程序上传到TestFlight / AppStore。
答案 6 :(得分:0)
对我来说,问题是我的资产文件名中包含非ASCII字符。
答案 7 :(得分:0)
我遇到了同样的问题,它与其他答案中的文件名中包含非ASCII字符的资产有关。
我使用此命令来查找引起问题的文件:
LC_ALL=C find . -name '*[! -~]*'
我在this post的另一个答案中找到了它。
希望这对某人有帮助。
答案 8 :(得分:0)
我在从开发人员版本辞职到App Store版本的Unity应用程序中遇到此问题。我先放弃了应用程序,然后再放弃了应用程序中的框架,从而使主应用程序文件的签名无效。
通过在应用程序本身之前退出框架很容易解决(但不容易找到)。
用于退出未压缩的.ipa文件的Shell脚本示例:
/usr/bin/codesign -f -s "<CERTIFICATE NAME>" Payload/myApp.app/Frameworks/*
/usr/bin/codesign -f -s "<CERTIFICATE NAME>" --entitlements entitlements.plist Payload/myApp.app
答案 9 :(得分:0)
如果您使用的是 React-Native 0.63.3,请检查构建系统。
当我遇到这个问题时,我的工作区配置了新构建系统,尝试使用旧构建系统。