找不到存档的 Three20/Three20.h 文件

Posted

技术标签:

【中文标题】找不到存档的 Three20/Three20.h 文件【英文标题】:Three20/Three20.h file not found for Archive 【发布时间】:2012-10-08 11:24:04 【问题描述】:

我正在尝试更新已具有 Three20 库的应用。现在我使用的是 xcode 4.5,每次我尝试制作存档时都会收到此错误:

找不到Three20/Three20.h 文件

一开始我无法进行任何类型的构建,但是在标题搜索路径中添加了 $(BUILT_PRODUCTS_DIR)/../three20 和 $(BUILT_PRODUCTS_DIR)/../../three20 之后构建和目标设置我可以在我的设备中进行构建。无论如何,如果我尝试制作存档来发布我的应用程序,则会返回相同的错误。我可以做什么?我已经重新安装了 Three20 的最新版本....我必须尝试我在互联网上找到的这个解决方案:

转到 Xcode4 Preferences (Cmd + ,) > Locations > Build Location > 并选择“Place build products in locations specified by targets”

在 xcode 4.5 中我无法使用此解决方案...也许构建位置菜单已更改,我找不到选项“将构建产品放置在目标指定的位置”...。有人知道我在哪里可以找到这个设置?

至少有人是如何在 Xcode4.5 和 Three20 上成功制作存档的?

【问题讨论】:

【参考方案1】:

Three20好久没更新了,bug很多,搭建这个框架很辛苦。

你可以试试nimbus。它来自three20。

Nimbus 的背景

Nimbus 的设计灵感来自 Three20 框架。话虽这么说,但存在许多基本问题 与 Nimbus 非常努力避免的 Three20。其中:

文档不足。意大利面条依赖。饱受“厨房之苦” 水槽”复杂。一个复杂的构建结构。大量的 难以解决的错误。接近于零的测试覆盖率。对于它的 弱点,Three20 确实通过它的 功能集。公司在应用商店的 100 多个应用中使用它 例如 Facebook、LinkedIn、Posterous、Meetup 和 SCVNGR。

Nimbus 希望有一天能提供和 Three20 一样多的价值 逐个功能比较,但具有无价的好处 崇高的文档和测试覆盖率。

【讨论】:

谢谢,但我如何处理使用旧版本应用程序的老用户?如果我使用 Nimbus 发布我的应用程序的新版本,进行更新的用户将拥有一个“带有一些 Three20 痕迹”的应用程序,或者旧库将被完全删除?对不起,我不知道如何对像three20这样具有侵入性的库进行更新... 更新不用担心。据我所知,ios App的更新将完全替代 似乎 Cri1682 和 agassi_yzh(分别是提问的用户和发布上述答案的用户)已经有一段时间没有上过 SO 了。所以这是一个悬而未决的问题:有真的有人将他们的three20迁移到Nimbus吗?进展如何? b/c 老实说,这三个 20 的业务似乎比它的价值更麻烦【参考方案2】:

我也支持从three20切换,但有时没那么简单。

要解决您的问题,您可以尝试使用CocoaPods。它是一个库依赖工具,可让您添加所需的任何库。几周前有人添加了三个 20 的 pod。

这应该可以让您使用标准的 xcode 归档过程来构建您的项目。

如果您不喜欢使用 cocoapods,您也可以使用“Build for...”->“Archiving”来构建该应用程序。您可以在相同的“产品”菜单中找到它。它将生成一个 .app 文件,您可以使用 Application Loader 应用程序提交该文件。

您可以通过在项目侧边栏中的“产品”文件夹下二次单击目标名称来找到.app 文件。

【讨论】:

不幸的是.. .app 文件不会替换 .ipa 文件,当我想将我的应用程序提交给像 testflight 这样的实体时【参考方案3】:

我做了以下工作以使其适合我:

    对于three20静态库,我使用cocoapods将文件包含在主项目中..它刚刚摆脱了three20给我带来的所有麻烦(而且它们很多..)顺便说一句,我尝试将three20替换为Nimbus.. 但 Nimbus 缺少我的项目使用 three20 的一些功能......所以 Nimbus 没有帮助。 在所有其他子项目/静态库的构建设置下将跳过安装设置为是,并在构建阶段将复制标头从公共切换到项目 最重要的是: 在子库下.. 在构建阶段,我确保 复制文件 目标从 Absolute path 更改为 products directory

就是这样!

提示:要了解导致存档创建存档文件而不是 ipa 的违规文件,请执行以下操作:

    选择存档并单击分发按钮。 选择“保存已构建产品”选项。 点击下一步并保存。 在 Finder 中浏览创建的目录。 “库”子目录将标识您需要将“跳过安装”设置为“是”的库。 在某些情况下,usr/local/include 会识别您需要从 Public 移动到 Project 的罪魁祸首文件,或者您必须从绝对路径更改到产品目录的文件。但该目录(即 usr/local/include)因您的子库目录结构而异

【讨论】:

以上是关于找不到存档的 Three20/Three20.h 文件的主要内容,如果未能解决你的问题,请参考以下文章

我的gta5存档怎么找不到,系统win10,求大神帮助

空 zip 存档:找不到用于摘要的模板:项目/存储库/存档

Ionic iOS 构建失败,找不到错误存档

由于找不到“Cordova/CDVViewController.h”文件,离子应用程序存档在 xcode 7.2 中失败

Restkit 0.20:在自己的静态库中构建存档时找不到

Cordova 构建 iOS 错误:在路径“path/to/myApp.xcarchive”中找不到存档