打包生成的apk、ipa应用,在上传安卓各大分发市场和Appstore苹果商店中,可能遇到各种被拒问题,可以参考以下归纳内容查看常见的FAQ及解决方法。
1)、应用宝、豌豆荚、360市场、PP助手中营业执照扫描件、公司名称等相关信息是必要的,而无需税务登记证和法人等信息(PP需要法人姓名);
2)、百度、小米、华为、魅族除了公司营业执照这个硬标准外,还需要提供税务登记证,百度和魅族市场还需要企业法人的信息和证件;
3)、应用宝、豌豆荚、360提交了企业开发者信息后,直接开始上传应用,而PP助手则需要审核1-2天;
4)、应用宝、豌豆荚、360市场上传应用是需要提供简介、关键词、一句话简介(应用宝15个字,豌豆荚8个字)、应用截图(豌豆荚明确禁止传iOS截图),apk包
5)、360市场上传应用图标的时候不允许图标的圆角外部有颜色(应为透明才行)
6)、360市场上传应用截图的时候不允许在通知栏中存在其他应用的小图标;
7)、应用宝上传企业开发者的营业执照时,必须使用新版营业执照;
8)、应用宝和360都需要apk加固,否则会提示不安全,可能无法通过审核;
9)、豌豆荚不允许应用截图上传iOS的;
10)、如果需要帐号才可以进入应用,则必须提供相应的测试帐号;
11)、360有专门的上传帐号的位置,应用宝没有;问了应用宝客服,客服如下解释:
测试帐号可以填写的应用简介的地方(备注说明:请审核完成后删除测试帐号),如果您不希望用户看到测试帐号,可以以截图的形式上传到后台的版权证明,再提交审核即可。
12)、PP助手要求必须上传版权声明(软件著作权或者手写担责声明)。
13)、应用市场都是根据apk内的versionCode区分更新版本的,所以发布新版本是不要只修改一个versionName就完事了,要不然上传到应用市场之后,旧版本不会在应用市场中提示更新。企业版修改versioncode:参考文档对照表里相关部分修改;大众版修改versioncode请联系社区管理员或QQ群管理员。
温馨提示:
首先,建议使用最新的引擎版本(许多常见错误在最新的引擎得以解决和修复)打包,并且QA测试通过后重新上传可以解决你遇到的问题;
其次,再参考以下对照表做出的解释进行修改;
( 以上都无法解决,请及时上报官方,附上被拒的英文原文,客服渠道或开发者社区反馈。:-)
苹果错误号 | 苹果错误描述 | 问题位置 | 修改方法 |
---|---|---|---|
ERROR ITMS-90049 | "This bundle is invalid. The bundle identifier contains disallowed characters. [See the section of the Application Programming Guide entitled The Application Bundle.]" | uexQQ的bundle中的plist造成问题 | 可能您是使用的是更低版本插件,尝试直接删除plist文件重新压缩再使用(下载并解压插件包找到bundle文件夹里的info.plist文件)注:最新的插件不存在这个文件,不需要删 |
RROR ITMS-90062 | This bundle is invalid. The value for key CFBundleShortVersionString [100] in the Info.plist file must contain a higher version than that of the previously approved version [100]. | ipa包上传时的开发版本不对,版本低 | 解决:每次上传ipa包要比上一次上传成功的版本高 |
ERROR ITMS-90529 | "Invalid package.Applications built with sdk9.0 or later must be packaged ad proper IPA files | xcode6升级xcode7带来问题 | 升级之前需上传的是.zip文件,升级到xcode7之后,现在需要上传 .ipa文件:将ipa用ZIP解压工具解开,新建一个空目录“Payload”,将解开后的目录放入“Payload”中 ,然后将Payload打包成zip,再修改后缀为ipa(注意:如果使用的打包环境是最新的打包服务器3.0或4.0版本生成的包带有Payload文件夹,直接是ipa上传即可 ) |
ERROR ITMS-90071 | This bundle is invalid. The CodeResources file must be a *symbolic link to _CodeSignature/CodeResources. Make certain that the bundle is on a locally-mounted volume [not a remote SMB volume], and be certain to use the Mac OS X Finder to compress it | 上传的ipa包的内部结构不对 | 修改为正确的结构(参考90529手动修改方式);AppCan一般解决方式:用最新的打包服务器生成的ipa带有Payload文件夹,直接是ipa上传即可 |
ERROR ITMS-90072 | The IPA is invalid. It does not include a Payload directory | xcode上传,xcode版本不符合 | 用低一个版本的xcode上传 |
ERROR ITMS-90474 | "Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,UIInterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight'. Found '$availableValues' in bundle 'com.hycm.apptest'." | 使用的引擎版本较低 | 一般解决方式:下载最新的引擎打包可以解决。 大众版:直接选择最新引擎即可;企业版:获取最新引擎手动更新. |
ERROR ITMS-90475 | Invalid Bundle. iPad Multitasking support requires launch story board in bundle 'com.hycm.apptest'. | 使用的引擎版本可能较低(报错同90474) | 一般解决方式:下载最新的引擎打包可以解决。(其他方式:添加这个键值和属性,截图同上文90474) |
ERROR ITMS-90534 | "Invalid Toolchain. New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, and iOS 8 SDK or later. iOS 9 apps for internal TestFlight testers must be built with the latest seed of the iOS SDK and uploaded with the latest seed of Xcode." | 上传要求使用最新的正式版本 | AppCan应用一般解决方式:使用99美元申请的发布版证书在正式打包服务器打包即可,基本不会出以上错误。 (其他方式:将后台打包的工程修改为正式版本,不用bate版本。) |
ERROR ITMS-90535 | "Unexpected CFBundleExecutable Key. The bundle at 'Payload/AppCanPlugin.app/uexEMM.bundle' does not contain a bundle executable. If this bundle intentionally does not contain an executable, consider removing the CFBundleExecutable key from its Info.plist and using a CFBundlePackageType of BNDL. If this bundle is part of a third-party framework, consider contacting the developer of the framework for an update to address this issue." | uexEMM的bundle文件中的plist文件 | 去掉这个键值和属性解决这个问题 如遇此类错误,一般解决方式:同下一条文解决 |
ERROR ITMS-90535 | "Unexpected CFBundleExecutable Key. | bundle里面的info.plist问题 | 删除CFBundleExecutable键值;一般解决方式:手动把插件包bundle文件夹里的Info.plist删掉试试。若ERROR信息里发现TencentOpenApi、uexChatKeyboard等等关键报错信息,应该是所用的插件问题,请下载或选择官方最新插件版本打包尝试解决 |
App的Info.plist不得包含UIRequiredDeviceAapablites键的值,该键会阻止此App在任何IOS设备上打开,有关更多信息。请参阅了解UIRequiredDeviceCapabilities键 | 在itunesconnect网站上提示 | 在引擎包里面info.plist键值Required device capabilities的value值去掉armv7。一般解决方式:使用最新版本引擎 | |
3.1 - Apps or metadata that mentions the name of any other mobile platform will be rejected | 标题栏截图不对 | 标题栏的截图不符合ios标准,修改即可 | |
ERROR 1TMS-90523 | 【90523】由于UIFileSharingEnabled为true导致APP上架被拒的解决方案 http://bbs.appcan.cn/forum.php?mod=viewthread&tid=27975 (出处: AppCan交流社区) | 勾选了uexLog这个插件 | 此插件为调试用的插件,正式使用时并不需要,请不要勾选 |
ERRORITMS-90171 | Invalid Bundle Structure - The binary file 'AppCanPlugin.app/Frameworks/AppCanKitSwift.framework/AppCanKitSwift' is not permitted.Your app can't contain standalone executables or librarles,other than the CFBundleExecutable of supported bundles | 更新到最新的Xcode (8.1)以及ApplicationLoader (3.1)试试 | |
ITMS-90168 | The Binary you uploaded was invalid | 补充说明: 1. 安装Xcode8.12. 升级ApplicationLoader至3.63. 在命令行环境安装xcode-select、xcodebuild及其相关的依赖3个方法任选其一安装Xcode只是最简单的方法而已 | 尝试升级Xcode和ApplicationLoader到最新版本解决,在AppStore中升级或安装最新的Xcode(目前最新版本为8.1) |
ERROR ITMS-90056 | this bundle Payload/AppCanPlugin.app/Frameworks/AppCanEngine.framework is invalid.The info.plist file is missing the required key:CFBundleVersion. | 部分旧引擎的配置已经不符合当前Apple的审核规则了 | 请用最新引擎打包解决 |
ERROR ITMS-90158 | "The following URL schemes found in your app are not in the correct format: [QQ060AFEBA]. URL schemes need to begin with an alphabetic character, and be comprised of alphanumeric characters, the period, the hyphen or the plus sign only. | urlScheme 的格式不对 | 请认真阅读application loader的错误信息具体要求,要求和Apple对CFBundleURLSchemes字段要求一致,必须符合一定的格式,最基本的要以字符开头,字母+数字注意小写。 |
被拒英文原文 | ApplicationLoader反馈中有1条或多条类似如下字段(其中标红的key可能会变化):This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSBluetoothPeripheralUsageDescription key with a string value explaining to the user how the app uses this data. | 隐私权限未配置 | 根据标红的key,在文档中找到缺失的隐私权限,在config.xml中进行相应的配置,比如上如字段中标红的key为: NSBluetoothPeripheralUsageDescription 对应为蓝牙权限 |
被拒英文原文 | ApplicationLoader反馈中有如下字段:Missing Push Notification Entitlement - Your app includes an API for Apple's Push Notification service, but the aps-environment entitlement is missing from the app's signature. To resolve this, make sure your App ID is enabled for push notification in the Provisioning Portal. Then, sign your app with a distribution provisioning profile that includes the aps-environment entitlement. | APNs未配置 | 何时需要配置APNs:config.xml里需要配置APNs 当且仅当 在苹果开发者中心中的appid里开启了apns功能如何配置:见文档 末尾如果还是报错:可能是你的mobileprovision文件过旧,去开发者中心重新下载一个再打包试试 |