
通用技巧
一度_iOSDeveloper
做好自己,做更好的自己
展开
-
服务器接收 App Store 苹果商店内购项目IAP的退款通知
苹果商店内购IAP相信大家一定不陌生,苹果从中抽成30%更是让大多数公司都很反对。有时候碰上恶意退款的人更是没有办法,只能认栽。好消息是苹果终于上线了退款通知! “AppStore服务器通知现在包含所有类型的App内购买项目的退款通知(包括消耗型项目、非消耗型项目和非续期订阅)。这些信息能帮助您采取相应的行动,并告知他们相关的优惠更改,以及如何重新订阅。” ---- Apple 2020年6月25日 废话不多说,先来看看苹果给的文档:了解如何开启状态更新通知(英文)>...转载 2020-09-14 12:41:35 · 2770 阅读 · 1 评论 -
自定义 URL Scheme 完全指南
本文转自 Migrant的博客,原文:《The Complete Tutorial on iOS/iPhone Custom URL Schemes》 iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme 用于从浏览器或其他应用中启动本应用。 注册自定义 URL Scheme注册转载 2016-09-29 17:07:29 · 2098 阅读 · 0 评论 -
Ios9.0 canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query for scheme xx"
控制台输出如图是在我启动一个 Xcode 7 + iOS 9 的 App 之后,控制台的输出。这在 Xcode 6.4 + iOS 8 时,是不会有的情况,原因是【为了强制增强数据访问安全, iOS9 默认会把所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求,都改为 HTTPS 请求:iOS9.x-SDK编译时,默认会转载 2016-09-29 10:08:27 · 1302 阅读 · 0 评论 -
脱机一次性口令OTP原理(将用户id加密到一串数字中)类似微信支付宝付款码,将军令等
离线二维码的技术原型是在行业中广泛使用的一次性口令(OTP, One-time Password),使用了该技术的产品除了有支付宝和微信,还有银行U盾、游戏令牌等硬件设备。在翼支付的离线二维码上,方案的设计概述为:1、 登录翼支付,服务器生成唯一token,通过加密方式(如https)传递到客户端。2、 打开付款码时,本地生成一段含有token与当前时时间戳的哈希值,如原创 2016-10-12 10:23:32 · 5606 阅读 · 1 评论 -
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why: Unable to download dat
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why: Unable to download data from http://ruby.taobao.org/ - bad response Not Found 404 (http://ruby.taobao.org/latest_specs.转载 2016-09-05 16:35:50 · 7569 阅读 · 1 评论 -
【WWDC2016 Session】iOS 10 推送Notification新特性
投稿文章,作者:一缕殇流化隐半边冰霜(微博)前言在今年6月14号苹果WWDC开发者大会上,苹果带来了新的iOS系统——iOS 10。苹果为iOS 10带来了十大项更新。苹果高级副总裁Craig Federighi称此次对iOS的更新是“苹果史上最大的iOS更新”。新的屏幕通知查看方式:苹果为iOS 10带来了全新的通知查看功能,即抬起iPhone的屏幕,用户转载 2016-09-12 11:17:46 · 910 阅读 · 0 评论 -
iOS 万能跳转界面方法 (runtime实用篇一)
在开发项目中,会有这样变态的需求:推送:根据服务端推送过来的数据规则,跳转到对应的控制器feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)思考:wocao!这变态的需求,要拒绝他吗?switch判断呗,考虑所有跳转的因素?这转载 2016-06-14 16:30:38 · 2111 阅读 · 0 评论 -
__block 与 __weak的区别与使用
1.__block对象在block中是可以被修改、重新赋值的。 2.__block对象在block中不会被block强引用一次,从而不会出现循环引用问题。3.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 4.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。 5.__block对象原创 2016-07-11 15:12:46 · 629 阅读 · 0 评论 -
Socket编程
一、网络各个协议:TCP/IP、SOCKET、HTTP等网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。 http协议 对应于应用层 tcp协议 对应于传输层转载 2016-06-04 18:55:58 · 629 阅读 · 0 评论 -
ios7.2之后的警告汇总
从今天开始这篇文章用来汇总我在学习工作中遇到的各种奇葩警告和报错1. CUICatalog: Invalid asset name supplied: (null)这个提示的意思是说你用了这个方法[UIImageimageNamed:name];但是这个name却是空的,所以就报了这个错了。解决方法,在项目中搜索[UIImage imageNamed:,然后打印原创 2016-01-26 16:03:11 · 508 阅读 · 0 评论 -
Xcode报错提示内容整理(持续更新)
一 、 code signing is required for product type 'Application' in SDK 'iOS 9.2' 或其他 例如7.0等在真机测试的时候往往会突然出现这样一个错误,code signing is required for product type 'Application' in SDK 'iOS 7.0' ,就是说代码签名证原创 2015-12-24 13:43:29 · 581 阅读 · 0 评论 -
上传AppStore被拒理由(持续更新)
1. 原文忘记了。大概是说不能自己写检测更新,和提示更新苹果内部应用AppStore自带更新功能, 所以苹果不允许你自己写更新。这是我最近被拒的原因原创 2016-01-15 14:40:35 · 679 阅读 · 0 评论 -
IOS 调用地图
百度地图URI API地址高德地图URI API地址腾讯地图URI API地址[[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidumap://map/"]][[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"io...转载 2019-04-10 15:11:03 · 540 阅读 · 0 评论 -
iOS多图选择器 PhotoKit (iOS 8以上)
先说兼容iOS 10这一块有关相册需要注意的ios10系统下真机NSLog,不打印数据,需要打印的话自行百度NSLog iOS10在infoPlist里面加 Privacy - Camera Usage Description, Privacy - Photo Library Usage Description,两个字段 iOS10需在Build Phases -- Link Bina...转载 2018-10-29 15:29:34 · 781 阅读 · 0 评论 -
适配iPhone XR/iPhone XS Max
快速适配先说结论,找设计师要2张启动图:iPhone XR:828px x 1792pxiPhone XS Max: 1242px x 2688px代码中使用了屏幕size判断是否是iPhone X的需要修改,请翻到最后。LaunchImage中只有iPhone X/iPhone XSXCode GM Bug?项目中使用LaunchImage来做启动图,那么有可能在XCod...转载 2018-10-10 10:17:54 · 620 阅读 · 0 评论 -
iOS 屏幕旋转问题总结
1、UIDeviceOrientation 设备的物理方向简介UIDeviceOrientation即我们手持的移动设备的Orientation,是一个三围空间,故有六个方向:1234567 UIDeviceOrientationUnknown, UIDeviceOrientationPortrait, // Device oriented vertically, hom...转载 2018-03-23 13:55:47 · 1792 阅读 · 0 评论 -
唐巧总结的40个国人iOS技术博客
博客地址RSS地址OneV's Denhttp://onevcat.com/atom.xml破船之家http://beyondvincent.com/atom.xmlNSHipsterhttp://nshipster.cn/feed.xmlLimboy 无网不剩http://feeds.feedburner.com/l转载 2017-08-30 17:06:27 · 493 阅读 · 0 评论 -
3分钟实现iOS语言本地化/国际化(图文详解)
前言语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用程序所展示的文字、图片等信息,能够让讲不同语言的用户读懂、看懂。进而提出为同一个应用程序适配多种语言,也即是国际化。语言国际化之所以又叫做语言本地化,这是站在每个用户的角度而言的,是指能够转载 2017-02-07 13:11:23 · 1046 阅读 · 0 评论 -
优化 App 的启动时间
这是一篇 WWDC 2016 Session 406 的学习笔记,从原理到实践讲述了如何优化 App 的启动时间。App 运行理论main() 执行前发生的事Mach-O 格式虚拟内存基础Mach-O 二进制的加载理论速成Mach-O 术语Mach-O 是针对不同运行时可执行文件的文件类型。 文件类型:Executable: 应用的主要二进制Dylib: 动转载 2016-11-14 15:04:38 · 790 阅读 · 0 评论 -
iOS应用间相互跳转
在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景。这就需要我们掌握iOS应用程序之间的相互跳转知识。下面来看看我们在开发过程中遇到的应用场景。1.应用间相互跳转应用场景使用第三方用户登录,跳转到需授权的App。如QQ登录,微信登录等。需要用户授权,还需要"返回到调用的程序,同时返回授权的用户名、密码"。应用程序推广,跳原创 2016-11-29 13:38:46 · 1234 阅读 · 0 评论 -
IOS TCP通讯
1.使用三方库AsyncSocket(对socket套接字封装),这里只演示tcp方式的通讯 2.ViewController 作为Server端. SendViewController作为Client端, 3.注意点: 1>服务器端注意点 服务器中NSMutableArray *allClientArray; 用来存放所有的socket连接,不然客户端连接之后就会断开 连接成功后死等数据过来 [转载 2016-06-04 18:54:30 · 1416 阅读 · 0 评论 -
AppDelegate生命周期详解
#pragma mark 在应用程序加载完毕之后调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ NSLog(@"didFinishLaunchingWithOptions-加载完毕");原创 2016-05-23 15:41:35 · 361 阅读 · 0 评论 -
你真的了解iOS代理设计模式吗?
本文是投稿文章,作者:刘小壮在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数。这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识。我会通过这些方面的知识,带大家真正领略代理的奥妙。写的有点多,但都是干货,我能写下去,不知道你有没有耐心看下去。本人能力有限,如果文章中有什么问题或没有讲到的点,请帮忙指出,十分感谢!转载 2016-05-19 13:33:31 · 1750 阅读 · 1 评论 -
iOS提交后申请加急审核
之前只是听过加急审核这回事,一直也没有用到过。昨天用了下果然很给力。昨天晚上将近8点(北京时间)提交应用,今天早上上班看了下已经通过了审核,而且可以在AppStore里下载到。话说加急的原因比较悲催,年前一直在做老版本的更新(一直在改别人代码的bug),临过年一周多的时候说不改了,做新版本的。心里终于舒服些,开始自己写新版本。2月7号上班到2月18号一直在做新版本。就在经理天天催,老板经常转载 2015-12-23 11:38:30 · 404 阅读 · 0 评论 -
iOS警告收录及科学快速的消除方法
前言:现在你维护的项目有多少警告?看着几百条警告觉得心里烦么?你真的觉得警告又不是错误可以完全不管么? 如果你也被这些问题困惑,可以和我一起进行下面的操作。其实大部分的警告都是很好改的,把自己整个项目的警告撸一遍应该也就耗费半小时的时间,一次麻烦带来之后的清净这样不好么?本文分为三个部分:1.简单粗暴的消除警告。 2.详细科学的消除警告。(包括警告收录) 3.添加警告。一、简转载 2015-12-23 11:37:10 · 420 阅读 · 0 评论 -
10个大坑,当你产品上架AppStore会遇到
相信大家一定非常「深恶痛疾」AppStore的一系列产品上架规则。每次产品上架,一定要折腾很久,让人蛋疼。所以特此发起本期沙龙,为大家带来一些经验。闫国荣:以下是现在能记忆起,遇到的问题。大家对此有不清楚的地方可以提出来,我详细介绍下。内容含敏感话题或对苹果不友好的信息(如苹果婊)使用了友盟的统计SDK,获取了IDFA但是上传填写无广告采用友盟I转载 2015-12-23 11:34:49 · 680 阅读 · 0 评论 -
在线加密解密很好的一个网站
http://tool.chacuo.net/cryptrsapkcs1pkcs8原创 2015-12-23 11:28:14 · 21168 阅读 · 0 评论 -
Xcode编译器里有鬼 – XcodeGhost样本分析
事情的起因是@唐巧_boy在微博上发了一条微博说到:一个朋友告诉我他们通过在非官方渠道下载的 Xcode 编译出来的 app 被注入了第三方的代码,会向一个网站上传数据,目前已知两个知名的 App 被注入。随后很多留言的小伙伴们纷纷表示中招,@谁敢乱说话表示:”还是不能相信迅雷,我是把官网上的下载URL复制到迅雷里下载的,还是中招了。我说一下:有问题的Xcode6.4.dmg的sh转载 2015-12-23 11:11:34 · 503 阅读 · 0 评论 -
设备尺寸
iPhone界面尺寸设备分辨率PPI状态栏高度导航栏高度标签栏高度iPhone6 plus设计版1242×2208 px401PPI60px132px147pxiPhone6 plus放大版1125×2001 px401PP转载 2015-12-23 11:08:05 · 864 阅读 · 0 评论 -
iOS、mac开源项目及库汇总
UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshCo原创 2016-03-02 13:44:09 · 3278 阅读 · 0 评论 -
iOS两种检测网络状态的方法
今天写了两个检测网络状态的方法第一个:使用这种方法时一定要保证statusbar没有隐藏。如果你的App隐藏了statusbar,那么你也就不能通过这种方法获得网络状态。+ (NSString *)networkingStatesFromStatebar { // 状态栏是由当前app控制的,首先获取当前app UIApplication原创 2016-01-26 17:29:20 · 487 阅读 · 0 评论 -
如何更好地限制一个UITextField的输入长度
要限制一个UITextField的输入字数(参考链接),首先想到的应该是通过UITextFieldDelegate的代理方法来限制:- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSS转载 2016-01-21 17:15:01 · 392 阅读 · 0 评论 -
nonatomic, retain,weak,strong用法详解
strong weakstrong与weak是由ARC新引入的对象变量属性ARC引入了新的对象的新生命周期限定,即零弱引用。如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自动设置为nil。@property(strong) MyClass *myObject;相当于@property(retain) MyClass *myObject转载 2015-12-30 14:53:18 · 388 阅读 · 0 评论 -
iOS导入字体
1.第一步找到你想用的字体的 ttf 格式。加入到你的工程的resouce目录下。2.在工程的plist中AddRow,“Fonts provided by application” ,然后添加key为item0,value为你刚才加入的testFont.ttf 。是这样,可以添加多个,使用的时候写对应字体名字就行。3.在你的工程就可以直接用了。xx.font转载 2016-01-11 11:46:18 · 1177 阅读 · 0 评论 -
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)
今天把xcode升级到7.0了,除了swift语法的一些问题,还有几个问题比较麻烦,其中一个就是包含标题的一个错误提示。开发环境:Xcode 7.0 开发语言:swift(引入了第三方的oc库) 出现场景:正常调试是没有问题的,但是在Archive的时候,报出了这个错误。问题详情:(null): URGENT: all bitcode will转载 2016-04-12 17:43:18 · 930 阅读 · 0 评论 -
iOS 获取图片某一点的颜色对象(UIColor*
UIImage+ColorAtPixel.h@interfaceUIImage (ColorAtPixel) - (UIColor *)colorAtPixel:(CGPoint)point; @end #importCoreGraphics/CoreGraphics.h> #import原创 2016-03-15 15:37:29 · 915 阅读 · 0 评论 -
关于ARC中block的用法 及weak self等(持续更新)
今天看了一篇文章。先暂时作为开头。有空更新前言在不久前看AFNetworking的源码时候发现了这么一句:12345678910// 不知道这行代码的使用场景的同学你该去自习看看ARC的注意事项和Block的使用了// AFNetworking的写法__weak __typeof(&*self)weakSelf =原创 2016-04-07 18:07:43 · 629 阅读 · 0 评论 -
UIKeyboardTypeNumberPad 数字键盘自定义按键
需求背景最近做一个搜索用户的功能,这里使用了UISearchBar。由于搜索的方式只有手机号码,所以这里的键盘要限制为数字输入,可以这么做:self.searchBar.keyboardType = UIKeyboardTypeNumberPad;1但是这里有个问题,就是数字键盘上面没有“搜索”按钮,这样子用户在输入完手机号码后无法搜索。所以这个时候我们需要自己添加一个转载 2016-03-24 18:04:14 · 2162 阅读 · 0 评论 -
IOS压缩解压缩
压缩?12345678910111213141516171819202122232425262728293031转载 2016-03-09 19:00:09 · 954 阅读 · 0 评论 -
iOS获取系统时间
//获得系统时间 NSDate * senddate=[NSDate date]; NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"HH:mm"]; NSString * locationString=[dateformatter原创 2016-01-25 14:38:36 · 448 阅读 · 0 评论