【问题标题】:Why do I get "could not be added to your itunes library because it is not a valid app" error when trying to install Ad-Hoc build?为什么在尝试安装 Ad-Hoc 构建时出现“无法添加到您的 iTunes 库,因为它不是有效的应用程序”错误?
【发布时间】:2011-09-27 14:16:06
【问题描述】:

我最近将我的 Mac 升级到 Lion 和 Xcode 4。

在 Build Settings 中,我将“Release”的“Code Signing”设置为“iPhone Distribution”,它与我们的 Ad-Hoc 配置文件(我们过去在 Snow Leopard/Xcode 3 上使用过)匹配.

我已删除旧的权利文件(因为 Xcode 4 显然不再使用它)。

在方案部分,我已将存档设置为使用发布版本。

我正在使用产品 > 存档进行构建。

我通过进入管理器并单击共享来保存文件,然后确保选择了相同的 Ad-Hoc 配置。

我将生成的 IPA 文件发送给我的老板,他之前安装了这个应用程序。当他尝试安装它时,收到消息“[appname] 无法添加到您的 iTunes 库,因为它不是有效的应用程序”。

我一直在尝试所有我能想到的设置组合,但我们就是无法让它发挥作用。我在 Google 中只能找到两次此错误 - 一次是手机越狱的人,另一次是在文章的 cmets 中发布的,有人遇到同样的问题,但没有任何回应。

任何帮助将不胜感激。

