重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前言
创新互联公司专注于企业成都营销网站建设、网站重做改版、下花园网站定制设计、自适应品牌网站建设、HTML5建站、商城网站定制开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为下花园等各大城市提供网站开发制作服务。
iOS组件化开发很重要的一个技术点:CocoaPods私有库的搭建。而且最近答应一个网友要写一篇关于《CocoaPods搭建私有库》相关的文章,于是结合网上的一些blog和实际操作,《CocoaPods搭建私有库》这篇文章就诞生了。
文章目录(即具体步骤)
一、创建一个spec Repo的私有远程仓库 和 一个存放pod所需的项目工程文件的远程仓库;
二、创建spec Repo;
三、创建pod的所需的项目工程文件,并上传到远程私有仓库;
四、向私有的spec Repo远程仓库中提交podspec;
五、使用自己创建的私有pod库;
具体步骤
一、创建一个spec Repo的私有远程仓库 和 一个存放pod所需的项目工程文件的远程仓库;(注:github创建私有项目是收费的,所以这里选择免费的“码云”)
创建XWSpec远程仓库,用来存放本地spec
创建XWPodProject远程仓库,用来存放项目工程文件
二、创建spec Repo;
前往文件夹 ~/.cocoapods/repos,打开终端,在终端切换到当前目录下,然后进行pod repo add操作,在终端输入:
pod repo add XWSpec
注: 是spec Repo的私有远程仓库地址。
三、创建pod的所需的项目工程文件,并上传到远程私有仓库;
1、创建本地pod所需的项目工程文件
在终端,cd切换到某个目录下,这里我选择的是桌面上文件夹testPod目录下的,然后执行pod lib create XWPodLib如图:
然后进到到XWPodLib里面找到Classes中的"ReplaceMe.m"文件删除,然后将自己所需要的文件放到这里目录下,如下图:
接下来最重要的一步,也是很容易忽略的一步,不然提交后检查会出现很多问题。
具体步骤:
(1)cd 到Example文件下,然后pod install下,更新Example项目的pod。
(2)打开example中的项目,找到项目中的podspec文件,更改spec。
修改完成后,cd 到XWPodLib目录下,然后验证本地podspec文件有效性,终端命令如下:
pod lib lint XWPodLib.podspec
2、本地项目文件上传到远程仓库中
将本地项目与远程仓库相关联,使用终端命令:
git remote add origin 远程仓库地址
push到远程的时候出现这种问题,于是就先pull ,于是就出现了下图的问题(即拒绝合并不相关的历史,确实本地新加的内容还从未和线上连接过):
之后输入如下命令(即告诉允许合并不相关的历史内容):
git pull origin master --allow-unrelated-histories
解决一下冲突就可以了。解决冲突后上传到远程仓库。
这样远程仓库就有我们本地的项目了
然后进行.podspec文件本地和远程有效性的验证,终端命令如下:
pod spec lint XWPodLib.podspec
注意:
如果私有库中依赖私有库,则验证podspec文件的时候需要加上–sources参数,否则会出现找不到你依赖的私有库,示例如下图:
显示我们没有远程仓库打标签,这里需要重点注意的是,我们给打的标签值要与podspec文件中的版本号一致。
打标签的步骤如图:
之后,再次使用pod spec lint XWPodLib.podspec,进行.podspec文件本地和远程有效性的验证
四、向私有的spec Repo远程仓库中提交podspec;
使用 pod repo push XWSpec XWPodLib.podspec 命令把私有库添加到私有repo中。
注意:仍然在本项目的目录路径下进行操作:
前往文件夹 ~/.cocoapods/repos去查看XWSpec目录下的文件如下:
之后,可以通过终端命令查看第三方框架仓库源,命令如下:
pod repo
然后使用 pod search XWPodLib 就可以搜索出来了。
到此,创建私有库成功了。
五、使用自己创建的私有pod库;
使用source 指定:
然后跳转到项目目录,执行终端命令pod install,之后就可以使用了。
CocoaPods开源库的搭建
CocoaPods搭建私有库
CocoaPods搭建私有库遇到问题
CocoaPods私有库的升级维护
SKStoreReviewController之程序内评价
App应用程序图标的动态更换
开源框架 MGJRouter_Swift
iOS的MVP设计模式
iOS插件化
iOS FMDB的使用
Swift之ReactiveSwift
OC之ReactiveCocoa
OC之ReactiveCocoa进阶
iOS 性能考虑
能啊。悟空tv游戏分类集结各种类型的游戏,看直播,解说的好选择,现在还是很方便下载的,不断完善,在之前只有安卓系统的情况下,很快就有了iOS版,适应性很强。
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有65535,应用之间的互相调用等等问题,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的iOS移动开发,不会底层、算法、插件化、组件化,80%以上的面试都过不了。
阿里P8大佬每天熬夜到凌晨一两点,花了将近半个月时间将iOS逆向安防、算法、架构设计、多线程,网络进阶,还有底层、音视频、Flutter等等、iOS第三方开源框架整合成了一套系统知识笔记PDF,长达1042页!相信看完这份文档,你将会对这些iOS第三方框架有着更深入、更系统的理解。
底层原理毫无疑问还是iOS开发现在必备能力。
对象底层原理
指针与内存的一些相关面试
weak 弱引用
block 的原理
AutoreleasePool 原理
Runloop 的原理
Runtime相关、消息转发
性能优化以及架构能力相对比之前要求越来越多!
①性能优化方面:tableView的优化 - 界面卡顿原理 - app 性能分析 - 项目优化
②架构方面: 设计模式、解耦手段、组件化....
数据结构算法能力占比也比较大。通常一般大公司都会有一些笔试:虽然不在核心岗位对于数据结构算法要求不是非常严格,但是也会有一些常规的数据结构和算法的题
排序
数据结构设计
复杂度讨论
一些脑经急转弯的算法题
.....
现在的iOS开发为什么会遇到瓶颈是因为:前面储备过少,坐吃山空! 技术不断更新的时代,我希望你沉下心来与时俱进,不断储备技能为自己加分
这里我推荐学习:视觉方向! 无论直播还是小视频,图形图像处理成为必然的技能,未来5G时代的来临,这一块技术必将成为你与其他开发人员差距的赛点!
从性能方面来说,Flutter 的性能理论上是最好的,RN和Weex次之,并且都好于传统的 WebView方案
而从社群和社区的活跃来看,RN和Flutter无疑是最活跃的
总结:我个人针对现在的行情比较推荐大家学习:Flutter
学习iOS逆向的目的
大家都懂的 薪资高。。。。
1 学习优秀App的设计
当你看到一个App有一些非常好用的功能,你想学习或者你也需要实现相同的功能,这样你就可以逆向它的实现,去分析它的实现过程
2 更好的去加强自己开发App的安全
当你熟悉了iOS逆向工程,今后在开发自己App的时候,哪些地方更容易别被人攻破,从而有效的去避免
3 学习iOS系统未开源库的一些实现。
比如我们常用的UIKit的实现等等
4 视野更远了,iOS开发就会不在局限于画界面,数据,网络这些操作了
iOS逆向你能够了解到整个iOS系统的大致底层,内核,程序加载过程呀,App编译过程呀,等等
5 可以改变现有app的一些功能
去爱奇艺App的广告,微信抢红包等等。(当然这个学习可以,不可以作为商业利益,违法的)
有。只要你的学习的能力强,有比较强的技术,如果你是在读大学,一定要认真学习,需要有比较好的基础,在未来的很长一段时间,移动开发都站的比较多的位置。因为现在是智能手机的时代。移动开发包含移动端app,还有移动的端的游戏等
首先你的IOS设备要越狱,这是必须的。并安装OpenSHH和依赖OpenSSL和手机端Terminal终端 - Cydia搜索下载安装即可。然后就可以小小的玩一玩了。对了。还要有一台电脑。
了解插件的安装位置,一般插件安装的位置在以下路径。
/Library/MobileSubstrate/DynamicLibraries 配置
/Library/PreferenceLoader/Preferences 插件主目录
/Library/PreferenceBundles 设置显示
建立简体语言包文件夹如下
简体中文: zh-Hans.lproj
繁体中文: zh-Hant.lproj
开始吧。这里已控制中心的一个插件(CCHide)为列子。首先你要安装这个插件(或者你用其它方式去获得)。暗转完成之后,打开 /Library/PreferenceLoader/Preferences 主目录这个路劲。找到CCHide这个插件,打开它。
打开以后就看到插件的文件,CCHidePrefs.plist 和 这个文件就是我们需要汉化的文件。那么现在把这个文件导出桌面,使用UltraEdit编辑器把它打开。转载,仅供参考。