自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小路恢宏随手记

一些笔记、一些分享和总结

  • 博客(86)
  • 资源 (4)
  • 收藏
  • 关注

原创 iOS 变体包体构建

iOS导出变体包

2023-02-08 18:38:37 372

原创 使用RubyMine调试CocosPod和插件源码

教你如何调试pod和插件源码

2022-07-08 15:58:03 835

原创 Gem包制作及CocoaPods 插件

一、创建gem模板项目假设我的gem命名为mytool执行gem指令:bundler gem mytool二、项目开发1、结构将在当前目录下获取一个模板项目,结构如下:mytool├── Gemfile├── LICENSE.txt├── README.md├── Rakefile├── bin│ ├── console│ └── setup├── lib│ ├── mytool│ │ └── version.rb│ └── mytool.rb

2021-09-09 14:22:34 1296

原创 为mac app制作dmg

一、发布包菜单栏选择 product -> Archive点击 Distribute App 按钮,选择 Copy App点击 Next,选择导出名称和目录,Export发布包二、制作dmg1、新建空的 dmg 文件打开 磁盘工具.app 菜单栏中:文件 - 新建映像 - 空白映像在出来的对话框中按您的需求修改橙色框圈起来的地方,其中空间大小设置略大于上面提到的 13.2MB 即可,这里设置为 14.5MB:在映像中创建 /Applications 的软链接(在终端下执行

2021-04-22 13:13:32 907

原创 上传已存在本地文件到新建git仓库

Command line instructionsYou can also upload existing files from your computer using the instructions below.Git global setupgit config --global user.name “lupeihong”git config --global user.email “[email protected]”Create a new repositorygit clone htt

2021-02-05 16:03:33 361 1

原创 【转】git worktree

团队的一个痛点:在maint版本和feature版本交集阶段,在feature版本分支开发新特性过程中,当有maint版本的Bug时,需要切换到maint版本分支修复Bug——由于2个版本分支的工程依赖环境差异较大,导致每次切换分支后,工程都都需要重新安装依赖以及做全量编译——这无疑增加了编译时间,导致开发效率下降。针对这个痛点,目前发现 git worktree 这个方案有助解决。git worktree方案可以概括为:通过创建共享版本仓库的多个工作区,实现多分支并行开发,从而实现多个工程环境的缓存

2020-11-23 10:40:09 7389

原创 剑指offter 数据结构之数组

二维数组中的查找题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。假如我们要找数字7,由于矩阵是行和列都是从小到大的排列,右边的列一定大于左边的,下边的行一定大于上边的。因此我们可用从右上角或者左下角开始扫描。如果我们从右上角开始扫描,9 > 7,那么7就不可能在9这一列,该列可以排除,往左一列查找,同理,8 > 7,也排除。直到,2 < 7,说明,7一定不在

2020-11-02 19:52:29 146

原创 剑指offer 数据结构之字符串

替换空格题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。看到这个题目,我们首先应该想到的是原来一个空格字符,替换之后变成’%’、'2’和’0’这 3 个字符,因此字符串会变长。如果是在原来的字符串上做替换,那么就有可能覆盖修改在该字符串后面的内存。如果是创建新的字符串并在新的字符串上做替换,那么我们可以自己分配足够多的内存。由于有两种不同的解决方案,我们应该向面试官问清楚,让他明确告诉我们他的需求。假设面试

2020-11-02 19:50:13 93

原创 Flutter iOS混合开发集成实践

背景:Flutter目前还不够成熟,仍然没勇气大范围使用,一般只是当作现有APP的一部分模块进行集成。然而,flutter的集成方案,官方提供了一套:https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps ,并不完美,native需要依赖flutter工程和flutter环境才能运行起来,对于团队开发来讲是不能容...

2019-06-03 14:32:34 2136 1

原创 flutter初探

一、安装详情见:https://flutterchina.club/setup-macos/下载Flutter SDK :https://flutter.io/docs/development/tools/sdk/archive?tab=macos#macos下载后解压,在目录下会看到./bin目录,将其路径设置进环境变量vim ~/.bash_profile添加path变量:ex...

2019-03-25 16:02:15 234

原创 Shell笔记

一、字符串处理https://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html常用场景:解析文本,分割line(splist)string//substring/replacement使用{string//substring/replacement} 使用string//substring/replacement使用replac...

2019-03-25 13:11:41 247

原创 Python3+Selenium爬取动态网页数据

背景:有时候想获取网页的信息,然后下载里面的图片资料等等遇到的问题:有时一些网页是动态的,一些内容是通过js异步拉取,甚至拉取时间是懒加载的,例如滚动到元素位置的时候才加载解决方案:这个时候就需要Selenium神器了Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 ...

2018-11-21 14:39:58 3709

原创 【工具】终端 iterm2 + zsh + oh-my-zsh

iTerm2Mac的终端不好用吗,是时候换一款终端了了iTerm2,下载:https://iterm2.com/你要说好用在哪,可以看看这个https://iterm2.com/features.htmlzshzsh是shell语言类型,兼容bash,提供强大的命令行功能,比如tab补全,自动纠错功能等。缺点就是配置太麻烦,好在有一个叫做oh-my-zsh的开源项目,很好的弥补了这一缺...

2018-11-09 18:30:19 485 1

原创 block的定义

oc的block请原谅我到用时一直打不出来一、不定义typedef1.方法block定义:-(void)方法名:(返回类型(^)(参数))block名称;如下:- (void)action:(void(^)(UIView *tipView))action;- (void)action:(void(^)(void))action;//如果没带参数就写void2.属性定义:@pro...

2018-09-18 10:36:33 1045

转载 CSDN-markdown编辑器模板

模板Markdown编辑器模板新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Markdown编辑器模板你好...

2018-09-18 10:20:20 114

原创 【技巧】UIScrollerView中的UISlider优先响应

一、背景:在项目开发时遇到一个问题,我在UIScrollerView中添加了一个UISlider的组件,在手势滑动的过程中,很难滑动到UISlider这个控件,经常是滑动的时候UIScrollerView进行了滚动,而UISlider这个控件没有滑动,让人很抓狂。二、分析网上说的通过重载UISlider的 - (CGRect)thumbRectForBounds:(CGRect)...

2018-09-15 14:41:11 362

原创 【Bug记录】懒加载的坑

一、问题最近开发过程中,遇到了一个诡异的bug: vc下有个collectionView属性,并通过懒加载方式获取:- (UICollectionView *)collectionView { if (!_collectionView) { _collectionView = [[UICollectionView alloc] initWi...

2018-07-24 21:26:24 446 1

原创 iOS 瘦身实践

经过多次版本迭代,产生不少冗余代码和无用资源。而苹果规定今年6月提交给Appstore的应用必须支持64位,32位和64位两个架构的存在使得可执行文件增加了一倍多。安装包大小优化迫在眉睫。一、资源瘦身资源瘦身主要是去掉无用资源和压缩资源,资源包括图片、音视频文件、配置文件以及多语言wording。无用资源是指资源在工程文件里,但没有被代码引用。 检查方法思路:用资源关键字(通常是文件...

2018-06-28 21:54:39 1872

原创 CoreText富文本

一、坐标系iOS主要有有2种坐标系,UIKity下坐标系(原点左上),Core Graphics/QuartZ 2Dy上坐标系(原点左下)。我们这里用画线和画图来解释两种不同坐标系CGContextRef context = UIGraphicsGetCurrentContext();CGContextMoveToPoint(context, 0, 2);CGContextAddL...

2018-04-20 20:56:27 603

原创 LLVM与Clang

我们可以把LLVM认为是一个完整的编译器架构,或者是一个用于开发编译器、解释器的库。理解LLVM时,我们可以分为狭义的LLVM 和 广义的LLVM广义的LLVM : 指整个LLVM编译器架构,包括前端、优化器、后端、函数库狭义的LLVM:后端功能(代码优化、生成)的一系列模块和库这里我们先摆出一个操作文件main.m#include #import int main

2018-03-14 10:19:27 646

转载 clang编译器

编译器转:https://objccn.io/issue-6-2/编译器做些什么?本文主要探讨一下编译器主要做些什么,以及如何有效的利用编译器。简单的说,编译器有两个职责:把 Objective-C 代码转化成低级代码,以及对代码做分析,确保代码中没有任何明显的错误。现在,Xcode 的默认编译器是 clang。本文中我们提到的编译器都表示 clang。clang 的功能是首先对 Objectiv...

2018-02-12 18:53:08 1524 1

转载 Mach-O 可执行文件

Mach-O 可执行文件转:https://objccn.io/issue-6-3/我们用 Xcode 构建一个程序的过程中,会把源文件 (.m 和 .h) 文件转换为一个可执行文件。这个可执行文件中包含的字节码会将被 CPU (iOS 设备中的 ARM 处理器或 Mac 上的 Intel 处理器) 执行。本文将介绍一下上面的过程中编译器都做了些什么,同时深入看看可执行文件内部是怎样的。实际上里面...

2018-02-12 18:51:21 363

原创 react-native + redux 实践

一、rn环境搭建看我的另外一篇文章 http://blog.csdn.net/bluefish89/article/details/77802507二、rn起步对于RN的时候,通过https://reactnative.cn/docs/0.50/getting-started.html 可知道,通过react-native引入组件,可在Component中的render方法使用JSX标签如Text、

2017-11-23 22:04:39 521

原创 clang 开发应用xcode 编译检查的插件 二:开发篇

1.抽象语法树AST 在实现语法检测之前,需要了解一个叫AST(抽象语法树)的东西 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,之所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,看个例子: 语法树是编译器对我们所书写的代码的“理解”,如上图中的x = a + b;语句,编译器会先将

2017-09-15 18:24:03 981

原创 clang 开发应用xcode 编译检查的插件 一:构建篇

Clang是llvm的编译器前端,非常适合进行源码分析.目前开源的oclint就是基于clang进行的代码静态检查.工作中遇到了一些问题需要进行代码分析,所以学习了插件的开发流程.既然开发插件就要有合适的IDE,Mac上最合适的无疑是xcode了.本文将讲述如何使用xcode开发clang插件,在此之前请先了解clang的相关知识.一、搭建环境1.获取Clang源码由于是要使用到Xcode中,因此最

2017-09-15 18:19:00 1868

转载 XCODE8 API文档解析

31 OCT 2016 . CATEGORY: TECH . COMMENTS #TUTORIAL背景 iOS API的start/deprecated的判断一个重要基础是获取到每个API的具体版本支持信息。 在Xcode8之前,/Applications/Xcode7.app/Contents/Developer/Documentation/DocSets/com

2017-09-06 16:42:06 857

转载 CLANG技术分享系列四:IOS APP无用代码/重复代码分析

01 NOV 2016 . CATEGORY: TECH . COMMENTS #CLANG问题背景包瘦身,包瘦身,包瘦身,重要的事情说三遍。最近公司一款APP一直在瘦身,我们团队的APP也愈发庞大了。就想看看除过资源外,还有那些路径可以缩小包大小,直观来看,业务代码毕竟有限,各种库嫌疑很大,但是如果没有一个定量的分析,一切说辞都显得有些苍白。当然了所有的APP套路都一样,

2017-09-06 16:40:48 2085 1

转载 CLANG技术分享系列三:API有效性检查

CLANG技术分享系列三:API有效性检查01 NOV 2016 . CATEGORY: TECH . COMMENTS #CLANG问题背景 iOS API(Class/Protocol的Interface,Property,Const,Function)的start/deprecated的判断依赖两个方面: 1.获得所有的API调用,包括OC消息发送,C

2017-09-06 16:39:28 807

转载 CLANG技术分享系列二:代码风格检查(A CLANG PLUGIN APPROACH)

转:http://kangwang1988.github.io/tech/2016/10/31/check-code-style-using-clang-plugin.html背景一致的代码风格检查已经是老生常谈了,统一规范的代码风格不仅可提高代码的可读性,可维护性,减少问题的发生,阅读体验也是蛮不错的。 在系列一介绍了Clang插件的原理后,本文将介绍如何用Clang插件完成代码

2017-09-06 16:37:06 1445

转载 CLANG技术分享系列一:编写你的第一个CLANG插件

转:http://kangwang1988.github.io/blog/引子 以前遇到一个需求,检测iOS App代码中使用到的API是否存在开始支持的系统版本高于当前deploy target,或已经在当前支持的最新系统之前(包括当前系统)已经被标记为弃用(deprecated),以免发生Crash或者代码不能被调到的情况。 这个问题可以看成时两个子问题: 1.

2017-09-06 16:34:20 5596

原创 RN环境配置

从 https://nodejs.org/en/download/ 下载安装: https://nodejs.org/dist/v6.10.3/node-v6.10.3.pkg sudo npm install -g react-native 项目目录下 npm install 启动node.js服务 npm startxcode运行期间 commd+D 调起node.js菜

2017-09-02 17:27:35 468

原创 sublime安装插件

1.打开https://packagecontrol.io/installation 下载 Package Control.sublime-package 2.启动sublime,Preferences > Browse Packages,把Package放在Installed Packages目录下 3.sublime进入菜单Preferences > Package control ,在弹

2017-09-02 17:25:03 430

转载 IM消息送达保证机制实现

一、保证在线实时消息的可靠投递1.报文类型报文分为三种: 请求报文(request,后简称为为R); 应答报文(acknowledge,后简称为A); 通知报文(notify,后简称为N)。 这三种报文的解释如下:R:客户端主动发送给服务器的报文 A:服务器被动应答客户端的报文,一个A一定对应一个R N:服务器主动发送给客户端的报文2.普通消息投递流程 用户A给用户B发送一个“你好

2017-05-11 17:54:45 7621 1

原创 AVFoundation笔记

这几天研究了下AVFoundation框架,在这里做下笔记备用一、播放先初始化一个AVAsset资源,创建AVPlayerItem用于AVPlayer播放。 要将视频显示到view上,需要AVPlayerLayer,将layer添加进view。NSURL *url = [[NSBundle mainBundle] URLForResource:@"video" withExtension:@"m4

2016-12-27 13:54:04 752

原创 charles https抓包

请求如果是Https的,抓包工具不能正常的显示请求的内容及返回的情况。Charles是支持针对Https抓包的。具体的操作如下:电脑端安装SSL证书1.安装SSL证书 打开Charles,Help -> Intall Charles CA SSL Certificate… 2.之后会弹出钥匙串,如果不弹出,请自行打开钥匙串,如下图 系统默认是不信任 Charles 的证书的,此时对证书右键

2016-11-18 15:16:36 541

原创 生成推送证书PEM文件

Mac上生成 Apple推送通知SSL证书 怎么生成就不说了,从开发者中心下载制作好的push证书『aps_development.cer』通过双击.cer文件将你的 cer 引入Keychain中。在Mac上启动 Keychain助手,然后在login keychain中选择 Certificates分类。你将看到一个可扩展选项,这是改证书的专用密钥右键导出p12文件『apns-dev-ke

2016-11-11 15:05:57 523

转载 iOS制作推送证书笔记

在Mac上生成 Apple推送通知SSL证书:登录到 iPhone Developer Connection Portal 并点击 App IDs创建一个不使用通配符的 App ID 。通配符 ID 不能用于推送通知服务。例如,我们的iPhone程序ID像这样:  AB123346CD.com.serverdensity.iphone点击App ID旁的“Configure”,然后按下按钮

2016-09-30 12:47:12 383

原创 iOS异常处理

开发iOS应用,解决Crash问题始终是一个难题。 Crash分为两种, 一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内存; 另一种是未被捕获的Objective-C异常(NSException),导致程序向自身发送了SIGABRT信号而崩溃。 其实对于未捕获的Objective-C异常,我们是有办法将它记录下来的,如果日志记录得当,

2016-09-13 10:31:56 3547

原创 scrollview的自动布局约束设置

在自动布局中,scrollview的处理方式要比其他普通view特殊。 由于scrollview出了自身大小外,还需要contentSize来确定内容滚动的大小,所以使用对scrollview的内容作约束的时候,需要要能计算出确切的宽高,最终才能得到contentSize的大小。做法: 1. 添加scrollview到vc.view中,先设置scrollview跟父view的约束一般为top、b

2016-08-19 10:15:06 2282

原创 使用Reveal调试UI

下载破解可以先在官网revealapp.com下载正式版本 接下要搞很牛逼的一步了,破解Reveal1.5.x通杀破解.zip_免费高速下载 (最近升级1.6.X的小伙伴,这破解方法依然有效哦)使用安装好Reveal后, 首先打开Terminal,输入 vim ~/.lldbinit 创建一个名为.lldbinit的文件,然后将如下内容输入到该文件中:command alias reveal_lo

2016-07-19 19:47:29 516

html基础教程电子书

html基础教程,很实用,适用初学者,包括各种标签的介绍,相信会给你不少帮助吧

2010-11-07

CSS 2.0样式表中文手册

有关于CSSCSS的概括,叙述,CHM格式,用起来很方便

2010-04-15

ThinkPHP2.0完全开发手册.chm

ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的表现。

2010-03-31

ASP轻松上手.CHM

关于学习ASP和编程的28个观点 包括ASP的实战用例,尤为适合初学者。 以及初学者常见的错误

2009-12-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除