第十五章、开发常见问题的积累及解答

一、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.tbdlibstdc++.6.tbdlibstdc++.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上架

你可能感兴趣的:(第十五章、开发常见问题的积累及解答)