错误 itms-90035 - Xcode

Posted

技术标签:

【中文标题】错误 itms-90035 - Xcode【英文标题】:Error itms-90035 - Xcode 【发布时间】:2015-06-29 13:57:53 【问题描述】:

我开发了一个 phonegap 应用程序,它在 iPhone 上运行得非常好。现在,我想将应用提交到应用商店。以下是我提交应用程序所遵循的程序:

    打开 Xcode 并归档项目 点击验证(成功) 点击提交到应用商店(这是我收到以下错误的地方)

直到昨天晚上,我什至没有收到此错误,而今天早上,我将项目存档并收到此错误。不知道是什么问题。

这是阻止我提交应用程序的最后阶段,非常令人沮丧,我试图在 *** 论坛上搜索相同的错误代码,但我找不到一个与错误代码完全相同的帖子和我一样,这很奇怪。

请帮忙:)

【问题讨论】:

您确定,您的代码签名设置正确吗? 我不确定,如何检查?你能指导我吗? Nikhil 从今天早上开始,我也遇到了同样的错误。我只是试图“验证”我的应用程序的旧版本,该版本已经成功批准并上传。除了我预期的预期错误(AppStore 中已经存在版本,我的应用程序版本自发布以来已关闭以供修改等)我不断收到此 ITMS-90035。我还验证了我的证书没有被吊销(来自 Apple 的开发人员中心)。我将在今天晚些时候向您更新我的发现,并将监视此帖子以听取您的意见。谢谢:) 同样在这里,昨天我提交了许多没有错误的构建。代码和设置没有改变。 Nikhil 通过从我的目标中删除 .sh 文件解决了问题,如下面的答案所示。 【参考方案1】:

我遇到了同样的问题,原来我通过 bower 安装的库之一包含一个不需要的 .sh 文件。我刚刚删除了文件,一切都上传成功了。

似乎 Apple 现在强制开发人员在其应用程序中签名 .sh 文件。由于 Cordova/Phonegap 应用程序不需要它们,您可以安全地删除它们。

【讨论】:

这是唯一正确的答案。顺便说一句,您不需要删除该文件。只需将其从您的目标中排除即可。 我的项目中只有一个.sh 文件,位于platforms > ios > cordova > lib > copy-www-build-step.sh。这是我应该删除的那个吗?还是只有两个?谢谢! 谢谢!!!这是正确的答案。在我的例子中,是 Crittercism dsym_upload.sh 文件被 CocoaPods 复制到我的包中,这在我的公司已经成为一个脏话。 我通过 CocoaPods 包含了 Crittercism,它也有导致此错误的 dsym_upload.sh 脚本。所以现在我只是在 Pods-resources.sh 文件中注释掉了这一行: install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 如果 crittercism 是您的问题并且您正在使用可可豆荚,请尝试我在此处作为评论添加的修复:***.com/questions/29816930/…【参考方案2】:

我在更新到最新的 Xcode (6.3.1) 后发生了这种情况。这不仅仅是 .sh 文件,因为我收到了有关节点脚本的这些错误。似乎任何以 #!/usr/bin/env 开头的文件都会导致这些错误。我可以通过添加 #!到一个随机文件。

暂时从文件顶部删除 #!/usr/bin/env 指令会起作用,但您需要更好的长期解决方案 :)

您必须通过逐个处理每个脚本文件来修复它,以便在您的项目中有意义。

如上所述,这可能是 Apple 方面的临时问题,不一定与 Xcode 版本有关。

【讨论】:

【参考方案3】:

编辑:我设法通过从我的目标中删除我的项目 .sh 文件来避免此错误。

到目前为止,我认为这是 Apple 方面的一个错误。

我昨天提交了一个应用程序没有任何问题,今天拒绝了它今天提交了一个稍微改变的二进制文件,但和你一样,我现在遇到了同样的错误。 我以为它与Xcode6.3.1 有关,因为我今天早上安装了它,所以我再次安装了Xcode 6.3.0,但错误仍然存​​在。然后我彻底检查了一切:

证书 供应配置文件 iTunes 连接应用程序状态

但到目前为止还没有成功。

“itms-90035”Google 搜索仅返回 1 个结果的事实让我认为这可能是一些临时事件。

【讨论】:

我做了你所做的一切,我和你的观点完全一样。完全同意,祈祷,希望他们能尽快解决这个问题。【参考方案4】:

正如其他人所说,问题似乎是由于在应用程序包中包含名为“upload-dsym.sh”的文件。以下是我为克服此错误而采取的步骤: 转到 Xcode 中的项目设置并选择“目标”应用程序图标。 选择构建阶段选项卡。 点击“复制捆绑资源” 查找正在复制的名为“upload-dsym.sh”的文件。 我删除了那个文件,然后上传就正常了。

【讨论】:

这个答案中描述的过程是从签名的应用程序中删除 *.sh 文件的详细路径。在我的例子中,它是由 Worklight 环境生成的buildtime.sh。由于这是一个相对“新”的问题,到目前为止,苹果似乎确实在提交过程中改变了一些东西......【参考方案5】:

它与包含的.sh files 有关,确实不是那么明显。


在我们的例子中,它是 AudioKit 库。自述文件说:

在大多数情况下,在为 iOS 或 tvOS 构建时,无论您如何安装框架,都需要使用以下脚本向项目目标添加运行阶段:

"$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AudioKit.framework/fix-framework.sh"


有时您不会直接在目标的build phases 中看到它们。某些第三方库可能会导致此错误,因为它们也在处理.sh files

查看您的第三方库/podREADME 的文件以获取更多信息。

【讨论】:

【参考方案6】:

在我的情况下,我收到此错误是因为应用显示名称中包含特殊字符。它让我无法理解为什么无法生成正确的错误消息。

【讨论】:

【参考方案7】:

我也有同样的问题。然后我删除 .sh 文件。我再次提交我的应用程序。成功!

【讨论】:

【参考方案8】:

此问题已在 CrittercismSDK CocoaPods 5.2.0 中得到解决:https://github.com/CocoaPods/Specs/blob/master/Specs/CrittercismSDK/5.2.0/CrittercismSDK.podspec.json

您可以升级到 sdk 5.2.0 或删除该文件并从 Pods-resources.sh 文件中删除以下行:

    if [[ "$CONFIGURATION" == "Debug" ]]; then 
install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 
fi 
if [[ "$CONFIGURATION" == "Release" ]]; then 
install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 
fi 

谢谢

【讨论】:

【参考方案9】:

我们今天遇到了一个非常相似的问题并解决了。

错误 ITMS-90035:“无效签名。密封资源丢失或无效。路径 [MyNiftyApp.app/MyNiftyApp] 处的二进制文件包含无效签名。[...]”

我们将 Jenkins-CI 与 xcode-plugin 一起用于构建过程。 当我查看 jenkins 构建日志时,我发现了这个错误消息:

file added: /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app/MyNiftyApp.app
file modified: /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app/Assets.car
]
Codesign check fails : /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app: a sealed resource is missing or invalid

在搜索了 Assets.car 之后,我发现了这篇文章: https://issues.jenkins-ci.org/browse/JENKINS-21253 用户遇到了类似的问题,可以通过停用以下插件选项“XCode -> General Build Settings -> Generate Archive?”来解决(以前确实如此,现在这是错误的)。

至少这解决了我们这边的问题——也许它会引导你走向正确的方向。

【讨论】:

【参考方案10】:

我通过简单地删除错误中的“二进制”文件解决了这个问题。

为您提供 www/js/release.sh。

对我来说,这是两个冗余的 bower 文件,一个 .sh 文件和一个位于“bin”文件夹下的 .js 文件(也许这就是它认为它是二进制文件的原因?)。

在旁注中,您似乎仍然可以通过在应用程序加载器中出现错误后单击发送来继续上传过程。

【讨论】:

【参考方案11】:

当我尝试使用 ApplicationLoader 3.0 上传我的应用程序时,我收到了同样的错误。升级到 ApplicationLoader 3.1(即最新版本),为我解决了这个问题。

【讨论】:

我使用的是 Application Loader,版本为 3.1 (670),但问题仍然存在。【参考方案12】:

在平台目录下运行:

grep -r '#!/usr/' *

这将显示所有可以执行的文件。通常这将包括 .sh 和节点文件。

从结果中找到您的项目文件夹中的文件(例如,我的项目文件夹是平台/ios/www/*)并删除它们,留下其余的。

【讨论】:

【参考方案13】:

我遇到了完全相同的问题。我在 myApp.app/myApp 上写了一个错误 决定: 查找以特殊字符或非英语字符开头的文件。我找到了,删除了,一切正常!

【讨论】:

【参考方案14】:

我在使用 xcode 6.3.1 和 6.4 beta 时遇到了同样的问题。我说这是我的 main.o 文件。我查看了复制包资源,由于某种原因,我的项目的主文件在那里。我将其删除并再次存档以发送到 iTunes Connect 进行测试飞行,并且上传正常。我花了 3 个小时才弄清楚这是那个愚蠢的文件。回家这有帮助。似乎您需要真正注意在构建阶段在“复制捆绑资源”中发送的内容。无论它告诉你什么文件是一个问题,从这个区域中删除并试一试。

【讨论】:

【参考方案15】:

就我而言,我在提交重新签名的 ipa 文件时遇到了错误。结果我在 Finder 中查看了应用程序包,它创建了一个 .DS_Store 文件(这是在使用 codesign 重新签名后,如果在签名时文件存在,它会抱怨)。

删除.DS_Store文件后,上传成功。

【讨论】:

【参考方案16】:

运行以下命令(在 mac 中):codesign --verify -vvvv <your_application>.app

样本:

codesign --verify -vvvv project.app
project.app: a sealed resource is missing or invalid
file missing: /Users/iHTCboy/workspace/Payload/project.app/.DS_Store

看起来我的应用资产中有一个隐藏文件 .DS_Store。 请找到并删除它,然后重试。

这对我有用

【讨论】:

以上是关于错误 itms-90035 - Xcode的主要内容,如果未能解决你的问题,请参考以下文章

将应用上传到应用商店。 ITMS-90035:“代码或签名已被修改”

致命错误:格式错误或损坏的 AST 文件 - Xcode

Flutter 上的 Xcode 构建错误任何对象错误和 openURL 错误

Xcode 7.1 错误 UIAccessibility 错误

Xcode 编译因内部错误而失败

XCode 5 中的错误接收器类型“无效”错误