RestKit 框架的 Xcode 存档错误

Posted

技术标签:

【中文标题】RestKit 框架的 Xcode 存档错误【英文标题】:Xcode archive error with RestKit framework 【发布时间】:2012-07-19 09:27:54 【问题描述】:

我刚刚开始使用 Objective C 和 RestKit。

我创建了一个应用程序并添加了 RestKit 项目。我使用 RestKit 从我的网络服务器加载地图 JSON 数据。

应用程序在模拟器和我的 iPhone 设备上运行良好。现在我想创建一个 TestFlight 测试版。我已设置分发证书并将其添加到我的手机和代码签名设置中。

现在我想生成 IPA。我使用 Project 菜单项下的 Archive 选项。当我点击这个按钮时出现以下错误:

Ld: in /Users/japak/Library/Developer/Xcode/DerivedData/AlquinApp-ahkxhlzmjpdjjbczzkyriizvchid/Build/Intermediates/ArchiveIntermediates/AlquinApp/BuildProductsPath/Release-iphoneos/libRestKit.a(RKJSONParserJSONKit.o),
mach-o string pool extends beyond end of file for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

【问题讨论】:

我没有使用 RestKit 的经验,但我发现在 ios 应用程序中链接到外部库对于归档来说是有问题的。我必须将库合并到我的工作空间中,并将其构建为工作空间的一部分,以便能够对其进行归档。 【参考方案1】:

我在 Swift 3/Xcode 8.2 项目中遇到了一些来自 Cocoapods 的动态框架的问题。对构建文件夹(产品->(按住选项键)->清理构建文件夹)的深度清理为我解决了这个问题。

【讨论】:

【参考方案2】:

我的解决方案是取消选中“Schemes => Edit Schemes => Builds => Build Options”下的“Parallelize Builds”选项。 (我在 Xcode 6.3 下看到了这个,我相信这个选项在旧版本中也存在)

【讨论】:

【参考方案3】:

我认为问题是因为您使用的东西不应该用于分发并且它目前受 NDA 保护?

【讨论】:

我已经删除了 RestKit 库并用 AFNetworking 替换它。现在可以了。 哦,酷。我遇到了和你一样的错误,那是因为我在回答中写的原因。 NDA 下的内容如何影响目标应用程序的构建过程?这个答案对所讨论的错误没有意义。

以上是关于RestKit 框架的 Xcode 存档错误的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 在存档模式下中断构建 - Xcode 8

RestKit - Lipo 错误:无法在 Xcode5 中打开输入文件

无法在Xcode 10上进行存档

未找到用于架构 armv7 存档错误 xcode 5.1.1 的金属框架

Xcode 存档验证错误 - Xcode 9 和 Swift 4

RestKit iOS 教程 - Xcode 无法识别 RestKit 类方法 - 缺少框架?