【问题标题】:Three20/Three20.h file not found for Archive找不到存档的 Three20/Three20.h 文件
【发布时间】: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 上成功制作存档的?

【问题讨论】:

    标签: iphone ios three20 archive file-not-found


    【解决方案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】:

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

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

    就是这样!

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      相关资源
      最近更新 更多