iOS app上架是很坑爹的,在第一次上架过程中,博主一下遇到了N多的报错,当时博主心里是崩溃的。在崩溃过后,博主开始了漫长的谷歌生活,最后艰辛的上架了,现在博主为了给广大的iOS开发者提供一些问题的解决方法,希望能帮助大家,加快大家的工作效率,主要是可以不用加班,说多了都是泪。。。
问题一:
这个问题就是你Xcode上设置的bundleID与证书上的bundleID不一致导致的,把他们修改一样都好了。
问题二:
这个问题有很多的答案,我只提供一个大多数能解决方法
1.在钥匙串访问>钥匙串修改Apple Worldwide Developer Relations Certification Authority证书:右键显示简介调整"总是信任" 为 "系统默认"。
2.删除已过期的Apple Worldwide Developer Relations Certification Authority证书,并下载新的Apple Worldwide Developer Relations Certification Authority证书,双击安装。
3.删除相关的 provisioning profiles,然后重新添加。(Xcode中的证书配置文件路径:~/Library/MobileDevice/Provisioning Profiles)
问题三:
Getting ITMS-4238 “Redundant Binary Upload” error no mater what I change the build version or app version tobe higher
这个是已经上传了同一个版本的APP了,不能再继续上传,如果需要重新上传,就需要改版本号。
问题四:
iPhone App Submitting - Error ITMS-90171 Invalid Bundle Structure Can't Contain Standalone Executables
这个是引入的第三方framework所带的资源包有问题,有可能是bundle里info.plist使用到的资源在bundle里没有
问题五:
ERROR ITMS-90474: "Bundle Invalid. iPad Multitasking support requires there orientations: 'UIInterfaceOrientationPortrait,UIIinterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. Found 'UIInterfaceOrientationPortrait' in bundle.
在 TARGETS > iOS > General > Deployment Info 勾选 “Requires full screen”
问题六:
ERROR ITMS-90542: "Invalid CFBundleSupportedPlatforms value. The key 'CFBundleSupportedPlatforms' in the Info.plist file in bundle 'Payload/PgapIos.app/GoogleMaps.bundle' contains an invalid value '( "iPhoneSimulator" )'.
这个是编译bundle的时候,是用模拟器来编译的,解决方法是:在编译bundle的时候选择真机
ERROR ITMS-90086: Missing 64-bit support. Submission fails with error on submit app on iTunes
在 build settings 中的Valid Architectures, 添加arm64让APP支持 64位的机器。XCode7不会有这种情况
问题七:
ERROR ITMS-90535 Unexpected CFBundleExecutable
在我这里是因为我的bundle里是生成了一个可执行文件,从新做一个bundle文件,注意bundle项目Build Settings 中的Mach-o Type 要选择 Static Library。如果是第三方的就把bundle里info.plist的 Executable file字段删除掉(我自己的bundle如果删除,上传的时候会提示bundle是损坏的),然后重新打包。
问题八:
ERROR ITMS-90034: Missing or invalid signature
这个其实还是因为bundle里有个可执行文件,在打包的时候没能进行签名导致的。
问题九:
ERROR ITMS-90096:"You binary is not optimized for iPhone 5....".
在工程里的Images.xcassets添加并设置LaunchImage对解决ERROR ITMS-90096根本不会起到任何作用,需要单独添加针对iPhone 5的载入图片。关键点有三项:1、图片的名称必须叫Default-568.png。2、必须把图片放在工程的根目录下。3、图片尺寸必须是320*568。
然后在plist中添加
问题十:
使用Application Loader 上传ipa出现的错误提示“application loader上传出错 生成的API分析文件太大”解决方法:解决办法就是修改Xcode里面的Build
问题十一:
在Archive项目 时,出现了“Your build settings specify a provisioning profile with the UUID “487F3EAC-05FB-4A2A-9EA0-31F1F35760EB”, however, no such provisioning profile was found”的出错。一直提示指定UUID的provisioning profile找不到,感觉很奇怪。明明自己的provisioning profile是刚下载好的,并且全是新安装。于是通过谷歌找到了答案。
参考地址:http://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof
这里所说的就是要通过修改你的项目的.xcodeproj文件来解决上述的错误。
1.找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容)。
2.打开后找到project.pbxproj文件,用文本编辑器打开。其实就是右键,点击open就好了。
3.打开这个文件后,按command+F,在这个文件中查找“PROVISIONING_PROFILE",找到和这个“
PROVISIONING_PROFILE="487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";"PROVISIONING_PROFILE[sdk=iphoneos*]"="487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";”类似的都删除。(注意:只删除双引号里面的487F3EAC-05FB-4A2A-9EA0-31F1F35760EB就可以了)
问题十二:
在要上传的包上右键[Show in Finder]然后依次展开[xxxx.xcarchive][Products][Applications][xxxx] // xxxx–项目名
然后搜索所有的info.plist
找到是哪个plist含有[CFBundleSupportedPlatforms]属性,看是那个三方库包含的这个plist,然后到Xcode里面删除该属性。
问题十三:
这个原因也有多种,一个出现比较多的原因就是,你之前安装的描述文件没有包含推送证书。重新登录到开发者中心,查看描述文件。
你会发现Status变成的状态是黄色的(正常是绿色),如下图。
点击Edit,然后选择Cenerate就行了。最后把描述文件下载,安装。