自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NULLGIRL

时间很长。

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS逆向与安全 - 6. 手动构建App

一、如何获取App使用iTools工具使用iTools获取,点击导出按钮,导出成功后,可以获取ipa文件。使用终端输入 file + ipa文件名 ,可以查看到ipa的类型,我们可以发现是一个zip的压缩包。把ipa解压后,可以得到 Container,这个文件夹是iTools帮我们导出的沙盒目录;iTunesArtwork 图标(iTunes上显示的);iTunesMet...

2018-03-26 19:10:53 752

原创 iOS逆向与安全 - 5. Mach-O文件格式

前言 Mach-O文件格式源码 Mach-O苹果官方手册 想要程序跑起来,那么这个可执行文件的格式就需要被当前的操作系统所理解,比如:Linux 操作系统下可执行文件格式是 ELFWindows 的可执行文件格式是 PE32/PE32+Android 的可执行文件格式是 ELFOSX 和 iOS 的可执行文件格式是 Mach-O准备工具...

2018-03-23 18:39:01 1738

原创 iOS逆向与安全 - 4. Cycript脚本语言的使用

一、Cycript介绍及安装简介Cycript是ECMAScript some-6,Objective-C ++和Java的混合体。它以Cycript-to-JavaScript编译器的形式实现,并为其虚拟机使用(未修改的)JavaScriptCore。它集中于通过采用其语法和语义的方面而不是将另一种语言作为二等公民来提供其他语言的“流利的FFI”。Cycript的主要用户是目前在...

2018-03-20 16:23:40 1659 1

原创 iOS逆向与安全 - 3. Reveal查看页面层次结构

简介Reveal 是一个界面调试工具,可以在iOS开发时动态地查看和修改应用程序的界面。不但可以在运行时看到iOS程序的界面层级关系,也可以实时地修改程序界面,不需要重新运行程序即可看到效果。下载去Reveal官网下载Reveal试用版(土豪随意)。使用介绍1. 自己应用内使用(不逆向对Reveal的使用)-手动导入打开Reveal,在菜单栏 –&gt...

2018-03-12 17:34:36 746

原创 iOS逆向与安全 - 2. class-dump 获取头文件

class-dump 一款从已砸壳的可执行文件中列举出类名与公开方法的工具开始安装class-dump下载地址下载完毕后 去这里看怎么进行安装 class-dump最新安装方法安装完成后,打开终端,输入class-dump 安装成功后,如上图显示。获取文件终端输入class-dump -H 砸壳后的可执行文件路劲 -o 存储文件的路径-H : 获取...

2018-03-05 18:01:24 851 1

原创 iOS逆向与安全 - 1. dumpdecrypted 砸壳

砸壳开始App Store上的应用都是加密的。获取可执行文件下载了的app(这里以TIM为例) 通过iTools 保存在电脑本地得到TIM.ipa文件 通过解压得到TIM文件夹 进入Payload文件夹 右键点击文件显示包内容 找到可执行文件TIM 之后打开终端查看该可执行文件是否已经被加了密 命令行otool -l 可执行文件 | grep cryptid结果如图:...

2018-03-02 15:45:41 4042 1

原创 iOS - cocoapods的规范使用(.podspec配置文件)

