![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS开发
文章平均质量分 60
尘雨
一个工匠
展开
-
iOS13.x中 Universal Link的几个勘误
关于iOS系统中, 从HTML5拉起 app的机制,通常都会用到Univeral link的几个重要勘误如下Universal link支持二级域名,乃至三级域名,已经过验证。网传的不支持三级域名并不正确。apple的官方文档中,也只是提到在app的associate domains设置的域名列表中可以使用通配符*,并且遵循最长匹配规则进行匹配。官方原文如下To match all ...原创 2019-11-17 15:39:04 · 708 阅读 · 0 评论 -
Circular dependency issuse on cocoapods version(0.36.0) 完全解决方案(非降版本)
此前的文章中,曾经提到在cocoapods依赖管理版本如果超过0.34.4,比如0.35, 0.36.0等版本中。执行"pod install" 或者 "pod update" , xmppframework 会出现循环依赖问题。There is a circular dependency between XMPPFramework/Core and XMPPFramework/Authent原创 2015-03-17 18:14:52 · 3228 阅读 · 0 评论 -
iOS6.1 & iOS 7 & iOS8 判断沙盒文件或者目录是否存在,以及判断是文件还是目录的一个隐藏问题
- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory通常,iOS系统中判断文件或者目录是否存在,可以用上面这个API。第二个参数 isDirectory是个传出参数, 用于返回,是文件还是目录。一般两种情况会使用这个API需求一、 判断文件或者目录是否存在需求二.原创 2014-12-27 16:33:18 · 11759 阅读 · 0 评论 -
使用CFStringTransform 将汉字转换为拼音
Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);之前做通讯录相关的一些App时,有一个比较常用的算法是将汉字转换成拼音。当时采用的做法是:将各个拼音段的首个汉字(按Unicode排序)做成两个数组,一个数组存拼音,另一个数组存转载 2014-12-03 08:55:46 · 1211 阅读 · 0 评论 -
升级Mac os x 10.10+xcode6.1之后,Cocoapods出现问题的解决方案
在升级Mac OS X 10.10+Xcode 6.1之后,Cocoapods的依赖库管理也相应的进行了升级。目前最新的Release版本是 0.34。在之前的版本中,进行库更新和管理时,会遇到如下错误/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kerne原创 2014-11-04 10:46:43 · 9254 阅读 · 1 评论 -
xcode在Archive生成安装包时遇到ld: library not found for -lPods
这个问题很容困扰,一般有以下几个方案进入target的 Build Phases- Link binary Library,找到libPods.a,如果是红色的,删除,即可其他解决方案Build Setting > Other Linker Flag:Try to change wherever $(TARGET_BUILD_DIR) to $(BUILT_PRODUCTS原创 2014-11-01 21:55:51 · 8905 阅读 · 1 评论 -
MacOS10.13.6_Xcode9.4.1_iOS11.4.1环境,编译lame静态库, libmp3lame.a,支持真机和模拟器全指令集,bitcode
2018年9月4日 修订1. lame版本升级至lame3.100https://sourceforge.net/projects/lame/files/lame/2. build脚本编译更新, 请仔细阅读文中脚本代码的改动https://github.com/kewlbear/lame-ios-build3. 支持bitcode4. 支持xcode9.4.15. 支持...原创 2014-10-31 11:18:33 · 17579 阅读 · 20 评论 -
CocoaPods为工程的所有target增加依赖支持
在使用CocoaPods时,pod install默认只能为xcode工程的第一个target添加依赖库支持。如果要为所有的target增加可按照如下步骤进行1. 编辑Podfile文件source 'https://github.com/CocoaPods/Specs.git'platform :ios, '6.1'target :TargetName1 do po原创 2014-10-29 18:41:31 · 8093 阅读 · 1 评论 -
使用CocoaPods来做iOS程序的包依赖管理
前言每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如Java: maven,IvyRuby: gemsPython: pip, easy_installNodejs: npm随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。CocoaPods简介CocoaPods是一个负责管理iOS项目中第三方转载 2014-03-23 16:40:43 · 1084 阅读 · 0 评论 -
NSOperationQueue与GCD的使用原则和场景
首先,我们要明确NSOperationQueue与GCD之间的关系NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象。其次,我们要区别两者的不同GCD仅仅支持FIFO队列,而NSOperationQueue中的队列可以被重新设置优先级,从而实现不同操作的执行顺序调整。GCD不支持异步操作之间的依赖关系设置。如果某个操作的依赖另一个操作的数据(生产者-消费者模型是其中之一),使用NSOperationQueue能够按照正确的顺序执行操作。GCD则没有内建的依赖关系支持。NS原创 2014-03-24 11:01:42 · 15077 阅读 · 2 评论 -
申请iOS的IPD开发者帐号(企业$99)2014版流程(含邓白氏D-U-N-S码流程)
2009年和2010年的流程,已经完全作废, 2011年到2013年的流程也已经变化多次。这篇文章参考其他网友的文章, 原文链接如下http://www.cocoachina.com/newbie/basic/2014/0325/8038.html,以及自己两次申请的经验,适用于2014年。2014年的流程取消了传真营业执照和purchase form的过程,改成在线申请时填写。这与2011-转载 2014-03-31 00:13:53 · 22713 阅读 · 1 评论 -
CocoaPods 0.35.0版本, 出现循环依赖的解决办法
Cocoapods目前最新的正式版本是0.35.0,如果升级到这个版本,并且在project中使用XMPPFramework,在pod install之后会出现如下循环依赖的问题There is a circular dependency between XMPPFramework/Core and XMPPFramework/Authentication解决方案,是要么放弃使用XMP原创 2014-12-27 12:41:09 · 8584 阅读 · 1 评论 -
AVAudioSessionPortOverrideSpeaker 和 AVAudioSessionCategoryOptionDefaultToSpeaker区别
本文部分翻译了官方对这两个属性的描述。链接如下,此外加入个人的使用体会https://developer.apple.com/library/ios/qa/qa1754/_index.html问题的起源,在iOS中,播放声音时,输出到扬声器的需求。两个属性设置的区别The difference is that setting the AVAudioSessionPortOver原创 2015-02-11 14:34:04 · 14111 阅读 · 1 评论 -
XCode10更新点, 以及脚本打包所需的ExportOptions.plist文件更新
更新点1. -lstdc++6.0.9不再被支持, 必须从build phases的 link binary with libraries移除.2. 调用打包导出前, 原本需要下面的语句切换到系统的rvm, 现在不需要了可以取消.[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" &a...原创 2018-09-19 11:50:00 · 7334 阅读 · 0 评论 -
xcode7&8之后,xcodebuild使用exportOptionsPlist参数导出ipa
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" && rvm use system在Xcode 7.0和8.0之后。使用xcodebuild -exportArchive -exportFormat ipa 导出ipa会有个警告,这个警告不会影响导出。只是指出一种新的导出方式。首先看如下的命令行原创 2016-12-16 11:23:55 · 10571 阅读 · 1 评论 -
IAP(In-App Purchase) 集成笔记-持续更新
IAP(In-App Purchase) 集成笔记-持续更新IAP的集成已经有很多教程,包括apple官方的说明,足够详细,但其过程中一些坑免不了要遇到,总结一些经验,避免绕弯路。和apple打交道的模式永远不是技术为主,而是如何了解规则,应对规则我的App该不该集成IAP?大多数App不需要集成IAP,除非类似游戏道具,金币。或者App的功能的全部或者部分依赖于其他虚拟服务和商品,或者硬件,而这些原创 2016-05-10 13:40:32 · 1617 阅读 · 0 评论 -
CocoaPods安装和使用教程
Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage目录CocoaPods是什么?如何下载和安装CocoaPods?如何使用CocoaPods?场景1:利用CocoaPods,在项目中导入AFNetworking类库场景2:如何正确编译运行一个包含CocoPods类库的项目Co转载 2014-03-23 16:19:09 · 915 阅读 · 0 评论 -
Jenkins with XCode 持续化集成(原创)
Jenkins with XCode 持续化集成(原创)本文力求以简明,准确的描述,分享使用Jenkins实现XCode持续化集成过程中的一些问题和解决方案。Jenkins下载和安装可从如下地址下载Jenkins安装,进入页面后选择右侧Mac OS 下载后的文件jenkins-1.643.pkg,1.643版本 下载完成后,双击。在安装向导中,直接点击 continue 按钮,原创 2016-01-06 10:03:54 · 2668 阅读 · 0 评论 -
Mac OS X 10.11安装cocoapods的修正篇
Mac OS X 10.11安装cocoapods的修正篇目录Mac OS X 1011安装cocoapods的修正篇目录问题描述解决方案1解决方案2解决方案3问题描述OS X 10.11 升级,虽然官方声称只是一个小的升级,但对于开发者而言,cocoapods需要重新安装,但按照以前的安装方式,执行sudo gem install cocoapods会得到如下结果ERROR: Whi原创 2015-10-11 13:18:32 · 11559 阅读 · 7 评论 -
UITableView beginUpdate和endUpdate使用的前提
UITableView有两个方法,用于单元格动画变化的方法,beginUpdate,endUpdate,这两个方法使用时需要注意。如果使用不当,会造成crash 在了解使用注意事项之前,我们先看官方文档的描述。 Call this method if you want subsequent insertions, deletion, and selection operations (for原创 2015-07-15 14:36:14 · 9262 阅读 · 1 评论 -
如何使用Shell脚本编译生成Archive文件并导出签名IPA文件。
如何使用Shell脚本编译生成Archive文件并导出签名IPA文件。1. build 脚本说明本Shell脚本用于build,XCode的workspace源代码工程,并导出成可重签名的IPA文件,用于分发测试安装文件和用于提交appstore审核的文件。实现辅助产品开发,测试的配置管理工作。使用本脚本需要以下环境 - Mac OS 10.9+ - XCode 6.0 or later and原创 2015-04-20 10:25:57 · 6344 阅读 · 0 评论 -
升级cocoapods 0.36.0之后,解决更新的部分依赖库,不是最新版本的问题
在升级到cocoapods 0.36.0之后,使用原本podfile配置,在重新执行pod install之后,一些依赖库的版本,低于github上的最新版本。可按照下列配置。指定git,强制使用最新版本source 'https://github.com/CocoaPods/Specs.git'platform :ios, '6.1'pod 'IQKeyboardManage原创 2015-03-18 18:12:45 · 3467 阅读 · 0 评论 -
Objective-C相关Category的收集
Objective-C相关Category的收集发布于:2014-02-12 16:08阅读数:5087 Categories是给你得不到源码的classes增加功能的一种方法。这个页面收集一些相关的Category,并且持续更新,你可以订阅关注。“” 阅读器Objective-CCategory转载自 cocoachinaCategories是给你转载 2014-02-19 16:52:42 · 1071 阅读 · 0 评论 -
OS学习之路八(GCD与多线程)
GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。 GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得到执行(但不保证一定先执行结束)。 通过与线程池的配合,dispatch queue分为下面两种: Se转载 2013-08-30 00:19:55 · 1141 阅读 · 0 评论 -
IPhone程序发布到应用程序商店的流程
IPhone程序发布到应用程序商店的流程用传真机试过N次,又用faxzero试过N次以后,全部都提示失败。但是,世事如此难料,今天凌晨收到了信用卡境外消费99美元的短信提醒,早上起来信箱里就已经收到了激活码,点击链接就激活了自己的开发者账号。也不知道是哪一次传真发成功了。登录开发者中心,右侧有个Portal的链接,点击进去就是自己账号的管理中心,初次进入有个向导,可以帮转载 2012-12-15 16:20:45 · 1026 阅读 · 0 评论 -
google map 地址反向解析服务
http://ditu.google.com/maps/geo?output=json&oe=utf-8&q=31.31832,%20120.6570{ "name": "31.31832, 120.6570", "Status": { "code": 200, "request": "geocode" }, "Placemark": [ {原创 2012-08-19 20:36:59 · 1144 阅读 · 0 评论 -
Xcode 4.3.2 (4E2002)错误提示Storyboards are unavailable on iOS 4.3 and prior的解决方法
Xcode 4.3.2 (4E2002)错误提示Storyboards are unavailable on iOS 4.3 and prior的解决方法 今天尝试用Xcode建立基于5.0+的Storyboards的项目时发现了一个小bug:尝试将项目Deployment Target切换回4.3编译,然后提示Storyboards are unavailable on iOS转载 2012-07-06 16:56:44 · 2336 阅读 · 2 评论 -
UINavigationbar的背景修改方法集合
UINavigationbar背景修改的方法代码如下:123456789@implementationUINavigationBar(CustomImage)-(void)drawRect:(CGRect)rect{UIImage *image=[UIImage imageNamed:@"nav转载 2012-07-05 20:44:37 · 1658 阅读 · 0 评论 -
UINavigationController与UITabBarController
UINavigationController与UITabBarController @interface __2AppDelegate : NSObject {UIWindow*window;UINavigationController *navController1;UINavigationController *navController2;转载 2012-07-05 19:32:55 · 733 阅读 · 0 评论 -
新视图 pushViewController presentModalViewController 用法
这两个方法都是必须要ViewController, 是建立在UINavigationController之上的。SQLiteViewController *baSQLiteViewController = [[SQLiteViewController alloc] init];UINavigationController *nav = [[UINavigationController al原创 2012-05-22 13:33:32 · 13126 阅读 · 2 评论 -
UINavigationController使用详解
UINavigationController使用详解 有一阵子没有写随笔,感觉有点儿手生。一个多月以后终于又一次坐下来静下心写随笔,记录自己的学习笔记,也希望能够帮到大家。 废话少说回到正题,UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的转载 2012-05-22 13:39:08 · 2547 阅读 · 0 评论 -
xcode4.2/4.3 配置svn
1.首先从服务端获得svn地址https://ip地址/svn路径2. 为这个IP设置一个名称,因为xcode只能识别域名不能使用ip作为svn服务器地址。 运行终端 输入 sudo vi /etc/hosts 在显示的表中将ip与域名绑定 如 127.0.0.1 svnserver 最后输入:wq完成编辑如果hosts为只读则采用以下解决方法: a.打开f原创 2012-05-31 15:55:40 · 1397 阅读 · 0 评论 -
iPhone程序连接到真机调试(注册了APP ID及购买了IDP开发者授权的前提下)
对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元。然后要创建证书请求CSR,创建步骤如下:设置OCSP和CRL为关闭。Mac OS 中,打开应用程序,找到 钥匙串访问(Keychain Access)工具打开主菜单 - 证书助理(Certificat转载 2012-05-30 17:45:51 · 1219 阅读 · 0 评论 -
多台Mac电脑使用同一个apple开发者账号开发测试
今天给自己的macbook装上了公司的apple开发者账号,以前总是用我的机器写代码但因为没有开发者账号不能给真机装也不能在真机上测试,想测试还需要把代码转移到其他机器上,很不方便,刚在网上找到一些方法装上了账号。感觉这个问题还是很普遍的,而且今天就为装这个也费了不少功夫有很多方法都没走成,因此把它总结出来,方便更多人能很快装上~ 我的情况是这样的,公司有一个开发者账号,我个人转载 2012-12-15 16:15:41 · 1373 阅读 · 0 评论 -
CFNetwork编程指南
CFNetwork编程指南 CFNetwork是一种低层的高性能架构,它是机遇BSD sockets的基础上做了拓展,提供标准化抽象的API简化FTP HTTP服务器交互任务以及解决DNS主机解析。cfnetwork不管是从理论上还是实际上都是基于BSD sockets的,NSURL是用于使用标准internet协议与服务器交互的子类。Web Kit是用于在窗口显示web转载 2012-12-22 01:26:03 · 1208 阅读 · 0 评论 -
Working with Streams
Working with Streams 本章讨论了如何创建,打开,并就读取错误检查和写入流。它还介绍了如何读取读取流,如何写入一个写入流,如何防止阻塞时读取或写入一个流,并通过代理服务器如何导航流。Working with Read Streams我们从为一个文件创建可读流开始,列表2-1,所示。Listing 2-1 Creating转载 2012-12-22 01:23:18 · 1028 阅读 · 0 评论 -
(译)Objective-C的动态特性
这篇译文,很清楚的说明了OC的动态特性,对于开发的架构设计有着非常强的指引作用。原文出处http://blog.leezhong.com/ios/2013/08/03/dynamic-tips-and-tricks-with-objective-c.html(译)Objective-C的动态特性,这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。过去转载 2013-08-30 00:03:30 · 1141 阅读 · 0 评论 -
UIView上添加了一个按钮和一个单击手势的事件相应,互相不影响的处理方法。。
tapGesture.delegate = self;- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ CGPoint location = [touch locationInView:self.view]; if原创 2013-08-29 23:52:26 · 4852 阅读 · 0 评论 -
FMDB官方使用文档 G-C-D的使用 提高性能(翻译)
FMDB官方使用文档 G-C-D的使用 提高性能(翻译) 来自:https://github.com/ccgus/fmdb由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍。与此同时,把SQLite的文档页 http://www.sqlite.org/docs.html 加到你的书签中。自动引用计数(APC)还是手动内存管理呢?转载 2013-08-29 23:39:35 · 1256 阅读 · 0 评论 -
苹果应用商店审核指南2013版
前言我们很高兴您付出宝贵的才华与时间来开发iOS应用程序。不论从职业还是报酬的角度看,对于成千上万的开发者这一直都是一项值得投入的事业。我们希望帮助您加入这个成功的群体。我们出版此《应用程序商店审核指南》(App Store Review Guidelines),就是希望帮助您开发应用程序时避开某些问题,以便于您在提交应用程序(App)时,可以加快审批流程的速度。虽然我们很少对书籍和歌曲进转载 2013-08-04 15:48:39 · 1509 阅读 · 0 评论