![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios
麦峰强1
这个作者很懒,什么都没留下…
展开
-
【iOS】Teach you to build a mobile APM monitoring system
Keywords: Android iOS network xcode SDKAPM is the abbreviation of Application Performance Monitoring, which monitors and manages the performance and availability of software applications. Application performance management is very important for the continu原创 2022-07-11 11:02:17 · 1296 阅读 · 0 评论 -
oc语言设计杂想
1.是什么触发了smalltalk的创作初衷?为啥会想到需要使用自省功能,c++出现的比较早所以并没有采纳smalltalk的理念原创 2021-07-01 22:03:19 · 111 阅读 · 1 评论 -
oc中该使用lock还是gcd/syncronize
1. gcd简单轻便对于数据级别的加密无法实现2.lock有以下问题锁的粒度不好控制/容易死锁优势:可以数据级别加锁3.syncronize粒度过大,只能针对对象级别加锁原创 2021-03-16 10:56:18 · 124 阅读 · 0 评论 -
category和extension的区别
category和extension的区别就category和extension的区别来看,我们可以推导出一个明显的事实,extension可以添加实例变量,而category是无法添加实例变量的(因为在运行期,对象的内存布局已经确定,如果添加实例变量就会破坏类的内部布局,这对编译型语言来说是灾难性的)。 extension在编译期决议,它就是类的一部分,但是category则完全不一样,它是在运行期决议的。extension在编译期和头文件里的@interface以及实现文件里的@impleme原创 2021-03-10 15:33:41 · 594 阅读 · 0 评论 -
ios调试技巧
1.通过打log进行排查2.通过使用ios调试工具进行排查2.1 使用Analyze分析Xcode -> Product -> Analyze 即可进行静态分析。2.2 使用Debug Memory Graph调试1、开启Malloc stack logging2、在Xcode下面选择Debug Memory Graph3、如下图所示进行操作,链接到有问题的代码也可以通过下面的gif图查看具体的操作2.3 使用Leaks调试1、选中Xcode点击鼠标...原创 2021-03-10 15:19:23 · 403 阅读 · 0 评论 -
git配置一定要做的几个命令
1. git config branch.dev.rebasetrue;git config --global branch.autosetuprebase always2.$ git config user.name "jexchan"$ git config user.email "jexchan@gmail.com" ssh-keygen -t rsa -C "your_email@youremail.com"原创 2021-03-08 21:49:04 · 128 阅读 · 0 评论 -
iOS疑难问题排查之深入探究dispatch_group crash
起因昨天其他部门的同事突然反馈一起相对来说比较严重的Crash问题(占比达到了yyyy左右,并且从Crash堆栈上可以发现很多情况下是一启动就Crash了)。去掉隐私数据大致堆栈如下:Thread 0 Crashed:0 libdispatch.dylib 0x000000018953e828 _dispatch_group_leave :76 (in ...转载 2019-11-09 18:39:59 · 3637 阅读 · 3 评论 -
siri预研
一、SiriKit介绍Siri是一款苹果 iOS 系统提供的智能语音助手软件,它的全名是Speech Interpretation and Recognition Interface。2011年Siri第一次以 iOS 内置软件的形式随iPhone 4s一同问世之后,终于在WWDC 2016上,苹果开放了Siri的 API,开发者们可以利用SiriKit将自己的服务提供给用户。备注:...转载 2019-06-04 20:58:22 · 656 阅读 · 0 评论 -
LLVM Bitcode File Format
Abstract Overview Bitstream Format Magic Numbers Primitives Fixed Width Integers Variable Width Integers 6-bit characters Word Alignment Abbreviation IDs Blocks ENTER_SUBBLOCK...转载 2019-07-09 16:46:46 · 489 阅读 · 0 评论 -
漫谈iOS Crash收集框架
为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如KSCrash,plcrashreporter,CrashKit等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙Crash统计产品,如Crashlytics,Hockeyapp,友盟,Bugly等等。 是否集成越多的Crash日志收集服务就越保险? 自己收集的C...转载 2019-07-10 17:46:15 · 1341 阅读 · 0 评论 -
不同苹果账号体系的Capabilities情况
Capabilities Available to Developers Sign in with AppleID Apple Developer Program members Apple Developer Enterprise Program members App Groups ● ● ● Background Modes ● ...原创 2019-07-18 14:36:11 · 3059 阅读 · 0 评论 -
ios系统定义的url
App-prefs:root=WIFI 无线局域网 App-Prefs:root=Bluetooth 蓝牙 App-prefs:root=INTERNET_TETHERING 个人热点 App-prefs:root=Carrier 运营商 App-pref...原创 2019-07-18 17:23:27 · 565 阅读 · 0 评论 -
今日头条iOS客户端启动速度优化
应用启动时间,直接影响用户对一款应用的判断和使用体验。头条主app本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖慢应用的启动时间,本着精益求精的态度和对用户体验的追求,我们希望在业务扩张的同时最大程度的优化启动时间。技术调研先说结论,t(App总启动时间) = t1(main()之前的加载时间) + t2(main()之后的加载时间)。t1...转载 2019-07-22 14:35:16 · 355 阅读 · 0 评论 -
iphone适配
原创 2019-07-23 11:35:27 · 131 阅读 · 0 评论 -
Chromium内核原理之网络栈HTTP Cache
《Chromium内核原理之blink内核工作解密》《Chromium内核原理之多进程架构》《Chromium内核原理之进程间通信(IPC)》《Chromium内核原理之网络栈》《Chromium内核原理之网络栈HTTP Cache》《Chromium内核原理之Preconnect》《Chromium内核原理之Prerender》《Chromium内核原理之cronet独立化》1.HTTP ...转载 2019-08-07 11:01:00 · 710 阅读 · 0 评论 -
Top 10 DTrace scripts for Mac OS X
Since version 10.5 “Leopard”, Mac OS X has hadDTrace, a tool used for performance analysis and troubleshooting. It provides data for Apple’sInstrumentstool, as well as a collection of command line ...转载 2019-09-10 17:28:27 · 763 阅读 · 0 评论 -
SiriKit 描述
iOS 10,其中一个亮点,SiriKit。让App与Siri之间可以通过Extension来进行交互。看一下相关术语: Intent:意图 Domain:领域 简介Siri通过用户语音识别出Intent,App通过Intent做出对应的反应。7个领域共包含22个意图,Siri现在只支持22个意图: 语音通话 VoIP Calling:打电话、发起视频电话、查通话...转载 2019-06-04 20:29:23 · 834 阅读 · 0 评论 -
Objective-C Fast Enumeration 的实现原理
在 Objective-C 2.0 中提供了快速枚举的语法,它是我们遍历集合元素的首选方法,因为它具有以下优点:比直接使用 NSEnumerator 更高效;语法非常简洁;如果集合在遍历的过程中被修改,它会抛出异常;可以同时执行多个枚举。那么问题来了,它是如何做到的呢?我想,你应该也跟我一样,对 Objective-C 中快速枚举的实现原理非常感兴趣,事不宜迟,让我们来一探究竟吧。解析 NSFas...转载 2018-06-07 20:59:37 · 474 阅读 · 0 评论 -
iOS工作中的经验总结—马甲包审核以及常见审核问题
1、苹果近期审核动态分析 2、2018年App Store算法重大调整首次曝光一、苹果近期审核动态分析1、机审越来越完善众所周知,应用在上架至App Store前,必须通过神秘的苹果审核团队的审核。能否在短时间内顺利通过审核,对App推广节奏和策略、以及迭代等的应该是非常大的!首先讲一下提审的流程目前应用提审的整个流程大体分为五个阶段,这个登录过iTC后台或操作过App上架的小伙伴应该都知道:P...转载 2018-06-15 10:26:19 · 1660 阅读 · 0 评论 -
从Chrome源码看DNS解析过程
DNS解析的作用是把域名解析成相应的IP地址,因为在广域网上路由器需要知道IP地址才知道把报文发给谁。DNS是Domain Name System域名系统的缩写,它是一个协议,在RFC 1035具体描述了这个协议。具体过程如下图所示:这个过程看似简单,但是有几个问题:(1)浏览器是怎么知道DNS解析服务器,如上图的8.8.8.8这台?(2)一个域名可以解析成多个IP地址吗,如果只有一个IP地址,在...转载 2018-06-28 16:47:57 · 2698 阅读 · 0 评论 -
最新的CocoaPods的使用教程(一)
前言前几天发布我的开源库<最简单方便的iOS轮播开源库:JYCarousel>到CocoaPods的时候。对CocoaPods重新学习了一下,之前只是会简单的使用,并没有全面的了解。现在要对它做一个学习记录吧,现在我还是只会简单的使用_,教程只是我夸大的说法(别骂我)。下面的操作都是经过亲自验证通过的,放心操作!Cocoapods这部分知识一共有三篇博客:1.CocoaPods的日常使...转载 2018-06-28 17:20:39 · 588 阅读 · 0 评论 -
iOS 内存泄漏的常见场景
内存泄漏的常见场景CF类型内存注意以create,copy作为关键字的函数都是需要释放内存的,注意配对使用。比如:CGColorCreate<-->CGColorReleaseMRC内存使用这部分不做详细介绍,也是注意配对使用,需要说明的是,如果代码中有部分文件是MRC的,在已有文件中加代码的时候注意一下,不能都按照ARC的方式处理。ARC内存使用ARC已经为我...原创 2018-08-10 11:01:27 · 653 阅读 · 0 评论 -
iOS开发:几种静态扫描工具的使用与对比
市面上几种主流方案对比名称 来源 功能特点 检查SQL 注入 检查 NullPointException 支持IDE情况 Clang Static Analyzer Apple XCode 自带工具 未测试 是 XCode OCLint oclint.org 建立在 Clang 上的工具 未测试 未测试...原创 2018-08-10 11:44:31 · 4148 阅读 · 0 评论 -
苹果企业账号使用注意事项
苹果企业账号(Apple Developer Enterprise Program)是苹果公司提供给 iOS 开发者的一种高级别的开发者账号,区别于个人开发者账号和公司开发者账号,企业账号具有如下特点:价格比个人账号和公司账号更贵,为 299$/年 不可以提交应用到 App Store 商店 可以将签名后的应用在任何 iOS 设备上安装,且没有安装数量的限制其中,正是由于第3条的特点,给...转载 2018-08-14 21:04:32 · 3653 阅读 · 1 评论 -
"compiler-rt" runtime libraries
The compiler-rt project consists of: builtins - a simple library that provides an implementation of the low-level target-specific hooks required by code generation and other runtime components. For...转载 2018-08-13 17:32:39 · 1337 阅读 · 0 评论 -
Extending LLVM: Adding instructions, intrinsics, types, etc.
Introduction and WarningDuring the course of using LLVM, you may wish to customize it for your research project or for experimentation. At this point, you may realize that you need to add something ...转载 2018-09-16 16:40:27 · 479 阅读 · 1 评论 -
64位汇编参数传递
64位汇编当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位汇编一样。参数个数大于 7 个的时候H(a, b, c, d, e, f, g, h);a->%rdi, b->%rsi, c->%rdx, d->%rcx,...转载 2018-09-24 22:03:52 · 3042 阅读 · 0 评论 -
IOS提交审核注意事项
1. 检查plist的配置项是否打开的配置app都有使用到2.检查功能是否正常可用3.检查ipad是否正常登录4.检查是否使用xcode10以上版本打包5.检查是否支持ipv6审核对象进行模块的划分:1.ipa包的检查:主要是确保ipa中info.plist、包/文件大小、icon规格、私有API、第三方SDK、64位等内容符合苹果要求,此部分的验收,腾讯预审团队已开发出自动化工...原创 2019-03-30 12:49:30 · 1764 阅读 · 0 评论 -
iOS11 WKWebview crash due to NSInvalidUnarchiveOperationException
With ObjectiveC I am developing a SingleView app targeting iOS 11 having one view controller/view. In the Main.storyboard on top of the view I've dropped a WebKit View (WKWebView).I am seeing a cra...原创 2019-04-21 20:36:54 · 706 阅读 · 0 评论 -
What is the difference between In House versus Ad Hoc distribution for Enterprise apps?
Ad-Hoc releases have to be provisioned to specific devices. Your account allows you to register up to 100 devices.In-House is for distribution to any company device.So in most cases In-House can s...转载 2019-04-24 20:50:30 · 128 阅读 · 0 评论 -
专注于非越狱环境下iOS应用逆向研究,从dylib注入,应用重签名到App Hook
专注于非越狱环境下iOS应用逆向研究,从dylib注入,应用重签名到App Hook。注意!本文所有操作均在以下环境下成功进行,不同平台或环境可能存在某些问题,欢迎大家在issue中提出问题以及相互讨论。Mac OS X 10.11.6 (15G12a) - macOS Sierra 10.12.4 (16E144f)Xcode 7.3.1 (7D1014) - 8.1 (8B62)...转载 2019-06-12 22:12:08 · 1938 阅读 · 0 评论 -
YYCache 设计思路
iOS 开发中总会用到各种缓存,最初我是用的一些开源的缓存库,但到总觉得缺少某些功能,或某些 API 设计的不够好用。YYCache (https://github.com/ibireme/YYCache) 是我新造的一个轮子,下面说一下这个轮子的设计思路。内存缓存通常一个缓存是由内存缓存和磁盘缓存组成,内存缓存提供容量小但高速的存取功能,磁盘缓存提供大容量但低速的持久化存储。相对于磁盘缓存来说,...转载 2018-04-17 10:58:47 · 631 阅读 · 0 评论