验证应用程序,应用程序缺少架构armv7

时间:2012-09-19 02:17:45

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

当我更新我的第一个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和构建设置都是默认设置,我唯一更改的是代码签名Identity调试和发布到我的分发配置文件,应用程序ID和Bundle ID相同。

13 个答案:

答案 0 :(得分:76)

当我连接iphone 5并构建我的存档时,发生了这种情况。当我断开我的iPhone并建立我的档案时,它很顺利。

答案 1 :(得分:23)

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

答案 2 :(得分:4)

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

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

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

为了解决问题,我点击了项目>目标两次并更改名称,没有无效字符(*。,+ {}()),所有问题都消失了。

然后成功上传。

(当我更改Info.plist可执行文件名时,对于其他名称,它会创建不兼容性,因此请不要将其设为默认值($ {EXECUTABLE_NAME}),如果更改,则会产生其他问题。)< / p>

等待苹果审核!!!

答案 3 :(得分:4)

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

Welp,我永远不会得到我生命中的那40分钟。

答案 4 :(得分:3)

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

enter image description here

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

答案 5 :(得分:2)

确保为所有目标,库和框架将“仅构建活动体系结构”设置为“否”。

答案 6 :(得分:2)

一旦我拔下我的iPad,警告就会消失,并且可以编译并上传到应用程序商店。

答案 7 :(得分:2)

确保armv7之后没有逗号。

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

armv7, armv7s

看起来没问题,但是当我点击&#34;其他&#34;编辑它,我意识到它被设置为:

armv7,
armv7s

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

答案 8 :(得分:1)

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

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

实际上,我在所有架构设置中都有armv7和armv7s,是的,我确实有过#34;仅构建活动架构&#34;设置为&#34;否&#34;。

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

对于#34而言,至少有一个架构必须是armv7&#34;

<强> 2。应用程序验证失败。签名无效,包含不允许的权利,或者未使用iPhone分发证书签名。

嗯? 以前,我一直在使用我们公司内的Ad-Hoc分销企业许可证构建这个iPad应用程序。现在,我试图使用开发人员许可证进行构建,因此我可以将其部署到App Store。

要解决此问题,我需要:

  • 点击左侧窗口中的项目

  • 在中间窗口中选择项目名称(在“目标”下)

  • 选择“构建设置”选项卡

  • 在行标签下方,选择&#34;基本&#34;和#34;合并&#34;选项。

  • 现在,在Code-Signing Identity下,我需要确保我选择了一个 与我的Apple开发人员帐户相关的代码签名,而不是 企业帐户,专门针对该项目。

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

嗯?!

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

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

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

令人沮丧的是,产品名称隐藏在上面第2部分中提到的选项卡下,即选择Build Settings选项卡,然后选择&#34; Basic&#34;和#34;合并&#34;在标题栏中。

我希望这对其他开发者有用。这一切都是使用XCode 4.6.3完成的,所以毫无疑问,下个月iOS 7和XCode 5出现时会过时。到那时,您的应用可能还需要一个昵称和MiddleName。谁知道?

麦克

www.MikesKnowledgeBase.com

答案 9 :(得分:1)

检查目标和项目设置并设置&#34;仅构建活动拱门&#34;没有。

答案 10 :(得分:0)

它说错过了必需的架构 试试这个

  1. 转到目标“您的项目”
  2. 转到构建设置
  3. 查看架构
  4. 中是否有 armv7
  5. 如果没有,则将架构设置为 armv7
  6. 清洁和建造。
  7. 如果已经有 armv7 ,那么肯定是错误的。

    希望它有所帮助!

答案 11 :(得分:0)

我遇到了同样的问题,并得到了解决..

原来,我的Bundle / Executable名称与项目名称不同。

转到项目&gt;双击目标

将其重命名为Bundle / Executable名称,然后为Release / iOS Device

构建

并且Application loader将接受您的App。

答案 12 :(得分:0)

诅咒......这对我来说是一个错字。在设置体系结构时,我在第一个条目(armv7)的末尾添加一个逗号...以便它被视为无效并被忽略。删除这个额外的角色已经解​​决了任何问题......

永远不要忘记检查你的拼写错误!