【问题标题】:Xcode creates archive instead of IPAXcode 创建存档而不是 IPA
【发布时间】:2012-02-03 02:24:48
【问题描述】:

我正在尝试创建一个 ipa 文件(产品->存档->共享),但 Xcode 只生成存档文件。

几天前它运行良好。我一直在工作 ipa,但现在我无法生成 ipa(当我单击存档中的共享时,我无法签署代码)。我在过去几天内将子项目添加到主项目中(CorePlot-CocoaTouch)。我不确定它是否可以关联。

【问题讨论】:

    标签: xcode cocoa-touch archive ipa


    【解决方案1】:

    如果您添加了静态库,它们现在会默认安装。这不适用于 iPhone 应用程序。转到项目文件并选择静态库的目标。在Build Settings 下,转到Deployment 部分并将Skip Install 设置更改为YES。从 Xcode 4 开始,现在默认为 NO,这会破坏您的 IPA(因为您可以合法安装的唯一二进制文件是应用程序二进制文件本身)。

    您可能必须从 Basic 视图切换到 All 视图才能看到此设置。

    【讨论】:

    • 感谢您的回答。我已经这样做了(将我发现的所有“跳过安装”设置为是)但结果相同。它仍然为我提供存档,但没有机会以 ipa 的形式分享。
    • @Engeor 然后还在安装其他东西。看看创建的原始档案(甚至是它制作的新档案)。唯一的东西应该是您的应用程序包。找出那里还有什么东西,你就会知道下一步该去哪里。
    • 有效的旧存档和无效的新存档之间的唯一区别是带有 CorePlot 头文件的文件夹。除此之外,只有一个应用程序文件。我迷路了:-(
    • @Engeor 这就是问题所在!不要安装头文件。将它们更改为项目或私有,您将被设置。
    • 谢谢。同时,我将 coreplot 作为静态库,而不是解决问题的项目。不过非常感谢您的帮助!
    【解决方案2】:

    由于对我有用的答案隐藏在 cmets 中,我想我会把它带到顶部。就我而言,将静态库的头文件更改为 Project 解决了这个问题。

    为此,请选择您的库目标,然后转到 Build Phases > Copy Headers 并将头文件从 Public 移动到 Project。

    【讨论】:

    • 您的解决方案对我帮助很大!谢谢。
    【解决方案3】:

    在 XCode 5 中,如果您在管理方案中有多个目标和错误的复选标记,则会发生相同的错误。然后 Xcode 将 2 个二进制文件放入 1 个通用存档中。这不会影响签入的文件,例如混蛋!

    【讨论】:

      【解决方案4】:

      其他答案可能都是正确的,但对我的情况没有帮助。我花了几个小时在这上面,最后重新启动了。然后我又一次拿到了一周前拿到的申请档案。

      【讨论】:

        【解决方案5】:

        尝试了所有其他答案但没有运气的人,请选中此复选框,希望它会有所帮助(为我做了 xcode 6.0.1 的诀窍)

        【讨论】:

          【解决方案6】:

          如果您包含一个生成静态库的项目,请尝试选中“仅在安装时复制”选项。这阻止了 Xcode 在我的应用程序存档中包含静态库。我使用的是 Xcode 6.3.2。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-07-13
            • 1970-01-01
            • 2014-11-04
            • 2013-12-20
            • 1970-01-01
            • 2016-07-03
            • 2011-11-05
            相关资源
            最近更新 更多