首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS_App性能优化(Energy Efficiency)指南整理

必须使用计时器时: 指定适当的超时时间 不再需要时Invalidate掉 设置计时器触发时差tolerances 4、最小话 I/O 最小化数据写入 避免过于频繁的访问内存 尽可能顺序的读取和写入 从文件中读取和写入更大的数据块...不再需要时停止方向更改通知,如:DidLoad时开始、DidDisappear时结束 要求更少的连续运动更新:CMMotionManager设置Interval详情见文档 六、优化通知 尽可能使用本地通知...服务器推送支持两种优先级:立即发送、延迟发送 七、蓝牙最佳实现 仅在需要时扫描设备 减少重复设备发现的处理:避免将scan方法的参数options设置为CBCentralManagerScanOptionAllowDuplicatesKey...: 不在需要设备时断开连接:cancelPeripheralConnection: 八、Watch最佳做法 减少watch和iPhone之间的交互:使用Watch Connectivity框架来优化数据传输...I/O过多or重复 高开销通信,如:带有小数据包和缓冲区的网络活动 防止设备睡眠 2、使用Xcode衡量能源影响 调试仪表:Xcode的导航栏上选择View->Navigators->Show Debug

1.4K30

那些年,我们一起走过的 iOS 推送的坑

坑:问题回溯 具体案例如下—— 问题描述: 某 iOS app在接入信鸽SDK 集成推送功能时,遇到在iOS 10 以下版本可以正常推送,但是在iOS 10的版本中,收不到推送消息。...具体现象: 然后将iOS10的设备连接到Xcode,在Xcode中打开连接的设备的控制台,启动某游戏App,在输出的log中,发现了下面输出: Apr 21 17:53:53 uwei SpringBoard...在iOS 10.3.1的设备上,从操作同iOS9的一致,后台显示没有绑定到device token。反复下载重试,结果一样。...,系统会立即返回给App已经存在的token,直接执行第四步 当需要生成一个新的token时,APNs会使用在设备中的证书来创建,使用一个token key来加密token,然后返回到设备 系统通过application...token key,以校验请求的有效性,以及推送的目标设备,如果APNs判断请求是合法的,之后就会向指定设备发送通知消息。

