【发布时间】:2013-01-15 20:27:11
【问题描述】:
由于某种原因,我在 xcode(第三方 SDK)中导入了一些文件,即使应用程序构建成功,我也会收到此错误:Xcode 错误消息:“无法检查应用程序包”。这是什么意思?该应用程序不能在真实设备上运行,但可以在模拟器 IOS 上运行...
【问题讨论】:
由于某种原因,我在 xcode(第三方 SDK)中导入了一些文件,即使应用程序构建成功,我也会收到此错误:Xcode 错误消息:“无法检查应用程序包”。这是什么意思?该应用程序不能在真实设备上运行,但可以在模拟器 IOS 上运行...
【问题讨论】:
当我替换 xcode 上的“资源”文件夹时,错误地选择了以下选项。
Create folder references for any added folders
但正确的选择应该是,
Create groups for any added folders
注意上述选项对于节省时间广告解决上述问题很重要。 (这是出现此错误的可能性之一)。
【讨论】:
听起来第三方文件可能包含未经您签名的编译代码。如果是这样,您可以使用iReSign 使用您自己的证书为他们签名。也可以使用命令行:
codesign -f -s "iPhone Developer: Aaron Brager (XXXXXXXXXX)" nameOfAppToSign.app
用您自己的身份替换示例身份(您可以man codesign 阅读有关此命令的更多信息)。
您可以通过不包含已编译代码来规避此问题。可能没有必要 - 您是否包含了框架运行不需要的示例应用程序?
如果这个答案没有帮助,提供框架的名称并显示您包含的文件会有所帮助。
【讨论】:
sysctl kern.maxprocperuid 以查看您可以拥有多少个最大进程。然后输入ps ax | wc -l 查看有多少正在运行。如果您达到或超过进程数,请退出所有内容并重新启动计算机。我认为这可能是编译过程失败的原因。如果这不能解决问题,请发布您的整个编译日志。
我只是做了一个产品解决了这个问题->做了很多愚蠢的事情后清理
【讨论】:
我遇到了同样的错误。我通过从“嵌入式二进制文件”列表中删除第三方库并添加到“链接的框架和库”中来解决它。
【讨论】:
就我而言,我使用的是 Cordova 和 Firebase。从 Embed frameworks 中删除所有 Google 框架(但将它们保留在 Linked Binary With Libraries 下)解决问题。
【讨论】:
我在我之前删除的桥接头中导入了一个框架,而 Xcode 没有给我任何错误,我猜是因为我不再调用该框架了?
步骤:
这可能有点矫枉过正,但现在可以了。我希望这会有所帮助。
【讨论】:
我遇到了同样的错误。这是在我向我的项目中添加了一个新的空文本文件(以保留一些注释)并将其命名为 Resources 之后。将其重命名为 Resourcesx 解决了问题,但直到进行清理。我反复证明文件名“Resources”是导致错误的充分条件。
这与其他人的经历相同 Xcode Error Message: "could not inspect application package"
【讨论】:
检查您是否将静态库嵌入到应用程序包中。 一些第三方将他们的静态库 SDK 打包成一个动态框架。 Xcode 不支持哪个(还没有?)。在这种情况下,您可能会被愚弄并将它们放在“嵌入式二进制文件”列表中。静态库不应在列表中。
要检查它是否是静态库,请使用file 实用程序。
file /path/to/binary/in/Example1.framework/Example1
如果它说类似ar archive 的内容是静态库,dynamically linked shared library 是动态库。
【讨论】:
对我来说,我在我的 podspec 文件中错误地指定了我的资源。在捆绑包中,它包含.storyboard 和.storyboardc 文件以及.xib 和.nibs 文件等,我将资源更改为仅包含特定文件扩展名类型,与通用/**/*
s.resource_bundles = {
s.name => [s.name + '/Assets/**/*.{xib,storyboard,strings,json,otf}']
}
s.resources = [s.name + '/Assets/*.{xcassets}']
这似乎为我解决了错误
【讨论】: