错误itms-90035 - Xcode

时间:2015-04-22 05:38:10

标签: ios xcode appstore-approval

我开发了一款在iPhone上运行得非常好的phonegap应用程序。现在,我想将应用程序提交到appstore。以下是我提交申请时的程序:

  1. 打开Xcode并归档项目
  2. 点击验证(成功)
  3. 点击提交到appstore(这是我收到以下错误的地方)
  4. enter image description here

    直到昨天晚上,我还没有得到这个错误,今天早上,我存档了项目,我收到了这个错误。不确定是什么问题。

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

    请帮助:)

19 个答案:

答案 0 :(得分:77)

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

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

答案 1 :(得分:9)

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

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

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

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

答案 2 :(得分:8)

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

到目前为止,我已经说过这是苹果公司的一个漏洞。

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

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

但到目前为止没有成功。

a" itms-90035"谷歌搜索只返回1个结果让我觉得可能是一些临时事件。

答案 3 :(得分:3)

正如其他人所说,问题似乎是由于包含名为" upload-dsym.sh"在应用程序包中。以下是我为解决此错误而采取的步骤: 去了Xcode中的项目设置并选择" Target"应用程序图标 选择Build Phases选项卡。 点击"复制捆绑资源" 查找名为" upload-dsym.sh"的正在复制的文件。 我删除了该文件,然后上传得很好。

答案 4 :(得分:3)

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

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

  

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

     

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

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

检查第三方图书馆/广告单元 README的文件以获取更多信息。

答案 5 :(得分:2)

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

答案 6 :(得分:2)

此问题已在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 

由于

答案 7 :(得分:1)

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

  

错误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 - >常规构建设置 - > 生成档案?" (之前的确如此,现在它是假的)。

至少这解决了我们这方面的问题 - 也许它会引导你找到正确的方向。

答案 8 :(得分:1)

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

为你的www / js / release.sh。

对我来说,它是两个冗余的bower文件,一个.sh文件和一个.js文件位于" bin" -folder下(也许这就是为什么它认为它是二进制文件? )。

另一方面,似乎您仍然可以通过在Application Loader中显示错误后单击“发送”继续上传过程。

答案 9 :(得分:1)

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

答案 10 :(得分:1)

在平台目录中运行:

grep -r '#!/usr/' *

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

从结果中找到项目文件夹中的文件(例如我的项目文件夹是platforms / ios / www / *)并删除它们。

答案 11 :(得分:0)

运行以下命令(在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。 请找到并删除它,然后重试。

这对我有用

答案 12 :(得分:0)

就我而言,出现此错误是因为应用显示名称中包含特殊字符。为什么我无法生成正确的错误消息,这让我不解。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

在我的情况下,我在提交重新签名的ipa文件时收到错误。事实证明我已经查看了Finder中的应用程序包,它创建了一个.DS_Store文件(这是在用codesign重新签名之后,如果文件在签名时存在则会抱怨)。

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

答案 15 :(得分:0)

有一个相关的问题,.py文件也会混淆Xcode:

https://omz-forums.appspot.com/pythonista/post/5857432475533312

答案 16 :(得分:0)

我同时使用xcode 6.3.1和6.4 beta。我说这是我的main.o文件。我查看了复制包资源,由于某种原因,我的项目的主文件就在那里。我删除它并将其存档再次发送到itunes connect for testflight并且上传得很好。花了我3个小时才发现它是那个愚蠢的文件。回家这有帮助。似乎你需要真正关注你在构建阶段的“复制捆绑资源”中发送的内容。无论它告诉你什么文件是一个问题,从这个区域删除taht并试一试。

答案 17 :(得分:0)

对我来说,我使用的库中有一个do-git文件。我删除了它,它工作了!伙计们,请确保您清楚地浏览Build Phases选项卡中Copy bundle资源中的所有文件,并且我确定您将找到解决方案

答案 18 :(得分:0)

您的目录中有另一个文件夹具有相同的文件,只需删除它并尝试再次构建和上传..