一、iOS打包与提交测试
1、使用Jenkins自动化自动化打包ipa
2、脚本支持python3或shell脚本
3、支持workspace和非workspace工程
4、采有蒲公英、fir.im第三方平台管理ipa下载分发,或自己建立下载平台(fir下载次数有限,蒲公英下载时间有限)
自动化打包脚本如下:
# 编译部分
xcodebuild archive -project $targetName.xcodeproj -scheme $targetName -configuration Release -archivePath $targetName.xcarchive
# xcodebuild -workspace $targetName.xcworkspace -scheme $targetName -configuration Release -sdk iphoneos archive -archivePath $path_xcarchive
# 输出ipa部分
xcodebuild -exportArchive -archivePath $targetName.xcarchive -exportPath $path_ipa -exportOptionsPlist $path_exportOptionsPlist
二、使用apache探索iOS关于下载安装包下载的问题
1、推荐使用企业版证书打扮ipa,否则下载使用受限制
2、需要https服务托管ipa
三、Xcode10与iOS12动态库适配以及解决方案
因Xcode升级,导致部分工程无法正常使用,分析其主要原因是libstdc++.6.0.9.tbd
、libstdc++.6.tbd
、libstdc++.tbd
等动态库已经被移除。iOS12.0中全部采用libc++
代替lstdc++
的动态库。
其动态库路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
四、研究iOS逆向工程
1、成功更改过微信运动步数
2、移除过Oplayer lite以及搜狐视频的广告
其原理是:
1、通过runtime进行函数的进行消息转发
2、或通过hook的方式消息函数进行界面元素查找后,对其进行隐藏或显示操作
常用的软件推荐:
MachOView、Reveal14、Hopper Disassembler v4、iFunBox
五、简单理解音视频方面的知识
- 关于编码
从存储角度、网络传输以及通用性的3个角度,压缩已经成了不可或缺的动作。编码就是按照一定的格式记录采样和量化后的数据。
- 编码中软编码和硬编码的区别
硬编码: 使用非CPU进行编码,例如使用GPU芯片处理。实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。
软编码: 使用CPU来进行编码计算。性能高,低码率下通常质量低于硬编码器,但部分产品在GPU硬件平台移植了优秀的软编码算法(如X264)的,质量基本等同于软编码。
采集的时候需要给每个视频帧和音频样本加上时间戳,再通过一个基准将音画进行同步处理,
解决方案有如下几种:
1、将视频同步到音频上,就是以音频的播放速度为基准来同步视频。视频比音频播放慢了,加快其播放速度;快了,则延迟播放。
2、将音频同步到视频上,就是以视频的播放速度为基准来同步音频。
3、将视频和音频同步外部的时钟上,选择一个外部时钟为基准,视频和音频的播放速度都以该时钟为标准。
六、谈谈Core Graphics框架
七、谈谈iOS开发过程中证书的理解
八、谈谈对MDM的理解
九、对相册优化
模拟微信相册,解决了icloud照片显示问题。
十、ipa下发的方式
1、Xcode直接编译
2、Xcode拖拽
3、iTunes拖拽
4、第三方平台,fir、pgyer等
5、自定义服务器,即搭建下载平台
6、AdHoc测试设备
7、AppStore上架