让Xcode 生成的ipa支持老的iOS设备(armv6)
来源:互联网 发布:新浪邮箱smtp端口号 编辑:程序博客网 时间:2024/04/28 22:10
让Xcode 生成的ipa支持老的iOS设备(armv6)--(发生未知错误(0xE8003FFE))
- 作者 firedragonpzy
- 7 九月, 2012
- 暂无评论
今天,突然来了个应用程序不能安装,郁闷啊,搜索“发生未知错误(0xE8003FFE)”,都是出现什么ipod设置或者itunes的东西,没有发表与之相关的。现在发表此文,与大家分享。下面的文档是我知道发生错误的原因后又搜索了一篇文章,供大家学习。以下是错误提示信息及解决。错误原因是发生错误的设备是老设备,而你的应用程序不支持老设备,你按照下面的解决方案调整一下就ok。
错误信息:应用程序"firedragonpzy"未安装在“firedragonpzy的ipod“上,因为发生未知错误(0xE8003FFE)
解决方案:这几天遇到一个非常奇怪的问题,基于Xcode 4.2开发的app,导出的ipa安装包不能安装到iPod Touch 2上。Touch2固件版本是4.2.1,已越狱。iTunes、91手机助手、同步推试过了都不行。但是其他ipa文件可以成功安装到Touch2上。而Xcode 4.2生成的ipa包在iPhone 4、iPhone 3GS、iPod Touch 4都能安装成功并顺利运行,无论固件什么版本。初步分析的结果就是Xcode 4.2生成的app不支持Touch2。这几天找了一些朋友帮我测试ipa安装包,问一些有iOS开发经验的朋友,最终有个朋友提醒我Xcode 4.2中,Project->Build Settings->Architectures->Release设置有关,经过修改,问题终于解决了,谢谢这位朋友!
原因分析:Xcode 4.2的Architectures设置默认只有armv7,也就是新的iOS设备,包括iPhone 3GS, iPhone 4, iPhone 4s, iPad, iPad2等,而iPhone, iPhone 3G, iPod Touch, iPod Touch 2属于armv6架构。
解决方法:将Architectures设置为armv6 armv7,如下图所示:
修改前:
修改后:
这样设置后生成的ipa安装包就可以支持老的iOS设备了。
另外,还要把Info设置中的Required device capabilitiess删掉,这样提交到AppStore后才会正确显示兼容老的iOS设备。
拓展阅读:
升级到Xcode4以后,你会发现许多程序无法在2代设备(有些3代设备,比如iTouch 3实际上仍然是2代的硬件)上运行了,并且Xcode4仅仅“Running…”就直接“Finished…”了,无论是Xcode控制台还是设备日志中,都没有任何提示。
注意:2代和3代的区别在于cpu架构。2代设备使用ARMv6架构cpu,3代设备使用ARMv7架构cpu。 iPhone 2G/3G,iPod 1G/2G属于ARMv6架构(2代),iPhone3GS/4, iPod 3G,iPad属于ARMv7架构(3代)。
stackoverflow上有关于这个的帖子,其中shapecatcher的答案是最准确的:
http://stackoverflow.com/questions/6378228/switching-from-xcode3-to-xcode4-cant-load-programs-onto-older-ipod-touch
1、打开Target的Build Settings,找到Architectures选项,将其从“$(ARCHS_STANDARD_32_BIT)”修改为“armv6 $(ARCHS_STANDARD_32_BIT)”。注意大小写是敏感的。“$(ARCHS_STANDARD_32_BIT)”是一个变量,实际上等同于armv7。
2、Base SDK不需要改变,仍然是Lastest iOS。
3、打开Target的info,找到Required device capabilities,将下面的armv7删除。这个选项是Xcode4自己添加在工程中的默认设置,如果不去掉它,第1步-第2步的工作是无法生效的。
摘自(有改动):http://www.cnblogs.com/bobli/archive/2011/11/09/2242190.html
- 让Xcode 生成的ipa支持老的iOS设备(armv6)
- 让Xcode 生成的ipa支持老的iOS设备(armv6)
- [iOS]让Xcode 4.2生成的app支持老的iOS设备(armv6)
- 让Xcode 4.2生成的app支持老的iOS设备(armv6)
- 让Xcode 4.2生成的app支持老的iOS设备(armv6)
- 让Xcode 4.2生成的app支持旧版iOS设备(armv6)
- 让Xcode 4.2生成的app支持旧版iOS设备(armv6)
- 用相同的xcode生成ipa,为什么有的iOS设备安装正常,有的安装失败?
- 如何用Xcode 4.5 编译支持 armv6 CPU及iOS 4.3以前的版本
- 如何用Xcode 4.5 编译支持 armv6 CPU及iOS 4.3以前的版本
- 如何用Xcode 4.5 编译支持 armv6 CPU及iOS 4.3以前的版本
- 如何用Xcode 4.5 编译支持 armv6 CPU及iOS 4.3以前的版本
- 让Xcode 8支持iOS 7设备
- [iOS]设置Xcode 4同时支持旧版iOS设备(armv6),并兼容iPhone和iPad
- [iOS]设置Xcode 4同时支持旧版iOS设备(armv6),并兼容iPhone和iPad
- [iOS]设置Xcode 4同时支持旧版iOS设备(armv6),并兼容iPhone和iPad
- [iOS]设置Xcode 4同时支持旧版iOS设备(armv6),并兼容iPhone和iPad
- [iOS] xcode 4.5不再支持armv6
- s5pv210 HDMI 1080P 高清显示
- Android访问Sqlserver
- tomcat启动时:a configuration error occured during startup
- Android开发之service浅谈
- Windows核心编程有感-进程
- 让Xcode 生成的ipa支持老的iOS设备(armv6)
- 谈深度学习:“知道” 与 “理解”
- 2014 第五届蓝桥杯预赛c/c++本科B组 解题报告
- java btrace
- 不用第三个变量,交换两个变量的值三种方案详解
- UVA 11401 Triangle Counting(数学)
- oracle 创建过程、函数中as, is区别
- 一步步学习微软InfoPath2010和SP2010--第一章节--介绍InfoPath2010(8)--使用模板创建表单实例
- 内部排序之堆排序