1.腾讯有bug支持国外网络吗?2.bugly的错误堆栈是什么意思?3、如何提高iOS审核通过率
1,腾讯bugly支持外国网络吗
互联网内容载体的演变,文字——图片/声音——视频——VR/AR——……。从直播1.0秀场时代、2.0游戏直播到现在的全民直播3.0泛生活娱乐时代、国外直播APP、随着VA/AR/MR提出的沉浸式视听体验即将到来,直播4.0时代。
2,bugly的出错堆栈是什么意思
表示您的App使用了第三方SDK并崩溃。您想知道如何解决吗?如果您的App使用了腾讯Bugly,您应该已经获取了错误堆栈。通过堆栈,可以更好的反映是否是第三方SDK的崩溃。您可以对SDK进行反编译,检查错误位置的代码,明确是否存在您传入的参数或使用问题,或者将堆栈反馈给第三方平台进行解决。如果确实严重的话可以暂时不使用。SDK接口
3,如何提升iOS审核的通过率
原文来自:负责iOS应用开发的同学一定都被APPStore的审核机制折磨过。新的一年,又一轮审核即将到来。你准备好了吗?为了帮助开发iOS应用的同学免遭折磨,腾讯Bugly特地邀请了互娱iOS预审团队的同学,通过大量的数据分析,对苹果的审核机制进行了总结,并连夜写出了一份通过改善iOS审核。秘籍与大家分享。经过互动娱乐iOS预审团队近一年的数据监测以及对以往拒绝案例的分析,我们对iOS审核进行了仔细的分析,计算出了最常见的拒绝原因:通过以上案例,结合010-,一般来说,审核工作可以分为三个部分:客户资源检查、申请内容检查、审核资源检查。我们将通过这三个步骤为您揭开iOS审核的真相。第一步:客户端检查客户端检查的主要目的是通过客户端配置检查来确保客户端符合Apple的开发者规范和其他更新的要求,包括存储系统、配置文件、网络连接、图标检查、私有API检查,提交前审查将涵盖这些部分的各个测试点。1、存储系统检查苹果官方对于用户数据存储有严格的规定,所以想要通过审核,首先要了解苹果官方数据存储指南的相关内容:拒绝条款:2.23Apps必须遵循iOS数据存储指南否则他们会被拒绝。拒绝原因描述如下:我们发现您的应用不遵循iOS数据存储指南,即根据应用程序商店审查指南的要求。特别是,我们发现在启动和/或下载内容时,您的应用程序存储5.6MB。要检查您的应用程序存储了多少数据:安装并启动您的应用程序转到设置iCloud存储备份管理存储如有必要,请点击“显示所有应用程序”检查您的应用程序存储iOS数据存储指南表明仅用户使用您的应用程序创建的内容,例如,文档、新文件、编辑等应由iCloud备份。应用程序使用的临时文件应仅存储在/tmp目录中;请记住,当用户退出应用程序时,删除存储在该位置的文件。可以重新创建但必须保留的数据才能保证应用程序的正常运行-或者因为客户希望它可以离线使用-应标记为“不备份”属性。对于NSURL对象,添加NSURLIsExcludedFromBackupKey属性以防止相应文件被备份。对于CFURLRef对象,请使用相应的kCFURLIsExcludedFromBackupKey属性。简评:适用于启动时,Documents下生成了5.6M数据,说明不是用户创建的,用于备份。通过修改应用程序并向文档目录添加非备份属性,它获得了批准。让我们总结一下iOS5之后的存储规范:只有用户生成的文档和其他数据或您的应用程序无法重建的数据才应该存储在/Documents目录中。这些数据文件将通过iCloud自动备份。可重新下载或重新创建的数据应保存在/Library/Caches目录中。
您可以将数据库缓存文件或可下载的内容放入缓存目录中。临时需要的数据应保存在/tmp目录中。尽管这些文件没有备份到iCloud,但请记住在不再需要这些文件时立即将其删除,以免它们继续浪费用户设备上的存储空间。使用“不备份”属性指定不需要iCloud备份的文件。由于这些文件占用设备空间,应用程序需要有一种机制来定期监视和清理这些文件。对策在此示例中,应用程序未启用iCloud备份。如果启用了iCloud备份,可以通过将较大的数据保存到/Library/Caches目录来解决该问题。2.配置文件检查。每个APP都使用Info.plist文件来存储上述元信息,也就是俗称的“属性列表”。IOS使用Info.plist来确定bundle显示的图标、当前应用程序支持打开的文档类型以及其他信息。上面提到,Info.plist本身是一个结构化文本文件,包含一些重要的配置信息。对于这部分的检查,我们通常重点关注以下几个方面:拒绝条款多任务应用程序只能将后台服务用于其预期目的:VoIP、音频播放、位置、任务完成、本地通知等服务用于其预期目的:以下相应服务在后台运行:VoIP、音频播放、地理位置、任务记录、本地提醒等)拒绝案例的拒绝原因说明:我们发现您的应用程序使用后台模式,但不包括需要该模式持续运行的功能。此行为不符合AppStore审核指南。我们注意到您的应用程序在Info.plist的UIBackgroundModes键中声明支持VoIP,但不提供任何IP语音服务。我们认识到VoIP可以提供“保持活动”功能许多应用程序功能想要使用的功能。然而,以这种方式使用VoIP并不是VoIP的预期目的,正如iOS应用程序编程指南中所指出的那样,VoIP的目的是:“互联网协议语音(VoIP)应用程序允许用户使用互联网连接拨打电话设备的蜂窝服务。”添加VoIP功能或从UIBackgroundModes键中删除“VoIP”设置是适当的。简单回顾一下:应用程序为了达到保持后台在线的目的功能,Info.plist中定义的UIBackgroundModes,间接声明了对VoiP功能的支持。实际应用被Apple认为不符合Voip的定义,导致拒绝;UIBackgroundModes(VoIP)和相关代码在批准后已从Info.plist中删除。综上所述,首次提交审核时,应尽可能砍掉有争议的功能,确保尽快上架。3.网络连接大多数App审核服务器都部署在中国,但苹果的iOS审核团队在美国。当他们进行审查时,他们使用美国网络。洲际网络连接将不可避免地发生。由于延迟大、抖动、丢包等网络问题,申请被拒绝。对策:为了提前验证该场景下App后端服务器的响应情况,预审团队使用了美国VPN的方式来模拟苹果审核团队的接入网络环境。
4.图标检查苹果官方对iPhone、iPad、iPod等应用程序的图标有明确的要求:ipa包中必须包含PNG格式的180x180、120x120、76x76、152x152尺寸的图标,并且不同的图标内容大小必须一致。5.私有API检查私有API是指放置在PrivateFrameworks框架中的API。未公开的API是指虽然放置在Frameworks框架中,但苹果官方文档中没有记录使用说明、代码介绍等的API。此前,APPStore下架了256个调用私有API的应用程序,其中包括《苹果应用商店审核指南》和《爸爸去哪儿2》。显然,Apple明确不允许应用程序使用此类API。拒绝条款:2.5使用非公开API的应用程序将被拒绝。被拒绝的情况下,拒绝原因描述如下:我们发现您的应用使用了一个或多个非公开API,不符合应用商店审核指南。不允许使用非公共API,因为如果这些API发生更改,可能会导致糟糕的用户体验。我们在您的应用程序中发现以下非公共API:descriptionWithCalendarFormat:如果您在源代码中定义了与以下名称相同的方法对于上述API,我们建议更改您的方法名称,以便它们不再与Apple的私有API冲突,以避免您的应用程序在将来的提交中被标记。此外,上述一个或多个API可能驻留在您的应用程序附带的静态库中。如果您无权访问库源,您可以使用“strings”或“otool”命令行工具搜索编译的二进制文件。“strings”工具可以输出库调用的方法列表,“otool-ov”将输出Objective-C类结构及其定义的方法。这些技术可以帮助您缩小有问题的代码所在的范围。我们感谢您在代码中针对使用非公共API采取了预防措施,但是,没有办法准确或完整地预测API可能会如何被修改和修改。这些修改可能会产生什么影响。因此,我们不允许在AppStore应用程序中使用非公共API。简要评论:该条款有很多描述文字被拒绝。我们先看一下AppleAPI的分类:1)PublishedAPI:也称为DocumentedAPI。这些都是Apple通过CocoaTouch向全球第三方开发者公开的API。2)UnPublishedAPI:也称为UndocumentedAPI,意思是虽然放在Frameworks框架中,但苹果官方文档中没有记录API的使用说明、代码介绍等。据苹果公司称,未发布的API还不够成熟,可能会发生变化。当它们完全形成时,它们将成为公共API。不过,他们目前并没有向他们提供承诺,这意味着他们可能会在系统版本升级后失效。3)PrivateAPI:指SDK下的PrivateFrameWorks框架下的API,实际存在于CocoaTouch中。私有API是Apple明确规定不能使用的API。当然,越狱渠道就没有这样的限制,比如91渠道。对于被拒绝文本中的非公开API,后两类都被计算在内。
如果源代码恰好定义了与非公开API同名的方法,也会导致拒绝;更常见的是,使用的第三方静态库包含非公共API,可以通过strings或otool命令找到。相关API:stringsLibName.a|descriptionWithCalendarFormat或字符串AppName.app|descriptionWithCalendarFormat其中.app是编译后Build目录中的文件。使用otoolovLibName.a输出Object-C类结构和定义的方法。使用自动工具扫描来实施对策。实现原理如下:1.获取未发布的库:基于iOSSDK,dump完整库。完整库减去私有库和公共库后,即为未发布的库;2、获取头文件方法和成员列表:使用Otool等工具反编译解析ipa可执行文件,获取头文件中方法和成员列表;3.与未发布的库和私有库匹配:将列表中的方法和成员分别与私有库和未发布的库进行匹配。如果没有成功匹配,则扫描通过。如果匹配成功,则扫描不通过。6、硬件和版本的差异iOS自2007年作为手机系统发布以来,陆续应用于iPodtouch、iPad、AppleTV等产品,并更新了多个版本。苹果的硬件不断推出新产品,外部市场上已经有很多产品硬件版本。面对如此多的硬件和系统版本,如何保证评审版本的质量一直困扰着测试和产品团队。大问题。被拒案例对策1、注意与苹果相同的验收版本:推测苹果审核团队的设备验收选择也会遵循以下原则:接受两个最新的系统版本和两个硬件版本。确保游戏在市场占有率最高的两个系统版本和硬件配置上都能流畅运行。2、关注Beta版本:苹果在新版本上线之前会发布Beta版本进行少量测试。这时候就需要跟进测试版,提前发现问题,避免被突然的版本发布打得措手不及。总结:1、其实对存储系统的考察是一套规范,遵循着同一系列的理念,比如合理利用用户本地存储空间和苹果iCloud服务器存储来节省空间;2、Info.plist文件的检查实际上是xml文件的Key-value检查,值检查关系是并行的。通过检查存储文件和plist用例,基本上可以避免因此类原因而被拒绝;3.使用自动化工具扫描私有API是否被调用。除了扫描评测版本外,苹果还会不定期扫描在线版本。所以不要考虑通过云控制开关或代码分发来绕过私有API。还需要注意的是,如果你不调用私有API,而是与私有API函数同名,苹果会认为这是违反私有API规定的。