4.4K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于JPush(极光推送)那些事

    红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。...蓝色部分是 JPush 应用内推送部分,即 App 启动时,内嵌的 JPush SDK 会开启长连接到 JPush Server,从而 JPush Server 可以推送消息到 App 里 APNs 通知...APNs 通知:是指通过向 Apple APNs 服务器发送通知,到达 iOS 设备,由 iOS 系统提供展现的推送。...获取 APNs 推送内容 应用内消息 ---- 应用内消息:JPush iOS SDK 提供的应用内消息功能,在 App 在前台时能够收到推送下来的消息。App 可使用此功能来做消息下发动作。...查询推送 SetLocalNotification: 地理推送 clearAllLocalNotification:用于清除所有注册的通知 花了一周时间学习极光推送,虽然时间有点长,但是对于我自己来说很不错了

    1.5K10

    iOS集成极光推送iOS集成极光推送

    我的情况是这样,代码里设置的是生产环境,由于公司要求使用 alias 来区分需要推送通知的用户,再使用 xcode 测试的时候,使用极光推送控制台向指定 alias 推送通知,在极光推送控制台设置 iOS...的环境为生产环境,但是始终收不到推送的通知,后改为开发环境,马上就可以收到推送的通知,当时感到很奇怪,为什么开发环境能收到通知,而生产环境收不到通知呢?...以至于后来 app 发布到 app store 之后,还是不能收到后台推送的通知。 解决办法如下: 按照我上面的方式,正确配置开发环境证书和生产环境证书。...4.如果推送使用的是自己的后台,需要告知,后台设置 iOS 的环境为生产环境,才能收到后台推送的通知,否则是收不到通知的,被这个坑了好长时间。。。?...以上是我在配置极光推送的时候遇到的一些问题,记录下来,希望遇到类似问题的小伙伴,可以帮助你解决遇到的问题。? 至此极光推送告一段落。

    2.9K21

    Core Data with CloudKit (一) —— 基础

    因此,当我们保存数据到CloudKit数据库时,不仅需要指明数据库(私有、公有、共享)类型,同时也需要标明具体的zoneID(当保存到_defaultZone时无需标记)。...这就是当我们在Xcode Target的Signing&Capabilities中添加上CloudKit功能时,会Xcode自动添加Remote Notification的原因。...在实际使用中,需要通过CKSubscription的三个子类完成不同的订阅任务:CKQuerySubscription,当某个CKRecord满足设定的NSPercidate时推送Notification...对于iCloud服务器推送的远程通知,应用程序需要在Application Delegate中做出响应。...分发远程通知•数据导入(将远程数据同步到本地)1.NSPersistentCloudKitContainer创建的后台任务响应云端的静默推送2.向云端发送刷新操作要求并附上上次操作的令牌3.云端根据每个设备的令牌

    1K30

    给iOS模拟器推送远程通知

    苹果刚刚发布了具有大量功能的Xcode 11.4 beta。值得注意的功能之一是在模拟器中模拟远程推送通知,这意味着现在可以在模拟器中触发远程通知。 ?...Xcode 11.4 beta 1、前置要求: Xcode 11.4 beta或更高版本。 app 的Bundle ID。 当前使用的模拟器的设备标识符。 需要推送的负载(payload)。...2、获取模拟器的设备标识符 Window -> Devices and Simulator -> 选择当前使用的模拟器 -> 复制对应的ID 或者使用快捷键 Shift + Command + 2...-> 选择当前使用的模拟器 -> 复制对应的ID 3、生成推送通知负载(payload) 推送通知负载为标准Apple格式: {"aps":{"alert":"这是通知的内容","badge":1,"sound...4、在模拟器中触发通知 使用Xcode将app在模拟器中运行 打开终端 cd到推送负载(payload.apns)文件的所在文件夹 执行命令 xcrun simctl push <device-identifier

    2.6K30

    iOS不想上架?

    我正在使用Xcode11.1.点击此处找到源答案!这篇关于如何从Mac OS X Catalina将IPA文件上传到App Store的文章就介绍到这了,希望我们推荐的答案对大家有所帮助。​...看意思就很清楚,前者用于提交你的APP到APPstore时使用,而后者用于安装你的应用到有限数量的已注册的设备上。而本文要讲的就是第二种了。...选择想要安装的测试设备:然后取个名字,以示区分。然后下载描述文件。找到下载文件,双击安装到Xcode ,双击时看到闪一下就说明安装成功了。如果Xcode 是打开的,界面会跳转到Xcode界面。...签名打包就是在编译的过程中加入证书签名,那肯定是需要去Xcode中配置的,目前网上有方法能实现企业级证书打包签名不需要在编译时,而在编译之后。...Profile按照Debug时使用开发证书生成的描述文件,而Release使用发布证书生成的描述文件,只是当你选择Distribution时,一定要选测Ad Hoc.当然,Xcode 9 是可以选择自动配置描述文件的

    44520

    面试软件测试APP岗位,这些题目你不可不知!

    一、测试准备 了解推送通知类型: 文本通知 声音通知 图像通知 其他多媒体通知 准备测试环境: 测试设备:iOS或Android手机等 测试账号 安装测试版本的应用程序,以便使用开发者工具模拟推送通知...使用开发者工具或第三方工具: Xcode(iOS)、Android Studio(Android)等开发者工具可以模拟推送通知 第三方工具如Postman、Pusher、Firebase Cloud...Messaging (FCM)等也可以用于发送测试通知 二、测试内容 基本功能测试: 检查Push消息是否按照指定的业务规则发送 检查不接收推送消息时,用户是否不再接收到Push消息 当Push消息是针对登录用户时...一、收集日志信息 查看本地日志: 如果App在debug版本中已经配置了错误日志保存功能,可以直接从设备的SD卡或指定目录中获取错误日志文件。...网络状态切换测试: 测试在不同网络状态之间切换时(如WiFi切换到4G、4G切换到无网络等)APP的表现。 关注页面显示与交互是否异常,以及同步数据过程中断开网络连接时APP是否出现崩溃等异常情况。

    7410

    推送-推送原理性说明

    ),当Provider推送一条通知的时候,这条通知并不是直接推送给了我们的设备,而是先推送到苹果的APNs服务器上面,而苹果的APNs服务器再通过与设备建立的长连接进而把通知推送到我们的设备上(参考图1...而当设备处于非联网状态的时候,APNs服务器会保留Provider所推送的最后一条通知,当设备转换为连网状态时,APNs则把其保留的最后一条通知推送给我们的设备;如果设备长时间处于非联网状态下,那么APNs...但是收到推送时,是无法在 App 的代码中获取到通知内容的。因为沙盒机制,此时 App 的任何代码都不可能被执行。...推送从 服务端 --> App 代码 的过程 使用你们公司或第三方的服务端向 APNs 发送推送请求(包含 推送内容+App描述+手机描述 ) APNs 接收并验证推送请求 APNs 利用网络搜索并定位指定设备...来实现角标的固定、增加、减少 sound = default;//推送声音,默认系统三全音,如需使用自己的声音,需要将声音文件拖拽&拷贝至 Xcode 工程目录任意位置,并在推送时指定其文件名

    3.8K20

    Xcode 8新功能介绍

    类名提示 从Xcode8beta1就支持类名提示了,所以Xcode8正式版也支持类名提示,开发更加快捷了。...Swift只能向上兼容,不能向下兼容(也就是说如果你用的是swift2.0写的代码在3.0是会报错的),这也是我朋友不建议我直接学swift,更新太快了。 ?...下面是一些常用的字段,如果有缺少的麻烦各位评论区补充一下。 ? 推送通知 苹果的推送在之前iOS8和iOS9的时候就发生过大的更新,推送功能越来越强大。...在iOS10之后苹果推出了UserNotifications框架,可以通过这个框架更好的控制推送通知,可以更新、修改锁屏页面的推送消息,可以添加图片等功能。...但是在用Xcode8打包后,并且不对代码进行修改的情况下,会发现打包后苹果发来了一封邮件。这封邮件大概意思是如果需要使用推送通知,需要对代码做修改,否则将不能使用推送通知。

    1.7K50

    推送-远程通知推送教程

    前言 本文是一篇转载文章,在这一篇实用的文章里,你可以按照上面的步骤实现不借助第三方和服务器端,自己给自己的设备发推送通知。真的好棒,从中你可以领悟一些推送的核心用法。...就像你洗好的衣服总要人去叠吧。 幸好,推送通知功能可以让开发者与用户建立连接并进行简单的交互,即使用户当前并没有使用APP! 从推送通知功能第一次问世到现在已经变得越来越强大。...在开始推送测试之前你需要具备以下条件: 一台iOS设备。远程推送不能在摸拟器上运行,所以你需要一台真机。 一个开发者帐号。从Xcode7开始,在真机上测试APP不再需要加入开发者计划。...deviceToken的值就是这个过程得到的结果。它是由APNs服务器提供用来标识当前设备当前App。当发送时推送通知的时候,App用deviceToken作为“地址”传递到当前设备。...当发送通知时APNS会为每一个开启了推送通知的设备保持一个高质量服务(Quality of Service)队列。这个队列的大小是1,所以如果你同时发送多个通知,最后一个通知才会被发送。

    4K30

    AppleWatch开发入门七——watchOS中通知的应用

    本地通知多用于计时类通知,远程的又称推送,多用于一些提示动态的提示信息。...这个也好理解,静态界面是我们在写程序时就定义好的界面,在通知发送到watch上时,界面会自动匹配通知内容进行显示。动态的界面则是当收到通知时,会先执行我们相应的配置代码,之后在进行通知界面的展示。...最下面是一些交互按钮,其名称等配置信息在推送的文件中定义。 三、如何在模拟器上模拟远程推送         在watchOS模拟器上,Xcode为我们准备好了一种可以模拟测试推送的方式。...如果我们创建项目时,选择了NotifacationScene,则Xcode会默认为我们创建一个apns文件: ? 这个文件就是模拟推送的相关配置文件,如果没有,我们也可以手动来创建: ?...之后运行,你会发现效果并没有什么改变,那是因为系统默认会从静态界面加载推送界面,我们需要在NotifacationController代码中做一些操作: //在NotificationController

    1.5K20

    iOS 推送手机消息背后的技术

    2、XCode配置 在使用消息推送相关功能之前,我们首先需要准备支持推送功能的证书,个人开发者可以参考腾讯云的TPNS文档,在苹果开发者中心中配置和导出推送证书。...此外,还需要在XCode的工程配置Signing & Capabilities配置中增加消息推送权限,在操作完成后Xcode会自动生成或更新工程的entitlements文件,增加如图所示的APS Environment..." message:@"请在设备的\"设置-App-通知\"选项中,允许通知" preferredStyle:UIAlertControllerStyleAlert];             UIAlertAction...一个设备可能登录过多个用户,一个用户也可能在多个设备中登录过,当我们需要给不同用户推送不同的消息时,除了deviceToken之外,我们还需要保存用户的openid与deviceToken的映射关系。...我们可以在用户登录成功后的时机更新openid和deviceToken的映射关系,用户退出后取消映射关系,只保存用户最后登录设备的deviceToken,避免一个设备收到多个重复通知和一个用户在不同设备收到多个通知等情况

    4K103

    iOS 远程推送概念相关准备工作代码实现:(前提:确保bundleID和网站的配置一样)AppDelegate中的全部代码

    顾名思义,就是从远程服务器推送给客户端的通知(需要联网) 远程推送服务,又称为APNs(Apple Push Notification Services) 2.为什么需要远程推送通知?...传统获取数据的局限性:只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容 远程推送通知可以解决以上问题:不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知...只要联网了,就一直建立连接 长连接的作用: 时间校准 系统升级 查找我的iPhone 长连接的好处: 数据传输速度快 数据保持最新状态 4.远程推送原理 客户端发送设备的UDID...但是在Xcode7中这个选项打开和关闭的Token值不一样!打开的时候才是真正的Token值! 注意在Xcode 7 之后必须打开推送的选项,否则可能会导致请求的token不一样! ?...远程推送和本地推送一样,都需要在两个地方做代码的处理: 接受到通知时调用的代理方法中(前台和后台) 启动时的 didFinishLaunchingWithOptions方法中(退出状态),用 launchOptions

    1.9K100

    搞定iOS推送,看这一篇就够了 顶

    一次偶然的机会,公司的项目要用到推送,我自己本来就很懒,不愿意去弄整套APNS的流程,刚好之前跟朋友聊起过他们的产品中集成了个推的Android推送,说是体验还可以,那这次我就试一下他们的iOS推送。...iOS 10及以后版本,处理APNs通知点击事件 // iOS 10: 点击通知进入App时触发,在该方法内统计有效用户点击数 - (void)userNotificationCenter:(UNUserNotificationCenter...进入后,我有点懵逼,因为之前没有了解过个推SDK的逻辑,在询问了个推技术支持后,技术支持告诉我怎么在个推平台上面去推,也是自己太粗心了,人家进去第一句话就写的很清楚,推送通知目前仅支持安卓用户,iOS请使用透传消息...棒棒哒~~~ 但是,之前的一个老项目说也要集成推送,我透,老项目要用XCode集成,这对于我这种懒人来说,简直是一种折磨啊,哎,折磨归折磨,该搞还要搞。...询问个推技术支持,个推技术支持说,让我先运行主target,然后再运行通知扩展,运行通知扩展的时候会让我们去找主targetAPP,选择主target,然后再推送就会有了,嗯,想了下,这个应该是XCode

    1.8K41

    iOS 程序从开发完到上 AppStore 那点事儿

    根证书一般不需要自己去申请,iOS以及Mac OS X系统在安装Xcode时将自动安装。...此外,推送的开发环境和生产环境的对应的推送环境是不一样的,需要对应苹果后台测试推送的地址环境和生产推送的地址环境 ,如果对应关系搞错都会收不到推送。...Provisioning Profile把这些需要验证的信息全部打包在一起,方便我们在调试和发布程序打包时使用。...: Provisioning Profile文件会在应用程序打包时嵌入到.ipa包里,进而安装到iOS设备上,是设备的信任凭证,证明其中包含的设备(iPhone,ipad)是个合法的测试设备。...苹果的签名:由于Provisioning Profile文件是苹果签名的,我们必须从开发者中心申请,申请后也不能再随意篡改(比如添加别的设备)。

    5.4K00

    Travis CI 教程:入门

    Travis 现在正在关注您对 MovingHelper 存储库的更改。 推送到 GitHub 使用新创建的 GitHub 仓库返回选项卡。从 “......remote ,而不是我的。...一旦您的构建完成,您将在 GitHub 页面上看到类似的内容: ? github_travis_setup_fail 哎呀!你已经添加了像你应该的 .travis.yml 文件,为什么它不起作用?...当您从测试人员或用户那里获得错误报告时,最好编写一个测试来说明错误并显示错误。这样,当测试运行时,您可以确信该错误没有神奇地再次出现 - 通常称为回归。 让我们确保当您在列表中标记任务时,应用会记住。...如果你有必须在设备上运行的测试,Xcode Bots 是一个更好的选择,因为它可以在模拟器和真实设备上运行 - 尽管这有责任管理配置和签名。 想知道更多?

    5.1K21

    你的 App 为何在 iPhone 12 上显示异常,而别人的不会?

    作者 | hite和落雁 来源 | 简书,点击阅读原文查看作者更多文章 背景 10月14日 iPhone 12 系列正式发布,当我观看直播看到介绍 iPhone 12 系列的分辨率后,我注意到这些分辨率是全新的...,我立即在群里吐槽——又需要适配一波了。...巡查App Store 的 App 在 iPhone 12 的表现 当我拿到蓝色 iPhone 12 的第一件事情就是看看各个 App 在适配方面有哪些异常表现,大概看了10 几个 App,除了 斗鱼,...苹果 App 的向后兼容规则 当 App 运行在自己不认识的新设备上时,系统会把新设备当做上一代的设备来使用。...11, *)) { return [UIApplication sharedApplication].keyWindow.safeAreaInsets.top;// 其实也有隐患,如果是从推送打开

    2.4K30

    xcode通过网络进行真机调试

    在之前我就用过网络链接调试,有一个小遗憾就是关闭一次之后,过了一段时间再用,总是连不上,让人十分的费解,这次把几个小问题厘清楚了,就可以开心的开发了。...via network ) 我们对他进行勾选,这样xcode就会打开对这个设备进行网络调试的功能。...打开之后,我们还需要进行一步操作,就是对iPhone进行 IP地址设置,即 告诉xcode 设备断线后,网络地址是什么。 设置IP地址之前需要断开数据线。...PS: 如果设备的IP发生变化的话,再次连接的时候就可能出现,xcode无法连接成功的问题。这个时候就需要修改IP地址再试。 所以有了第二个步骤。...当我们开启了ARP绑定之后,我们的设备连接到wifi上的时候 内网ip地址总是不变的,这样我们就不会出现过了一段时间,xcode无法通过网络连接设备的问题。

    2.2K30

    iOS15适配本地通知功能及语音播报探索

    Xcode 13 需在 macOS 11.3 及以上版本运行,支持 iOS 9,tvOS 9,watchOS 2 及以上系统设备调试; 也正式支持了 Vim。...Xcode 13 Release Notes: developer.apple.com/documentati… I 消息推送 语音播报在iOS15之前的实现思路: 将你想要播放的音频拆分,放到主程序的包里...利用Service Extension,在收到服务端的推送的时候,按照顺序发送本地通知 本地通知的sound就是对应的音频拆分 将收到的推送的sound设置为nil,避免打断本地推送的语音播报。...利用Service Extension,在收到服务端的推送的时候,按照顺序发送本地通知 本地通知的sound就是对应的音频拆分 问题:iOS12.1之后利用本地推送实现消息的语音播报,在iOS15 没有声音...}} 时效性通知开发者无法直接使用,需要配置对应的权限: a. xcode 开启对应能力 b.

    3.5K30
    领券