出于某种原因,我在 xcode(第三方 SDK)中导入了一些文件,即使应用程序构建成功,我也会收到此错误:Xcode 错误消息:“无法检查应用程序包”。这是什么意思?该应用程序不能在真实设备上运行,但可以在模拟器 IOS 上运行...
10 回答
当我替换 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
阅读有关此命令的更多信息)。
您可以通过不包括已编译的代码来规避这一点。可能没有必要 - 您是否包含框架运行不需要的示例应用程序?
如果这个答案没有帮助,提供框架的名称并显示您包含的文件会很有帮助。
在做了很多愚蠢的事情后,我解决了这个问题,只是做了一个 Product->Clean
我遇到了同样的错误。我通过从“嵌入式二进制文件”列表中删除第三方库并添加到“链接的框架和库”中来解决它。
就我而言,我正在使用 Cordova 和 Firebase。从中删除所有 Google 框架Embed frameworks
(但将它们保留在 下Linked Binary With Libraries
)解决问题。
我在我之前删除的桥接头中导入了一个框架,Xcode 没有给我任何错误,我猜是因为我不再调用该框架了?
脚步:
- 删除未使用/不存在的桥接头框架
- cmd+shift+k
- 退出 Xcode
- 找到您项目的构建文件夹并丢弃中间件和产品文件夹的内容
- 打开你的项目并运行
这可能有点矫枉过正,但现在可以了。我希望这有帮助。
我得到了同样的错误。这是在我向我的项目中添加了一个新的空文本文件(以保留一些注释)并将其命名为 Resources 之后。将其重命名为 Resourcesx 解决了该问题,但直到进行清理。我反复证明文件名“资源”是导致错误的充分条件。
检查您是否将静态库嵌入到应用程序包中。一些第三方将他们的静态库 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}']
这似乎为我解决了错误