繁体   English   中英

安装IPA会导致错误“已添加,修改或删除已签名的资源”

[英]Installing IPA results in error “A signed resource has been added, modified, or deleted”

我最近偶然发现了Xcode的一个相当奇怪的问题,当我构建一个IPA并尝试安装它时,我尝试使用Xcode,iTunes和iPhone Config Utility安装,所有这些都给出了同样的错误

A signed resource has been added, modified, or deleted.

我可以使用XCode在手机上成功调试应用程序,只有当我尝试安装IPA时才能看到错误。

我尝试解压缩IPA并运行代码签名验证工具,该工具会引发以下响应:

a sealed resource is missing or invalid In architecture: armv7
resource missing:
/Users/dev1/Documents/PoleTester.app/Settings.bundle/._Root.plist

这导致我查看了Settings.bundle文件并确保它包含在构建中,它就是这样。 有趣的是,如果我删除了Settings.bundle文件,构建一个IPA并尝试在我的iPhone上安装它,安装成功,但这没用,因为我需要使用应用程序安装的Settings.bundle文件。

对我之前的一些XCode项目的进一步调查表明,我可以构建一个包含Settings.bundle文件的IPA,并成功安装它。 但是,如果我对Settings.bundle文件进行了简单的更改,例如添加或删除行,则构建IPA然后尝试安装它我得到了

"A signed resource has been added, modified, or deleted" error.

我对导致此错误的原因以及为什么Settings.bundle文件导致安装失败感到有些不知所措。

有没有人之前看过这个错误,或者可能会对导致它的原因有所了解?

我正在使用Xcode 4.6.3和运行iOS 6.1.3iPhone 4

清洁构建文件夹(⌘⌥⇧-K)已经为我解决了3次中的3次。

我刚刚使用Xcode 6 beta 6安装到运行iOS 8 beta 5的iPhone 5时遇到了这个问题。我正在构建的应用程序使用Today扩展(aka widget)。

看来这个问题源于我没有正确设置依赖关系。 我将第三方框架(Alamofire)设置为项目的一部分,作为整个项目的依赖项,但不作为今天小部件的依赖项。 我可以建立好,但在安装到设备时,我会得到这个“签名资源已...”错误。

通过添加Alamofire作为Today小部件的依赖,这解决了这个问题。

这有点晚了,但我今天遇到了与Xcode 5.0.1完全相同的问题。

根据https://developer.apple.com/library/ios/technotes/tn2318/ index.html ,“资源缺失:my.app /。* ”错误可能是由以下原因引起的:

带有“._”前缀的文件被视为AppleDouble文件,它可能是因为将未压缩的Xcode项目文件夹复制到非HFS +格式化的磁盘上。 必须使用'dot_clean'命令删除AppleDouble文件。 Xcode项目文件夹是dot_clean的参数,如下所示。

我做的步骤解决了这个问题:

  1. 关闭Xcode
  2. 在终端中运行“dot_clean / path / to / My_Xcode_Project”
  3. 再次打开Xcode并进行新构建

奇怪的是,大多数这些_ *文件似乎没有引起任何问题,除了那些内部的Settings.bundle(我的目录中几乎每个文件都有一个,但只有在我添加了Settings.bundle之后,IPA才能安装)。

我也面临同样的问题,这篇文章解决了我的问题:

http://code-ninja.org/blog/2012/04/17/signed-resource-has-been-added-modified-or-deleted/

事实证明,问题是由产品名称中的特殊字符引起的 - 在我的例子中,是? 删除? 从产品名称修复了问题。

在我的例子中,有助于在构建阶段添加一个bash脚本(就在“编译源代码”之前):

find ~/Library/Developer/Xcode/DerivedData -name "YouAppName.appex" | xargs -I % find % -type f -maxdepth 1 | xargs rm

这个脚本的作用是清理项目的appex目录(例如资产)中的文件,但保留子目录(例如编译的故事板)。 实际上,在构建时使用此脚本比完整项目清理要快得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM