移动互联开发-iOS
文章平均质量分 61
火海夕
入行10+年的开发老鸟,专注客户端开发,精通OC、swift,熟悉WEB、JAVA/PHP、iOS联合开发,拥有5年项目管理经验,擅长敏捷项目开发和管理。乐于交流,分享经验技术,也欢迎职业直接推荐!联系方式:wx=j136845,qq=931637933,邮箱=jutiefeng123@163.com
展开
-
Charles下载安装与手机调试教程
Help ==> SSL Proxying ==> Install Charles Root Certificate ==> 安装证书 ==> 本地计算机 ==> 将所有的证书都放入下列存储 ==> 点击浏览,选择”受信任的根证书颁发机构” ==> 完成。----------以下内容有参考博客:https://blog.csdn.net/qq_44538738/article/details/124135237。3)手机设置--->通用--->关于本机--->证书信任设置中开启刚刚下载的证书。原创 2022-12-14 17:59:55 · 2283 阅读 · 0 评论 -
To use xx的iPhone for development, enable Developer mode in Settings->Privacy & Security
打开手机“隐私与安全性”当中开发者调试开关,重启手机与Xcode的,问题就解决了,希望能给小伙伴们帮助哈。原创 2022-11-21 15:16:13 · 9313 阅读 · 0 评论 -
封装WKWebviewController不走dealloc方法
监测内存泄漏三个方法:1、Instruments中的Leak动态分析内存泄漏product->profile ->leaks 打开工具主窗口链接:https://blog.csdn.net/wlly1/article/details/784611972、pod 'MLeaksFinder'链接:https://www.jianshu.com/p/eb2edcd24791?utm_source=desktop&utm_medium=timeline3、僵尸调试+控制原创 2020-12-16 18:34:19 · 445 阅读 · 0 评论 -
iOS “深挖”单例模式
单例模式大概是设计模式中最简单的一个。本来没什么好说的,但是实践过程中还是有一些坑。所以本文小结一下在iOS开发中的单例模式。一、 什么是单例模式按照四人帮(GOF)教科书的说法,标准定义是这样的:1Ensures a class has only one instance, and provide a global point转载 2017-11-24 14:22:09 · 244 阅读 · 0 评论 -
17年App Store最新官方审核指南
简介App 正在改变世界,丰富人们的生活,并为像您一样的开发者提供前所未有的创新机会。因此,App Store 已成长为一个激动人心且充满活力的生态系统,正为数百万的开发者和超过十亿的用户提供服务。不管是开发新手,还是由经验丰富的程序员所组成的大型团队,我们都非常欢迎您为 App Store 开发 App,并希望能够帮助您了解我们的准则,以确保您的 App 能够快速通过审核流程。 App翻译 2017-12-12 10:55:26 · 660 阅读 · 0 评论 -
iOS证书详解
目录 引言写在前面一App IDbundle identifier二设备Device三开发证书Certificates证书的概念数字证书的概念iOS开发证书iOS开发证书的根证书申请证书CSRCertificate Signing Request四供应配置文件Provisioning ProfilesProvisioning Profile的概念Provisioni转载 2017-12-11 11:44:45 · 293 阅读 · 0 评论 -
RSAEncryptor 加密为空
从bundle中获取数据,明明把数据添加到项目中了,但就是不对。打印出来的都是空//原始数据 NSString *originalString = @"这是一段将要使用'.der'文件加密的字符串!"; //使用.der和.p12中的公钥私钥加密解密 NSString *public_key_path = [[NSBundle mainBundle] path原创 2017-12-19 18:44:14 · 2115 阅读 · 0 评论 -
iOS 使用lame库进行音频转mp3(二)
在使用lame库转码的过程中,进行深入了解发现影响音频时长不准确和无法正常播放的参数有一下原因:音色变化时长变化AVEncoderAudioQualityKey(质量)无变化无变化AVSampleRateKey(采样率: 44100.0、11025.0、48000.0)原创 2017-12-07 16:58:28 · 327 阅读 · 0 评论 -
iOS 使用lame库进行音频转mp3(一)
iOS 使用lame库进行音频转mp3后时长不对,下面链接及解决方法和相关demohttp://download.csdn.net/download/u011374880/10111418原创 2017-11-09 14:33:02 · 2054 阅读 · 0 评论 -
iOS推送问题(最新)
app在前台和后台运行时,推送触发的是didReceiveRemoteNotification事件, app在杀死状态时,推送触发的是didFinishLaunchingWithOptions事件,试验之后,居然都走了,application:(UIApplication )application didReceiveRemoteNotification:(NSDictionary )us转载 2017-11-16 17:51:38 · 222 阅读 · 0 评论 -
UITableview在iOS11中出现的问题
首先要注意这只是在iOS11下会出现的bug,如果iOS10以及以下也有问题的情况不属于此列问题的动图如下所示,如果要做每隔一段短时间就刷新一个section甚至整个tableview的操作的时候会出现闹鬼式的不断移动。它真的是自己回去的~(限制动图2M真的有点烦)解决方案 在初始化tableview的时候加上这几行?转载 2017-11-16 17:46:39 · 388 阅读 · 0 评论 -
iOS11拍照的HEIC图片无法显示
LIVE拍摄的原图发送无法显示解决办法iOS 11中,如果你是iPhone 7及以上设备,系统用了新的格式来存储视频和图片,如果你的App支持上传图片原文件,那么很可能会有图片无法显示的问题。读取图片原文件的代码一般是下面这样的,传到后台之后得到一个url,webview和UIImage是无法显示的。[[PHImageManager defaultManager原创 2017-11-17 14:54:04 · 4207 阅读 · 1 评论 -
适配iOS11&iPhoneX的一些坑
适配iOS11&iPhoneX的一些坑前阵子项目开发忙成狗,就一直没做iOS11的适配,直到XcodeGM版发布后,我胸有成竹的在iPhoneX上跑起项目,整个人都凉透了...下面总结一下我遇到的坑,不是很全面,日后补充。导航栏导航栏高度的变化iOS11之前导航栏默认高度为64pt(这里高度指statusBar + NavigationBar),iOS11之后如果设置了pr转载 2017-10-30 10:06:38 · 974 阅读 · 0 评论 -
iOS 中KVC、KVO、NSNotification、delegate 总结及区别
1、KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。Demo:@interface myPerson : NSObject { NSString*_name;原创 2016-08-11 11:11:24 · 286 阅读 · 0 评论 -
iOS 使用通知的正确“姿势”
第一种:最纯粹的,如:1[[NSNotificationCenter defaultCenter] postNotificationName:@"aNotification" object:nil];第二种:在PCH文件中写宏,如:1转载 2017-11-24 14:31:47 · 890 阅读 · 0 评论 -
iOS中线程Call Stack的捕获和解析(一)
http://blog.csdn.net/jasonblog/article/details/49909209这里对上个月做的一个技术项目做部分技术小结,这篇文章描述的功能和我们在使用Xcode进行调试时点击暂停的效果类似。一、获取任意一个线程的Call Stack如果要获取当前线程的调用栈,可以直接使用现有API:[NSThread callStackSymbols]。但是并没有相关转载 2017-12-05 10:44:21 · 255 阅读 · 0 评论 -
Carthage的安装和使用
Carthage和CocoaPods相比,轻量级一些,在swift中使用很方便,它本身就是swift写的。1.brew安装carthage之前需要安装brew,进入官网(https://brew.sh/index_zh-cn.html) 有详细的安装步骤。获取 Homebrew打开终端Tterminal`,输入以下命令:/usr/bin/ruby -e "$(curl -fsSL htt转载 2017-12-14 16:15:23 · 1464 阅读 · 0 评论 -
清除xcode和模拟器缓存
清除模拟器运行产生的文件右击Finder,选中"前往文件夹",输入"~/Library/Developer/CoreSimulator/Devices/" Xcode编译项目缓存垃圾的目录:移除对旧设备的支持影响:可重新生成;再连接旧设备调试时,会重新自动生成。我移除了4.3.2, 5.0, 5.1等版本的设备支持。路径:~/Library/Developer/Xcode/iOS D...转载 2019-03-18 10:59:48 · 2799 阅读 · 0 评论 -
iOS获取当前正在显示的UIViewController
今天由于项目需要,需要获得当前屏幕上显示ViewController,所以上网找了一下,找到下面这个方法,但使用的时候,发现并没有什么卵用。原因看下面。错误的用法接下来说一下我自己实践的方法。APP的架构通常是 UITabBarViewController -> UINavigationController -> UIViewController.所以我一开始的测试流程是:UI...转载 2018-12-20 16:21:17 · 3976 阅读 · 0 评论 -
Xcode 10.1 library not found for -lstdc++.6.0.9
解决方案 :真机/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/模拟器/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/...转载 2018-11-29 16:27:32 · 296 阅读 · 0 评论 -
iOS性能之WebP
当今互联网,无论网页还是APP,流量占用最大的,多数都是因为图片,越是良好的用户体验,对图片的依赖度越高。但是图片是一把双刃剑,带来了用户体验,吸引了用户注意,却影响了性能,因为网络请求时间会相对比较长。图片分很多种,比较主流的就是:位图(BMP),jpg(JPEG,有损压缩格式),png(无损压缩格式)等,这三种,按照图片大小和清晰度来看,依次是:BMP > png > jpg。因为转载 2018-01-10 16:40:21 · 395 阅读 · 0 评论 -
CUICatalog: Invalid asset name supplied: (null)......
今天查看打印日志发现,输出台出现了CUICatalog: Invalid asset name supplied后来查看发现,是[UIImage imageNamed:@""];image给了空,醉了,这种问题,修改之后此问题解决,希望对大家有帮助原创 2018-02-01 17:41:41 · 503 阅读 · 0 评论 -
iOS图标(AppIcon)与启动图(LaunchImage)
图标(AppIcon)与启动图(LaunchImage)是开发iOS应用程序必不可少的内容,但是在网络上对于这部分的内容讲解的并不详细,所以花些时间写了这篇文章,希望有需要的朋友可以随时查看想知道AppIcon与LaunchImage的原理,必须对iOS设备的发展有一个简单的了解,所以我们先来看一看iPhone系列和iPad系列发展史iPhone发展史设备年份尺寸转载 2017-12-27 16:11:15 · 4424 阅读 · 0 评论 -
ios app 上传之预览、屏幕快照尺寸规范
App 预览规范 (iOS、tvOS)您可以提供 tH.264 和 ProRes 422(仅限 HQ)格式的 App 预览,并且需要具有如下规格:视频规格表头H.264 格式ProRes 422(仅限 HQ)格式目标比特率10-12 MbpsVBR ~220 Mbps转载 2018-01-16 10:54:49 · 18970 阅读 · 2 评论 -
iOS 上传app error: The executable for XXXX contains unsupported architetures x86_64,i386 (framework分离)
好久没有上传app store了,昨天新项目提交,上传ipa的时候出现了一点问题,如图所示根据英语的意思,基本是说某某sdk中,含有不支持的结构,那么这个不支持的结构是什么呢?就是其中说的i386 x86,那这俩货又是什么?他们是支持模拟器运行的结构,那好,经过分析查证,我们只需要将这两个结构去掉,就OK了,下面就是解决方法首先在终端找到文件路径,输入lipo ZipArchi原创 2018-01-16 10:44:03 · 883 阅读 · 0 评论 -
打包IPA,安装,点击app崩溃
今天大包,无意中发现ipa包小了10MB,没有在意,然后打测试包,上传蒲公英,安装测试,安装第一次运行居然崩溃了后来反复查看后来发现是build settings中的always Embed Swift Standrd Libraries 变成了NO将其修改为yes,问题解决问题分析:将always Embed Swift Standrd Libraries 设置为NO,项目中原创 2018-01-11 18:22:36 · 1807 阅读 · 0 评论 -
pod报错:Automatically assigning platform `ios` with version `10.0` on target `CloudLive` because no pl
# Uncomment the next line to define a global platform for your project#platform :ios, '10.0'target 'CloudLive' do# Uncomment the next line if you're using Swift or would like to use dynamic...原创 2017-12-18 15:16:15 · 16414 阅读 · 0 评论 -
苹果内部支付
一、开发工作(ios端)1、 在工程中引入 storekit.framework 和 #import 2、 获得所有的付费Product ID列表。这个可以用常量存储在本地,也可以由自己的服务器返回。3、 制作一个界面,展示所有的应用内付费项目。这些应用内付费项目的价格和介绍信息可以是自己的服务器返回。但如果是不带服务器的单机游戏应用或工具类应用, 则可以通过向App St原创 2016-06-06 17:30:49 · 588 阅读 · 0 评论 -
IOS调试—断点调试以及动态输出
在开发App的过程中,需要反复的修改和优化我们的代码,特别是当程序出现bug,需要快速的找出错误的原因,进行修改,以保证程序的正确执行。 断点调试,是最常用最简单的一种调试方式,可以一步步跟踪程序执行的流程,得到变量的值,快速的找到错误的原因。1、断点的基本操作 断点的操作非常简单,下面通过几张图来介绍一下如何添加、删除、编辑以及使用断点。原创 2016-03-28 18:54:05 · 1553 阅读 · 1 评论 -
viewWillDisappear,viewWillAppear不调用的解决方法
产生原因是用了UINavigationController. 将UINavigationController的view作为subview添加到了其他viewController的view中。 或者把UINavigationController添加到UITabbarController中了。 此时,NavigationController的stack里面的viewContro原创 2016-03-10 14:44:19 · 6461 阅读 · 0 评论 -
iOS开发 贝塞尔曲线UIBezierPath
使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit中。此类是CoreGraphics框架关于path的一个封装。使用此类可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状。 1.Bezier Path 基础 UIBezierPath对象是CGPathRef数据类型的封装。path如果是基于矢量形状的,都用直线和曲线段去创建。 我们使原创 2015-01-15 17:57:01 · 853 阅读 · 0 评论 -
iOS 截屏以及相关扩展(UIImage的绘制和渲染)
1.截取当前屏幕 CGSize windowSize = behandView.bounds.size; UIGraphicsBeginImageContextWithOptions(windowSize, YES, 2.0); CGContextRef context = UIGraphicsGetCurrentContext(); [behandVi原创 2015-01-20 15:41:53 · 1550 阅读 · 0 评论 -
beginUpdates和endUpdates-实现UITableView的动画块
我们在做UITableView的修改,删除,选择时,需要对UITableView进行一系列的动作操作。这样,我们就会用到 [tableView beginUpdates]; if (newCount0) { [tableView deleteSections:[NSIndexSet indexSetWithIndex:inde原创 2015-05-11 11:06:43 · 1063 阅读 · 0 评论 -
ios获取设备信息总结
1、获取设备的信息[objc] view plaincopyUIDevice *device = [[UIDevice alloc] int]; NSString *name = device.name; //获取设备所有者的名称 NSString *model = device.name; //获取设备的类别原创 2015-05-11 15:52:24 · 609 阅读 · 0 评论 -
IOS 退出程序APP代码
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:self.exitapplication message:@"" delegate:self cancelButtonTitle:self.exityes otherButtonTitles:self.exitno,nil]; [alert show];转载 2015-08-25 16:27:52 · 672 阅读 · 0 评论 -
IOS自带Email的两种方法
IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController。借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能。 1.openURL使用openURL调用系统邮箱客户端是我们在IOS3.0以下实现发邮件功能的主要手段。我们可以通过设置url里的相关参数来指定邮件的内容,不过其缺点很明显,这转载 2015-07-01 11:53:50 · 2621 阅读 · 0 评论 -
nil和release的区别
今和大家详细解说一下有关Objective-C中nil与release的区别 首先说一下他们两的作用,nil就是把一个对象的指针置为空,也就是我们说的指针归零,只是切断了指针与内存中对象的联系,它对内存的释放没有什么作用;而release才是真正触发内存释放的,release后系统会将该块内存标记为可用(可重新分配),当alloc和new的对象,使用后,release,在当前类被销毁原创 2015-05-05 14:52:23 · 773 阅读 · 0 评论 -
2015年3月苹果新的审核标准(中文)
请阅读以下许可协议的条款和条件之前仔细下载或使用Apple软件。这些条款和条件构成了您与苹果的法律协议。的iOS开发者计划许可协议目的你想用苹果软件(定义见下文)制定的一个或多个应用程序(定义见下文),运行iOS和OS关注的苹果品牌产品。苹果愿意给你一个有限的许可使用苹果软件开发和对本协议规定的条款和条件,测试应用程序。本协议项下开发的应用程序可以分布在四个方面:(1)通过Ap转载 2015-03-11 17:56:44 · 4267 阅读 · 0 评论 -
device token
两种通知都是为了提醒用户后台执行的应用有了变化。从用户角度来看,效果是一样的,都是通知。只是实现的方式不一样,对于技术实现来说。本文主要说明push notification的device token的步骤。可以通过《偷窥iPhone Push Notification的幕后》和《iPhone的Push(推送通知)功能原理浅析》对push notification有个原理上的了解。转载 2015-01-23 17:00:24 · 5092 阅读 · 0 评论 -
IOS常用加密算法
先说一下我们游戏设计时候的安全考虑吧(懒得打字,直接从设计文档中复制了,还请见谅....自己的独立游戏,所以100%的版权哈)5.1 通过简单的URLENCODE + BASE64编码防止数据明文传输5.2 对普通请求、返回数据,生成MD5校验(MD5中加入动态密钥),进行数据完整性(简单防篡改,安全性较低,优点:快速)校验。 5.3 对于重要数据,使用RSA进行数字签名,起到防篡改作原创 2015-02-04 17:33:51 · 942 阅读 · 0 评论