【问题标题】:Validating app, application is missing Architecture armv7验证应用程序,应用程序丢失架构 armv7
【发布时间】:2012-09-11 08:20:22
【问题描述】:

当我更新我的第一个 iOS 应用时,我在验证它们时遇到了 2 个问题,

*iPhone/iPod Touch:application executable is missing a required architecture. 
At least one of the following architecture(s) must be present: armv7

*Unable to extract entitlements from application: (null)

Info.plist 和构建设置都是默认设置,我唯一更改的是代码签名身份调试和发布到我的分发配置文件,应用 ID 和捆绑包 ID 相同。

【问题讨论】:

    标签: objective-c architecture armv7 entitlements code-signing-entitlements


    【解决方案1】:

    当我连接我的 iphone 5 并建立我的档案时,这发生在我身上。当我断开我的 iPhone 并建立我的档案时,一切正常。

    【讨论】:

    • 感谢您节省了我的时间。我遇到了类似的问题,但出现了 armv7s 错误:“此捆绑包无效。包含 armv7s 架构的应用程序必须包含 armv7 架构”。想知道为什么。从 USB 端口拔下我的 iPhone 5 解决了这个奇怪的问题。
    • 我简直不敢相信哈哈!但它奏效了!拔掉我的手机,通过验证! +1
    • 我不敢相信!谢谢!
    • 这不是魔法,它是您项目中的“仅构建活动架构”设置。对于您的分发配置,您需要将其设置为“否”,请查看一个旧但很好的配置:useyourloaf.com/blog/2010/04/21/…
    • 哈哈...不敢相信 =)))
    【解决方案2】:

    确保在项目和目标设置以及此处的答案"Warning: iPhone apps should include an armv6 architecture" even with build config set 中都将“构建活动架构”设置为“否”

    【讨论】:

    • @chadbag 这个评论让我很开心,谢谢 :) 和蒂亚戈,请接受这个答案
    • 感谢您的见解!
    【解决方案3】:

    现在我解决了这个问题,这是一个非常简单的问题,就是我的可执行文件名。

    我的目标有一个无效字符 (+) 然后,当我上传我的应用程序时它显示一个问题(此捆绑包无效,可执行文件名称不能包含此字符....)然后我将可执行文件名称从 $ {EXECUTABLE_NAME} 到 Chemistry,但我的应用的注册名称是 Chemistry++。

    然后验证显示其他问题,这是通过更改此产生的。

    为了解决问题,我点了project>target两次,改了名字,没有无效字符(*.,+{}()),所有问题都消失了。

    然后上传成功。

    (当我更改 Info.plist 可执行文件名称时,对于其他名称,它会产生不兼容,所以不要将其设为默认值( ${EXECUTABLE_NAME} ),如果您更改,它会产生其他问题。)

    等待苹果审核!!!

    【讨论】:

    • 由于某种原因,当您重用旧项目来创建新应用程序时,更改可执行文件名(在 info plist 中)会导致这些问题。对我来说就是这种情况,所有其他答案,如有效架构、目标 ios 等,都是正确的。
    【解决方案4】:

    已确认。我刚刚拔掉了我的 iPhone 5s 并重新存档了该应用程序。它完美无缺。

    哎呀,我再也回不来这 40 分钟了。

    【讨论】:

      【解决方案5】:

      我与 iPhone 5s 连接,但在验证我的应用程序时出现此错误

      目标和项目“仅构建活动架构”设置为NO可解决此问题。

      【讨论】:

        【解决方案6】:

        确保将所有目标、库和框架的“仅构建活动架构”设置为 NO。

        【讨论】:

          【解决方案7】:

          我一拔掉 iPad,警告就消失了,可以编译并上传到应用商店。

          【讨论】:

            【解决方案8】:

            确保 armv7 后面没有逗号。

            当我在目标设置中设置架构时,我写道:

            armv7, armv7s
            

            看起来不错,但是当我点击“其他”进行编辑时,我意识到它被设置为:

            armv7,
            armv7s
            

            删除逗号 (,) 解决了这个问题。

            【讨论】:

              【解决方案9】:

              当我尝试验证我试图提交到应用商店的(仅限 iPad)应用时,我收到了三个错误:

              1. iPad:应用程序可执行文件缺少所需的架构。必须至少存在以下架构之一:armv7。

              实际上,我的所有架构设置中都有 armv7 和 armv7s,是的,我确实将“仅构建活动架构”设置为“否”。

              为我解决的问题是从该列表中手动删除 armv7s,只留下 armv7。 只有到那时这个错误才消失。

              “至少其中一种架构必须是 armv7”

              2。应用程序未通过协同设计验证。签名无效,包含不允许的权利,或未使用 iPhone 分发证书签名。

              嗯? 以前,我一直在使用企业许可证构建这个 iPad 应用程序,以便在我们公司内进行 Ad-Hoc 分发。现在,我正在尝试使用开发人员许可证来构建它,这样我就可以将它部署到 App Store。

              要解决此问题,我需要:

              • 在左侧窗口中单击我的项目

              • 在中间窗口中选择项目名称(在 Targets 下)

              • 选择构建设置选项卡

              • 就在行选项卡下方,选择“基本”和“组合”选项。

              • 现在,在代码签名身份下,我需要确保我选择了 与我的 Apple Developer 帐户相关的代码签名,而不是 企业帐户,专门用于该项目。

              3.无法从应用程序中提取权利:(null)

              啊?!

              还记得应用程序刚刚命名的美好时光吗?使用 XCode,您的应用程序具有包名称、产品名称、可执行文件名称和包显示名称。

              一些 StackOverflow 用户已经注意到了这一点,并为您指明了 Apple 文档的方向,以解释这些差异......但祝你好运。

              对我来说,要解决这个问题,我只需要确保可执行文件名称和捆绑包名称(在 *-Info.plist 文件中)相同,并且与产品名称匹配。

              令人沮丧的是,产品名称隐藏在上面第 2 部分中提到的选项卡下,即选择“构建设置”选项卡,然后在标题栏中选择“基本”和“组合”。

              我希望这对其他开发人员有用。这一切都是使用 XCode 4.6.3 完成的,所以当 iOS 7 和 XCode 5 出现时,下个月肯定会过时。届时,您的应用可能还需要昵称和中间名。谁知道?

              迈克

              www.MikesKnowledgeBase.com

              【讨论】:

              • 这就是我的解决方案。我有 EXACT 同样的问题。我的客户通过更改名称为多个应用程序使用相同的代码。我必须按照 3 中的说明更改构建设置下的应用名称(产品名称)。谢谢!
              • 感谢您的反馈。我想知道这是否只是我的运气不好,从一个 XCode 问题跌跌撞撞到下一个问题!很高兴我的问题和解决方案对您有用!
              • 只是有时客户会使用相同的代码库来重新皮肤并制作新的应用程序。这就是给我造成问题的原因。我从客户那里收到的代码被其他一些开发人员重新设计了,我不得不上传到 AppStore,这时我遇到了这个错误。
              【解决方案10】:

              检查目标和项目设置并将“Build Active Arch Only”设置为 NO。

              【讨论】:

                【解决方案11】:

                它说缺少所需的架构 试试这个

                1. 转到目标“您的项目”
                2. 转到构建设置
                3. 查看Architectures中是否有armv7
                4. 如果不是,则将 Architectures 设置为 armv7
                5. 清理并构建。

                如果已经有 armv7,那么一定有问题。

                希望对你有帮助!

                【讨论】:

                • 我已经有 armv7 到 Archs,并且我已经把 armv7、standard(armv7) 和 armv7 armv6 都放了,但没有任何效果,默认是 standard(armv7)
                • 没有。这是因为一些 4.5 beta 用户对 Architectures / armv7 有一些类似的问题。新的 Xcode 4.5 版本发布了,更新一下,如果还有问题告诉我
                • 现在我更新了我的 Xcode,问题仍然存在,使用 armv7 架构。我向苹果发送了技术支持,因为我在任何地方都找不到任何解决方案。当我更新其他问题时,就像代码验证一样,但我修改了代码数千次,问题仍然存在。如果您有任何解决方案,请帮助。
                • 基本上我现在没有任何想法可能出了什么问题,但令人讨厌的是 xcode 有这么多需要修复的问题。
                • 正如我上面提到的 - 改变架构也是值得的,以便列出 just Armv7(仅此而已)。这解决了我的问题。
                【解决方案12】:

                我也遇到了同样的问题,已经解决了..

                事实证明,我的 Bundle/Executable 名称与项目名称不同。

                转到项目 > 双击目标

                将其重命名为 Bundle/Executable 名称,然后为 Release/iOS 设备构建

                应用程序加载器将接受您的应用程序。

                【讨论】:

                  【解决方案13】:

                  该死的...这对我来说是一个错字。在设置架构时,我在第一个条目(armv7)的末尾放了一个逗号......这样它就被认为是无效的并被忽略了。删除这个多余的字符可以解决任何问题...

                  永远不要忘记检查您的错字!

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-05-23
                    • 1970-01-01
                    • 2019-10-15
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多