iOS开发
文章平均质量分 74
honey缘木鱼
一个 爱文字的程序猿
展开
-
NSUserDefaults数据保存报错:Attempt to set a non-property-list object.
在使用NSUserDefaults的时候插入数据有时候会报以下错误:image1.这种错误的原因是插入了不识别的PaymentModel数据类型,NSUserDefaults支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型。想保存自定义的数据类型时,我们...原创 2018-08-02 11:30:52 · 1545 阅读 · 0 评论 -
Apple 隐私政策
今天在发布新版本时,所有信息都已填完,准备储存提交,报了一个APP信息错误,如下图:什么鬼?必须添加隐私政策网址(URL),以前都是选填项。原来是Apple 隐私政策已于 2018 年 5 月 22 日更新。方法一填写的地址是注册页面的用户协议:方法二网上找隐私模板,然后放在服务器上。 ...原创 2018-12-30 15:28:51 · 350 阅读 · 0 评论 -
无需越狱手机,下载越狱版本IPA的方法
这两天在看一些逆向反编译的知识,很多工具的使用都是针对砸壳的ipa包,所以在了解这一部分的前提就需要:越狱手机,下载越狱的IPA文件。 学会对正版IPA进行脱壳。没有越狱手机又不会脱壳技术的我,找到了一种简单的方法下载ipa文件。1.打开PP助手官网 点击你所选中的APP,进入详情页 3.鼠标右键,点击检查元素4.找到代码中下载越...原创 2019-04-30 16:13:01 · 9080 阅读 · 0 评论 -
使用class-dump 和Hopper实现简单反编译
一、Class-Dump1.Class-Dump是一款可以导出头文件的命令行工具,改程序用于检查objective - c运行时信息存储在Mach-O文件,它生成类的声明,类别和协议。2.安装后,把里面的文件 /usr/local/bin 目录下3.把IPA文件归档处理4.打开刚才归档的 /Payload 目录下的.app 文件5.打开终端...原创 2019-04-30 16:14:37 · 1183 阅读 · 0 评论 -
iOS实现代码混淆
从事iOS开发几年了,从未对代码加密加固,总是认为iOS APP一般是通过AppStore发布的,况且苹果的系统又很难攻破,根本就无需加密,但使用class-dump和Hopper这两款工具就可以导出头文件和分析代码逻辑,还有马甲包过审这快也需要代码代码混淆的功能,下面就记录下自己的实现过程!1.打开终端,cd到项目目录Rescources文件夹下以桌面为例2.创建c...原创 2019-04-30 16:17:04 · 1520 阅读 · 1 评论 -
iOS苹果内购(详细步骤)
一.设置付费协议1.进入开发者平台,点击如下图所示:设置2.查看付费同意条款设置付费协议 添加这3个信息 4.添加银行账户 5.选择报税表 默认美国 6.根据报税表填写报税情况,根据自己实际情况,在这里我们需要选择NO,后面选了几个勾,以为可以,后面报错了! 三者必须填写 注意:这里可以随便填写。 7.填写...原创 2019-04-30 16:18:33 · 2702 阅读 · 1 评论 -
因证书问题,Xcode 真机调试时经常遇到的问题
1. This application’s application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed. 报错截图 报错原因:虽然开发证书不同,但是手机上已经...原创 2019-04-30 16:20:29 · 1218 阅读 · 0 评论 -
linker command failed with exit code 1 (错误总结)
1. 把CGRectMake 写成CGRectScaleMake 报错如下图: 根据报错提示,问题出现在“CGRectScaleMake”,自己哪里用到这个了呢?全局搜索,发现自己太粗心大意了: 最后把“CGRectScaleMake”改为“CGRectMake”重新编译即可! 2. 重复文件 报错如下图: 根据报错提示,...原创 2019-04-30 16:22:16 · 5322 阅读 · 0 评论 -
This iPhone is running iOS 12.2(16E227),which may be supported by this version of Xcode
手机被自动升级了系统,在 Xcode上真机调试时,报如下图问题:不想跟新Xcode的情况下:1.下载Xcode真机运行支持包(16E227),链接:https://pan.baidu.com/s/1Y-HXL4rpwS3MKcvpxz-Y3w提取码: v3sq2.跟新支持包打开文件夹/Xcode.app/Contents/Developer/Platforms/iPhone...原创 2019-05-15 22:53:26 · 2452 阅读 · 0 评论 -
Multiple commands produce xxxxxxxxxx app/Info.plist':
报错如下图所示:原因: 升级为Xcode10与原来的项目不兼容解决方案:删除如下图info.Plist文件。原创 2019-05-15 22:55:27 · 2517 阅读 · 0 评论 -
iOS几款实用的工具类demo
这段时间感觉自己很忙,忙着挣钱,哎!生活不易啊!言归正传,这段时间根据要求做了几个小项目,就把主要用到的点说一下,有需要的朋友,可以相互学习!一. 用UICollectionView左右滑动式布局效果图:UI设计2.主要功能点:实现定时播放 重复播放 中间图片显示一定比例放大3.主要功能代码:- (NSArray<UICollectionViewLa...原创 2019-05-16 20:27:36 · 1012 阅读 · 0 评论 -
判断手机上是否安装某个APP(iOS)
今天项目中有一需求,判断手机上是否安装百度或高德地图,如果安装了,点击导航时选择百度,高德,或苹果地图,如果没有安装则直接苹果地图导航。具体实现:获得百度和高德的url Scheme 百度地图:baidumap 高德地图:iosamap2.添加到app项目中的info.plist白名单3.用Application 的canopenUrl 的方法判断 (YES代表已安装...原创 2019-05-29 16:04:36 · 4448 阅读 · 1 评论 -
UIButton颜色渐变 titleLabel字体不显示
渐变关键代码:CAGradientLayer *gradientLayer0 = [[CAGradientLayer alloc] init]; gradientLayer0.frame = btn.bounds; // 创建渐变色数组,需要转换为CGColor颜色 gradientLayer0.colors = @[ ...原创 2019-06-24 19:56:38 · 4528 阅读 · 1 评论 -
程序员经常访问的技术网站
作为一个工作几年的程序员,分类总结一下经常会访问的技术网站。一.项目源码(1).Github 代码托管GitHub的使用可是程序员在职业生涯中技能必不可少的技能。它可以做Git代码托管平台,很多开源项目都放在Github上,因此我们就可以借鉴别人的源码方便自己项目中的开发。(2).CocoaChina— (iOS )CocoaChina是全球成立最早规模最大的苹果开发中文站,现致力为...原创 2019-06-29 15:40:19 · 767 阅读 · 0 评论 -
Command PhaseScriptExecution failed with a nonzero exit code
运行xcode模拟器时如图所示:这是因为Xcode10是默认选中的最新的New Build System(Default),在这个编译系统的环境下,打包的CI脚本一直会报错。解决方案:Xcode菜单栏选择File-- Workspace Setting,把new build system(Defalt)切换到 Legacy Build System 在模拟器上运行就OK!...原创 2018-12-29 15:44:27 · 61734 阅读 · 5 评论 -
iOS 网络图片转为UIImage 和微信分享时缩略图片的压缩
在写微信分享项目时,发现微信设置缩略图:我们的图片是从阿里云那里获取的网络图片,需要把网络图片转化为UIImage,下面就是方法:+(UIImage *) getImageFromURL:(NSString *)fileURL{ UIImage * result; NSData * data = [NSData dataWithContentsOfURL:[NS...原创 2018-11-22 15:32:12 · 4226 阅读 · 0 评论 -
Xcode 9.0 报错, Safe Area Layout Guide Before IOS 9.0 和launch screens may not set custom classnames报错
上面错误的解决方法:按照下图删除如上图选中删除后,再次运行可能会遇到launch screens may not set custom classnames错误解决办法如下:就OK!原创 2018-11-12 11:34:19 · 1348 阅读 · 0 评论 -
两个app应用之间的跳转
一,应用跳转的原理从一个应用跳转到另一个应用,作为APP开发者,最熟悉的莫过于第三方登录,支付宝,微信支付时,那时候我们可能仅仅按照集成文档一步一步操作,在文档中配置很多类似URL Schemes,如下图: 一般的配置下面我们进入正题的为什么这么配置:1、一些概念的补充协议:双方互相遵守的一种规范,只有遵守共同的协议规范才能进行彼此的通信。比如我们最熟悉的网...原创 2018-08-02 11:44:06 · 9183 阅读 · 0 评论 -
duplicate symbols for architecture arm64的问题结决方法
问题图片遇到这个 问题有三种 方法查看问题所在:1.首先排查是否有名字重复的文件。(查看下自己的项目中创立的文件名和引入的第三方文件名是否重复)2.检查是否在#import头文件的时候,不小心把.h写成了.m(可以全局搜索是否是这个问题)3.第三种方式 第三种方式仔细 查看下第二张图片的不同,仅仅只是 差个 static ,自己手误,关键xcod...原创 2018-08-02 18:52:44 · 12694 阅读 · 0 评论 -
关于支付宝授权登录获取用户信息
这几天公司有个获取到支付宝的登录用户信息的需求,以前知道的第三方登录,没有做过支付宝登录,在网上查找资料并不是很多且不全面,促使我自己不得不写一篇完整的流程;第一步:1.去支付宝开发者平台的开发者中心,在自己的应用上添加支付宝登录功能如下图:支付宝后台2.下载demo 里面有支付宝授权的代码,但是不完整,这时你就可以看开发文档了(点击如图所示的app支付宝登录-》api列表 )...原创 2018-08-03 10:59:25 · 8929 阅读 · 1 评论 -
微信,支付宝,银行卡提现功能简述
流程应该是这样:1.用户在app上输入自己的支付宝帐号,微信账户,银行卡信息app把这个帐号post到自己的server端server再验证,再根据用户的额度之类的向用户的支付宝帐户转入相应的金额所以其实在ios app端不会进行具体的转帐操作,app只是收集用户的帐号信息,转帐应该是server端去操作的。至于怎么向支付宝发起转帐请求,就不知道了,支付宝应该会提供相应的...原创 2018-08-03 11:00:29 · 5490 阅读 · 1 评论 -
ios 开发常用技巧
1.TableView不显示没内容的Cell怎么办?self.tableView.tableFooterView = [[UIView alloc] init];2.自定义了leftBarbuttonItem左滑返回手势失效了怎么办?self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initW...原创 2018-08-03 11:03:59 · 210 阅读 · 0 评论 -
多线程与NSTimer
1.Ios主线程,也称UI线程,在主线程中使用NSTimer,runloop是自动开启的,(如果NSTimer当前所处的线程正在进行大数据处理(假设为一个大循环),NSTimer本次执行会等到这个大数据处理完毕之后才会继续执行(类似操作列表的滑动过程,定时器不会),所以用NSRunLoopCommonModes模式,而NSDefaultRunLoopMode不可行)。在主线程中调用NST...原创 2018-08-03 11:06:15 · 941 阅读 · 0 评论 -
关于iOS实现前台,后台,锁屏或关闭app语音播报
公司要求像支付宝收款一样,收到推送后实现语音播报功能,之前没有做过,特此机会研究一下。用到的技术点:1.如果对语音要求不是特别高的情况下,用苹果系统自带的AVSpeechUtterance可以实现,也可以用讯飞的sdk。2.之前公司用的是友盟推送,可以实现基本的弹框形式推送,为了语音播报在锁屏情况正常,我增加了iOS10 推出的UNNotificationServiceExt...原创 2018-08-03 11:07:50 · 3804 阅读 · 0 评论 -
iOS ipa包进行重新签名
1.为什么重签名?重签名可以把越狱市场上的app重新用我们自己的开发者证书进行签名,然后我们就可以在我们不越狱的手机上安装越狱应用了。2.如何重新签名?网上有很多重新签名的方法,最简单一种是:安装好brew,先用brew安装ruby,然后用gem安装sigh。1、brew install ruby2、sudo gem install sigh安装好后,...原创 2018-08-03 11:09:12 · 9402 阅读 · 2 评论 -
简单的方法完成项目上传到github
写了一个不错的项目想和大家分享一下,准备放在以前的github账号上,打开网站,发现在自己不知如何上传了,问度娘,几种方法都模糊 不清,几天了自己始终 没有完成上传,一直认为自己对任何事请没有恒心,今天给自己下了死命令,一定要完成,功夫不负有心人,这个小坑终于迈过去了。1.准备工作.1 下载安装git客户端 http://code.google.com/p/git-osx-ins...原创 2018-08-03 11:10:23 · 196 阅读 · 0 评论 -
[!] No `Podfile' found in the project directory.
从网上下载的参考项目,运行时遇到的错误如下:diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock. Run 'pod instal...原创 2018-08-03 11:11:12 · 14678 阅读 · 0 评论 -
防护IOS APP安全的几种方式(详解)
1.URL编码加密对iOS app中出现的URL进行编码加密,防止URL被静态分析2.本地数据加密对NSUserDefaults,sqlite存储文件数据加密,保护iOS app的帐号和关键信息。3.网络传输数据加密对iOS app客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取4.方法体,方法名高级混淆对iOS app的方法名和方法体进行混淆,保证源码被逆向后无法解析代码...原创 2018-09-27 16:17:16 · 2228 阅读 · 2 评论 -
"Missing Push Notification Entitlement"警告-----以及解决方法
打包上传时,突然收到一封苹果邮件警告,原文如下:Missing Push Notification Entitlement - Your app appears to include API used to register with the Apple Push Notification service, but the app signature’s entitlements do not...原创 2018-10-19 15:18:43 · 8052 阅读 · 1 评论 -
iOS 如何把图片资源打包成bundle文件及遇到的坑(详解)
把之前打包图片资源库操作步奏及遇到的坑在此记录下。1. 创建bundle 如图所示:找到如图所示:输入所创建的图片库名称2. 点击创建好的bundle ,修改属性(1.)"Base SDK" 设置为 "Latest iOS (iOS 11.2)" (Xcode 9.2为例) "Build Active Architecture Only" 设置为...原创 2018-11-02 09:24:22 · 5393 阅读 · 0 评论 -
用reloadRowsAtIndexPaths刷新单个cell 跳动问题
一个很常见的需求就是在一个cell上点赞,评论等操作时,需要刷新单个cell对象,常用的方法即为:[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:index inSection:0],nil] withRowAnimation:UITableViewRowA...原创 2019-07-25 19:15:17 · 1902 阅读 · 0 评论