项目中用到了百度的文字识别,在集成过程中遇到一些问题记录一下
一、拍照界面出现灰色导航栏的原因
在集成之前我新建了工程做集成测试,集成完成之后没有任何问题。但是在项目工程里集成,跳转拍照界面后出现灰色导航栏问题。刚开始试着在跳转完成之后隐藏导航栏,但是都没起作用。社区查了之后有人说删掉项目中的UINavigationController+FDFullscreenPopGesture.h文件,(我自己没有试,因为项目中用FDFullscreenPopGesture,如果现在改动对项目影响很大),出现拍照界面灰色导航栏的原因应该是FDFullscreenPopGesture与集成库有冲突。
二、解决方案
解决方案一
如果可以的话,就将FDFullscreenPopGesture从工程中移除,应该能解决(没有实际操作)。
解决方案二
使用AOP解决,这个可以参考//www.greatytc.com/p/8a222ec96a50
解决方案三
我项目就是用的这种解决方案,操作比较繁琐,但问题解决了,结果是好的。
1.下载官方SDK
从百度AI发放平台下载SDK(注册,应用创建就不多说了,文档写的很明确)SDK下载
2.开始集成(不要用文档里的方法集成了,集成过的把文件和Frameworks移除)
1.下载的SKD文件中有AipOcrDemo、AipOcrSdk、lib几个文件
2.将AipOcrSdk复制放入你工程文件夹(注意和主工程同级)
3.打开你的工程
File ->Add Files to "你的工程名",选择刚刚复制过来的文件AipOcrSdk文件中的AipOcrSdk.xcodeproj添加,如图
添加之后效果如图
4.将下载的SKD文件中lib文件夹下的几个文件AipBase.framework和IdcardQuality.framework拖到工程刚添加的AipOcrSdk下,重新配置AipOcrSdk的framework
5.之后重新配置你工程下的framework,其中AipOcrSdk.framework可以直接添加
IdcardQuality.framework和AipBase.framework从Add Other选择添加
添加之后运行工程,工程正常,下面开始修改拍照界面出现的灰色导航栏,找到你跳转相机界面的代码,直接跳转到AipGeneralVC的.m中去,在.m中隐藏导航栏,到这一步,灰色导航栏的问题就解决了。
打包出现的问题
导入百度SDK后你打包Archive会报错,官方文档中也说了“我们使用lipo工具合并了模拟器和真机的架构。所以在上传前AppStore前,必须使用lipo移除模拟器的架构,否则会报错:”
终端cd到AipBase.framework,执行下面命令(参考://www.greatytc.com/p/25de99572bc6)
LK-Macmini:Xcode linknetwork$ cd /Users/linknetwork/Desktop/PortOfTrade/ThirdDeploy/BaiduOCR/AipBase.framework
LK-Macmini:AipBase.framework linknetwork$ pwd
/Users/linknetwork/Desktop/PortOfTrade/ThirdDeploy/BaiduOCR/AipBase.framework
LK-Macmini:AipBase.framework linknetwork$ ls
AipBase Headers Info.plist Modules
LK-Macmini:AipBase.framework linknetwork$ lipo -info AipBase
Architectures in the fat file: AipBase are: i386 x86_64 armv7 arm64
LK-Macmini:AipBase.framework linknetwork$ lipo -remove i386 AipBase -o AipBase
LK-Macmini:AipBase.framework linknetwork$ lipo -remove x86_64 AipBase -o AipBase
LK-Macmini:AipBase.framework linknetwork$ lipo -info AipBase
Architectures in the fat file: AipBase are: armv7 arm64
参考文章:
//www.greatytc.com/p/376536a4d2fb
//www.greatytc.com/p/25de99572bc6
//www.greatytc.com/p/8a222ec96a50