编辑:尝试将 IPA 拖到创建它的 Mac 上的 iTunes 中也会发生同样的事情! :(

Edit2:刚刚采用了另一个(几乎相同的)项目并尝试了一个没有“现代化”项目的构建,或者选择了 Xcode 中的任何新选项(图标、启动图像、方向等) ,并且此构建有效。我将通过这个应用程序完成我对原始应用程序所做的每一件事,并在每一步进行测试。希望应该能够隔离出哪个步骤破坏了已编译的应用程序!

(也发布到Apple Dev Forums

【问题讨论】:

  • 定位 3.2。我们尝试安装它的手机是 4.0,但我们甚至没有将应用程序导入 iTunes,因此手机可能无关。
  • 尝试将 IPA 拖入创建它的 Mac 上的 iTunes 时也会发生同样的事情! :(
  • 我猜你老板的系统不是Mac吧,是windows?
  • 是的,它是 Windows。但是我发现这个问题也发生在我的开发 Mac 上。将我“共享”的文件从 Organizer 拖到 Mac 磁盘会导致在 Mac 上拖到 iTunes 时出现相同的错误
  • 还尝试过(来自 Organizer Share)“不要重新签名”并明确选择 Ad-Hoc 配置。我认为它在 Organizer 中的时候已经坏了:-(

标签: iphone ios xcode xcode4


【解决方案1】:

我相信我已经找到了这个...它似乎真的是间歇性发生的,所以它需要一些时间(我会重现它,回滚更改,确认它有效,然后重新应用更改,让它再次工作!)。

但是,经过多次清理/重新启动/等,我相信它与目标设置中的“构建”版本有关(现在有两个版本字段,“版本”和“构建”)。看来如果“Build”为空,就会出现这个错误。

不幸的是,更改此值似乎无法正确重建,因此有时如果您更改它,然后存档,您仍然会得到以前的值。在存档之前手动清理似乎可以解决这个问题。

值作为 CFBundleVersion 写入 plist 文件。

【讨论】:

  • 我不敢相信这实际上是问题的原因,因为我在大多数应用程序版本中都将“构建”字段留空。最近为一些小错误修复添加了构建“2”,然后删除了下一个主要版本发布的构建标识符。果然 - 在设置了一次内部版本号后,我现在必须始终提供一个内部版本号,否则此错误是由 iTunes 生成的
【解决方案2】:

最近我在使用 TestFlight 服务进行 Ad-Hoc 安装时遇到问题,日志中的消息没有太大帮助:

Jul 25 12:52:39 MyiPad installd[477] <Error>: 0x10059c000 init_pack_state: Archive we've been requested to install is 0 bytes. That can't be a valid ipa.

经过多次测试,我发现了这个问题,问题是一样的,Build字段是空的(这个答案节省了我的时间:-))

因此,如果其他人在 TestFlight 上遇到此问题,我希望我的回答能让您更轻松地找到此页面 ;-)

【讨论】:

    【解决方案3】:

    我也遇到了同样的问题。在做了一些研究后发现以下答案:

    • 应用程序VersionBuild version 不应为空。
    • 不要在我的 app bundle 名称中加入特殊字符。
    • 而且我的配置文件也没有问题。

    调试后发现我的scheme名和info.plist文件名存在name不匹配的问题。在我的项目中,我有 3 个方案,如 a、b、c,只有一个 a-info.plist 文件。我正在为“b”等不同的方案创建 IPA。

    在您的场景中,如果您创建了多个方案,请检查您的 Info.plist 名称。这应该与您的方案名称(您正在为其创建 IPA)相同。

    示例。方案名称为“myScheme”,然后您的 Info.plist 文件名称为“myScheme-Info.plist”。

    希望这会对你有所帮助。

    【讨论】:

    • 谢谢陌生人。删除构建版本让我浪费了 3 个小时的时间,试图弄清楚这不会正确签名。
    【解决方案4】:

    我收到了同样的消息(“不是一个有效的应用程序”)。就我而言,我正在将构建的应用程序通过 FTP 传输到 Web 服务器,然后我就可以对其进行 OTA 配置。在放入文件之前,我没有切换到二进制模式,因此 .ipa 文件在途中损坏了。花了我大半夜的时间来弄清楚那个愚蠢的错误......

    【讨论】:

      【解决方案5】:

      好的.. 做一件事.. 打开 info.plist.. 转到包标识符并更改包标识符名称。它需要是唯一的.. 像“com.yourcompany.projectname”这样的东西并创建并尝试安装 ipa.. 它应该可以工作

      【讨论】:

      • 标识符是唯一的,它是我们刚刚升级到Xcode4的现有应用程序。我们甚至在尝试将其拖入之前从 iTunes 中删除了它的所有副本 :-(
      【解决方案6】:

      我在研究类似问题时遇到了这个问题,所以即使案例不相同,我也会在这里回答,因为其他人会搜索相同的错误消息。

      我有一个 ad-hoc 应用程序,开发团队中的每个人都可以正常安装,除了一个从 iTunes 收到错误的人:

      X 不是一个有效的应用

      他能够安装此应用的早期版本。重装app,改版本号,改build号都没有效果,他还是不能安装,别人可以。

      我通过创建一个全新的 Xcode 项目来修复它,要么复制文件,要么将文件的内容从旧项目复制并粘贴到新项目,然后重建应用程序并以与老项目。它奏效了。

      【讨论】:

        【解决方案7】:

        我在尝试为一个旧项目(一年前由前开发人员构建)创建一个用于 adHoc 分发的 .ipa 时遇到了类似的问题。在谷歌进行大量研究并遵循上述解决方案后,它对我来说并没有解决问题。

        稍后点击此链接 - here。通过将 .plist 文件替换为现有的工作项目(显然 - 相关图标/捆绑显示名称/标识符)并用当前的 .plist 名称重命名。它对我有用。

        我确实花了大约 3-4 个小时来解决这个问题。希望对大家有所帮助。

        环境是原生的 - iOS 应用程序。

        【讨论】:

          【解决方案8】:

          添加...... “应用程序需要 iPhone 环境”在您的 info.plist 中,或者如果添加了值“是”。 检查“Build”和“Version”一般不为空...... 希望这会奏效

          【讨论】:

            【解决方案9】:

            将项目内容导入新项目解决了我的问题。

            【讨论】:

              【解决方案10】:

              对我来说,我们试图从 iOS 5 开始构建一个非常古老的应用程序的企业版本。

              在确认配置文件和其他一切正常后,调试构建工作正常,我注意到普遍的共识是围绕 info.plist 文件的问题。

              我将 info.plist 与另一个应用程序进行了比较,果然,

              Application requires iPhone environment = NO
              

              基本上,对于 iOS 应用,无论是 iPhone、iTouch 还是 iPad,此键都需要始终设置为 YES...

              它可能不限于每个人的那个键,但要确保 info.plist 看起来类似于工作应用程序。

              Bundle version
              Bundle versions string, short
              

              应该一直存在!

              【讨论】:

                【解决方案11】:

                正确.. 但我猜它与早期的包标识符冲突(发生这种情况是因为您升级了 Xcode)。您是否尝试更改现有的捆绑标识符名称并安装?我遇到了同样的问题,浪费了 3-4 天。我更改了现有的包标识符名称并且它工作了。你可能还想检查 Bundle 名称和 Bundle 版本是否存在于 info.plist

                【讨论】:

                • 我还没有尝试过,但是我们绝对无法更改捆绑标识符,因为这个应用程序在商店中,我们需要发布更新。在升级另一个项目时,我能够打开和关闭它,但不会始终如一地这样做。今天会再试一次
                • 我猜“iPhone Distribution”会出现此错误,因此您可以更改分发版本的捆绑包标识符。在应用商店发布更新时,您可以保留相同的捆绑包标识符。
                • 在下面查看我的答案 - 追踪到 CFBundleVersion :-)
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2012-09-02
                • 2014-04-22
                • 1970-01-01
                • 2014-08-27
                • 2019-12-20
                • 2014-05-01
                • 2023-02-24
                相关资源
                最近更新 更多