pod spec create创建.podspec文件“` Pod::Spec.new do |spec| spec.name = ‘Reachability’ #项目名称 spec.version = ‘3.1.0’ #项目版本号(更新Pod的时候,这里要对应的修改,不修改会更新不到) spec.license = { :type =>

2017-06-13 16:27:58 1651

原创 iOS - 做swift动态库遇到的一些坑

在iOS8之后 应用要上appstore就开始支持动态库了 所以做动态库是一大趋势。 swift做动态库framework用cocoapods管理的时候 在工程里要用到“use_frameworks!” 这句话 这句的作用是 将cocoapods引用的静态库转为动态库使用 如果不这么做的话 你做成的framework拿去使用的时候 将会出现这样的错误: dyld: Library not

2017-06-08 15:15:44 1840

原创 iOS - 蓝牙开门智能门锁

蓝牙的实现原理网上很多 在此就不一一描述了 有需要的可以看以下的文章学习 在ios 的开发中iBeacon和BLE的区别 iBeacon介绍 iOS蓝牙空中升级(固件升级)本文主要是写实现过程:项目需求: 业主反馈拿出门卡开门这一动作繁琐,想要手机蓝牙连接门口机进行摇一摇或者点击对应的大门,实现开门功能。实现步骤:1. 扫描蓝牙设备,将设备列表展示2. 连接其中一台

2017-03-30 14:48:11 4762 3

原创 iOS - 打包提审,常见的被拒原因及解决

ERROR ITMS-90062: “This bundle is invalid. The value for key CFBundleShortVersionString [2.0.2] in the Info.plist file must contain a higher version than that of the previously approved version [2.0.2]

2017-02-17 09:30:03 5993 2

原创 iOS - 自主实现类似微信语音视频信息聊天 (idoubs详细使用方法)1.0

2017 年 本命年到了 一定要兢兢业业 努力去让自己变得更好~ 先给大家拜个年啦。 这篇文章早在16年底就已经在pages上码了一遍 因为总有事情 就一直没有放上来。写在前面的话: 这是一篇非常非常非常长的文章,因为我想尽可能写的详细一点!好了 话不多说 今天主要不是讲如何配置doubango 之前的文章已经提过 链接在这里: iOS - 工程引入doubango (idoubs编译)也不

2017-02-05 10:00:02 8308 17

原创 iOS - 线程(NSThread / NSOperation / GCD)

在开发的时候 因为没有好好去了解三者的差异性 一时贪图便捷 一味使用NSThread开启异步线程 线程爆满没有及时关闭销毁 挖了坑吃了亏。 今天就在这里简单写写三个的用法和差异性:NSThread 封装性最差,主要基于thread使用,方便使用,缺点是需要手动关闭; GCD基于C的API,代码看起来比较乱(高大上),主要基于task使用; NSOperation是基于GCD,被封装成NSObj

2016-11-01 15:19:30 564

原创 iOS - idoubs 通话判断对方状态(在线、拒接、无人接听、挂断)

打开NgnSipService.mm文件中有_mSipCallback变量,用来回调事件状态传值。 我们知道idoubs中原来并没有类似于“对方是否在线” “对方是否挂断电话” 但是实际项目中是有这些需求的。 所以,我们自行加入一些变量,用来判断对方的状态!1.首先我们在定义_NgnSipCallback中来定义几个私有变量: private: NgnSipService* mSipS

2016-10-25 16:12:31 5743

原创 iOS - 教你制作SDK和.a静态库

公司近期和其他公司合作 其他公司需要我们提供一个sdk等供给他们公司的员工进行二次开发。 之前没接触过,但人嘛,进步都是被逼的,今日就写了一个小demo来说说如何制作.a文件的静态库。写在前面的话,什么是库? 库就是封装好功能的程序代码,当我们引用库的时候,我们就可以使用这些已经实现好的功能。根据代码是否公开的情况,库又分为两种类型:开源库和闭源库。开源库: 开源库顾名思义就是公开源代码,能看

2016-10-13 15:29:17 969

原创 iOS - 仿网易新闻侧滑抽屉效果

公司项目需求之一就是 做出抽屉侧滑效果 侧边栏主要是属性设置之类的 效果图: 现在就效果图理个思路出来: 1.我们需要准备3个控制器 A控制器作为容器 装载B控制器、C控制器 2.B控制器也就是侧边栏 3.C控制器是主页。 4.把B和C的view加载在A的view上 由A控制器来操作B和C的滑动 如图:

2016-10-09 18:26:44 1028

原创 iOS - 工程引入doubango (idoubs编译)

首先声明一点 本篇不是原创 只是添油加醋 真正的作者是我的同事老师 粘上他的博客文章地址: 陈老师–idoubs编译笔记准备工作:下载doubango、idoubs源码 mkdir mydoubs cd mydoubs git clone https://github.com/DoubangoTelecom/doubango.git doubango git clone h

2016-10-08 17:58:45 3968 5

原创 iOS - 类似朋友圈的社交界面实现

公司在做一个报修工单的功能,其中主要功能点在于,这个功能不完全是静态显示的, 它还可以点击回复,在下面增加评论,可以点击查看评论详情,也可以收回评论详情, 评论可以带图片,也可以不带图片,工单内容可以带图片,也可以不带图片。 并且回复内容的条数也不确定,就是因为这样的不确定性,一定程度增加了开发的难度。根据MVC的思想,最初Cell应该自带一个数据模型dataModel,单现在我们多增加一个F

2016-06-25 15:54:42 6979 3

原创 iOS - idoubs(网络电话)的基本使用

公司最近要用的doubango底层框架 用来开发网络电话。 doubango是以c为底层写的基于sip协议的框架 前人已经在此基础上写了应用idoubs 我们可以通过看这个开源项目获得自己想要的东西 下面来介绍idoubs的结构内容。前言:如果你还不会idoubs的安装与配置 建议先看这篇文章:idoubs的安装与配置当你什么都做完后 你会看到你的文件夹是这样子的 双击我标注红色的工程

2016-06-21 13:33:40 5459 4

原创 iOS - 蓝牙技术(一) - GameKit框架

写在前面的话: GameKit框架在iOS7.0之后已经过时并且传送只能在同一个app之间传送,所以本篇文章仅供学习使用不做推荐!若有兴趣要研究蓝牙技术,请移步至CoreBluetooth框架学习,这个框架现在比较主流,并且可以跨设备传送数据,谢谢!先附上本人使用GameKit框架写的[蓝牙传输demo]下载地址(https://github.com/ZhuangYuanBaoBao/ZYGame

2016-04-27 11:34:47 583

原创 iOS - OC和网页JS的交互

我们知道,在iOS开发过程中,有时候会用webview加载一张网页,网页上有一些按钮或者其他的一些链接,要使这些按钮有实际的作用,1⃣️要么就是网页部分在HTML文件内部自己实现方法,2⃣️要么就是通过OC和网页的交互,在本app内OC实现点击网页的按钮,可以触发自己OC写的方法。 下面我讲两种常用的方法。 第一种是遵守webview的协议,通过实现协议方法截取网络请求,通过这个截取到的网络请求

2016-04-25 11:05:50 5003

原创 iOS - 手机摇一摇

先上效果图 贴代码//// ViewController.m// 160415摇一摇//// Created by Momo on 16/4/15.// Copyright © 2016年 Momo. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (

2016-04-15 11:02:32 752

原创 iOS - 加速计(重力感应)

先上效果图 小球根据重力感应 然后降落 并且有弹起效果一、原理 重力感应的三维空间 xyz的坐标系如图 (注意:和frame的坐标的y不同) x 向左: 负数 向右:正数y 向上: 正数 向下:负数z 屏幕朝上:负数 屏幕朝下:正数二、代码 注:以下代码只适用于iOS4.0之后 移动的方法都封装在了CoreMotion.framework 这个库中

2016-04-14 17:33:03 1445

原创 iOS - 转场动画

先上效果图 ①还未旋转之前 ②旋转中 ③旋转后 如图所示: 此处动画为3D效果 贴上封装好的方法(方法有二)#import <UIKit/UIKit.h>@interface TransView : UIView/** 二维动画旋转*/-(void)transition2DwithRotation:(CGFloat) transform Duration:(CGFloat)ti

2016-04-06 15:57:37 419

原创 iOS - 融云即时通讯的简单使用

项目里开始需要聊天功能,以前没有接触过,最近看着官方集成文档不是很操心。集成官方文档地址集成步骤就不说了 文档说的很清楚啦~1⃣️ 集成完毕,我们开始要写代码来做初始化和连接部分啦! 在appdelegate.m文件里 先包含文件#import <RongIMKit/RongIMKit.h>//[RCIM sharedRCIM] 核心类// 初始化融云SDK //appKey 从融云开发者

2016-03-29 16:23:33 8277

原创 H5 - canvas

1.画布主要的属性就只有两个 width 和 height 简单得不能再过分简单 但是用到它的地方却很多 比如小游戏的场景布局 或者一些小动画 一般会使用canvas去设置2.在绘制图形的时候,因为有的图形需要开启路径关闭路径,为了方便好记,所以统一都写上 //开启新路径 cxt.beginPath(); //封闭路径 cxt.closePath();3.在制作渲染效果的时候,需要保存当前环

2016-03-24 18:13:39 819

原创 H5 - 音频视频标签的使用

先来看效果图 里面所涉及到的新知识点有 button 按钮标签 video 视频标签 audio 音频标签接下来会着重讲video视频标签的用法属性以及API接口方法 audio标签和video使用标签相同1⃣️用法<video src="movie.ogg" controls="controls" id="video"> 您的浏览器版本不支持</video>sr

2016-03-22 15:05:49 4361

原创 H5 - HTML5新增标签

13年那时候 H5还未火起来 自学的是Html 4.0 如今回首起来 虽然都是标签 但是H5相较于Html4.0还是精简了不少 尤其是一些新增了一些更加直观的标签 删去了不常用的标签 两年多没碰这门语言 决定重新拾起来 从头开始!今天就写个demo 从这个demo中分析今天所用到的标签以及用法 首先做个比较:下面分别是传统的div+css的页面布局方式 下面是HTML5布局方式:

2016-03-21 21:22:23 36197 1

原创 iOS - 一个页面多个tableview

和同事交流的时候总是能够学到新的知识,因为早些年学php和前端的缘故,面向过程的思想会多些,这样真的就浪费了面向对象预言的简洁优美。最好就是能够学会封装今天写的其中一个页面,用原来的思路(面向过程)和现在的思路(面向对象)昨个对比,就会知道封装的必要性! 先上图,看看效果: 因为只是作演示效果 请大家忽略我那些很丑的色块吧! 谢谢!先来分析若是早些时候,我会怎么去处理这个页面: 1.创

2016-03-17 18:08:49 6241 4

原创 iOS - 使用"Masonry"库做约束(自动布局)

之前做适配(还没接触过Masonry的时候) 大体有这样几种方案第一种:在pch文件写下// 屏幕宽度#define screenWidth [[UIScreen mainScreen]bounds].size.width// 屏幕高度#define screenHeight [[UIScreen mainScreen]bounds].siz

2016-03-14 17:47:30 1125

原创 iOS - 同一个Label的不同样式显示

一行文字  要显示成 一行文字不需要用不同的两个Label进行拼接 今儿个就放个方法进来 UILabel * o_priceLabel = [[UILabel alloc]init]; o_priceLabel.text = @"一行文字"; o_priceLabel.textAlignment = NSTextAlignmentRig

2016-03-14 17:02:37 466

原创 iOS - cocoaPods

讲讲cocoaPods的使用吧 之前一直很排斥这个东西呀 _(:з」∠)_  因为要在终端输入那么多的命令行 都是什么鬼  _(:з」∠)_就算是大学学的是通信工程,免不了总是要和命令行打交道,但大学不上课的我,还是颤抖了٩͡[๏̯͡๏]今天的转折要谢谢“威富通”这个第三方强调cocoaPods很好用,当然我觉得威富通自己就很好用<( ̄︶ ̄)>1,跟着我一起先在你的Mac电

2016-01-26 15:35:50 472

原创 iOS - 进入app显示相应的页面(不要每次都是登陆页啊 很蠢!)

都说程序员会有顿悟 哈哈哈 这几日的顿悟就在标题啊 怎么样避免每次进入app后都显示登陆页(或者是其他什么鬼)场景:1.比如你下载了一个app,第一次嘛,难免傲娇的app要展现一下自己的有点嘛( •̀∀•́ ),就出现了新特性页面,好的,那么当我再次进入app后,新特性页面就不要出现了好嘛 很讨厌诶! ( ╯-_-)╯┴—┴  所以我要判断!2.当我们无情地拒绝多次看新特性后,

2016-01-22 18:39:55 1035

原创 iOS - block的简单使用

上班新来了一个同事 写了一个block传值的代码块,某天看见,终于想起来了被自己遗忘很久的传值问题。正向传值,可用属性传递,较为简单,只要把值赋给下个页面的属性就可逆向传值,有这样几种方法1.代理协议 (传小数据的时候显得麻烦又拖沓)2.通知传值 (有时候会占用内存,注册通知的页面销毁了,但通知并没有销毁)3.block传值 (方便,但是初学者会被这个逻辑绕进去)4.单例传

2016-01-21 18:31:04 465

原创 iOS - 判断设备类型/第一响应者

加班解决本周五品质检测的问题中,遇到这样一个问题,当我用4s模拟器跑的时候,键盘会挡住我的输入框,所以相应处理是要把view上移,但是其他设备,比如(5s/6s)屏幕比较大的设备,就不会被遮挡住输入框,此时不用理会,要解决的仅仅是4或4s设备。我在pch文件里,做了相应的宏定义,主要以屏幕宽度来判断://判断机型#define iPhone4s ([UIScreen mainScreen

2016-01-10 11:09:18 695

原创 iOS - 判断用户是否已经登陆

下班在即 写写上班两个月的总结心得1.每次打开一个项目,如果用户有过登陆则跳转主页,无用户则跳转登陆页,有无用户的判断,我的做法是,做一个用户单例(UserManager) 再做一个管理用户的工具 (UserManagerTool),利用用户管理工具,将用户归档,在程序的入口处,判断文件中的用户是否存在1⃣️UserManager 全局用来存储用户的信息,在工程内可以任意调用

2016-01-06 18:02:19 1217

原创 iOS - 小方法

1.启动页去掉状态栏 启动完毕 恢复状态栏首先来到Target的General选项 如图将Hide Status bar 打上钩来到appdelegate.m文件中写以下代码:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)lau

2016-01-05 17:45:49 412

原创 iOS - 调用相机相册的方法 + 上传图片

2015年最后来一帖,等着2个小时后下班,迎接新一年,扔掉两级分化现象严重的2015年啊!今天分享的是拍照、调用相册的方法!1.遵守协议@interface MyMessageVC ()2.写两个按钮  一个是拍照按钮  一个是打开相册按钮#pragma mark - 点击拍照- (IBAction)takePhotoClick:(id)sender {

2015-12-31 15:59:26 794

原创 iOS - 收到远程推送后的页面跳转

宝宝最近带着血光学了点关于推送的东西,1.获取deviceToken后要转换成16进制上传给服务器 以下是转换方法//把deviceToken变成16进制字符串- (NSString *)getHEX:(NSData *)data{ if (!data || [data length] == 0) { return @""; } NSMutableStr

2015-12-29 15:15:32 2533

原创 iOS- 极光推送

老板要做推送 现在准备用第三方 极光推送1. 先去开发者账号 来到Certificaters 生成两个证书 (调试用的推送证书 + 发布程序用的推送证书) 记得点击Push属性证书的作用 : 告知苹果苹果服务器是哪台Mac在调试或者发布可推送程序所以生成证书必须要 上传CSR文件,生成完两个证书后,下载到本地双击,备用。来到钥匙串,把对应的两个证书,导出为p12文件,此时需

2015-12-27 19:27:03 673

原创 iOS - 关于登陆后获取访问服务器通行证 (Token / session)

上班一段时间 遇到过不同的服务器人员 就会有不同访问权限的要求 有的人要用Token噜 有的人要用session噜 现在庒美丽姐姐告诉你这两种方法的解决方案噜 1⃣️: Token  一般当你登陆成功,服务器人员将直接返回给你一个Token串(每次登陆获取的都是不同的值),获取之后,记得用NSUserDefault把这个通行证存起来,这样全局都可以使用,下次登陆,只要更新NSU

2015-12-27 13:00:16 4250 2

手动构建App的Makefile文件

手动构建App的编译文件,集合了编译源文件、链接目标文件、编译storyboard文件、生成plist文件、复制图片资源、生成dSYM文件、签名、打包ipa一系列操作。

2018-03-26

空空如也

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

TA关注的人

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