XCode解决can‘t locate file for .a异常设置AVAudioSessionCategoryPlayAndRecord与Git密码更改

文章讲述了在Xcode中遇到的静态库集成问题,包括libtool错误和解决办法,以及如何检查静态库是否支持bitcode。同时讨论了iOS音频处理的注意事项,如AVAudioSessionCategoryPlayAndRecord的使用场景,音频中断通知的条件,以及性能与IOBufferDuration的关系。此外,还提到了Git密码更新后如何解决认证失败的问题,通过git配置osxkeychain来更新存储的凭证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XCode中,如果直接将 xxx.a 文件拖进到项目中,有时会出现异常。

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't locate file for: -lxxx
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: -lxxx is not an object file (not allowed in a library)

解决方法:在Build Settings选项中,找到Library Search Paths,将 xxx.a 所在的目录加入进去。

比如检查静态库test.a中的arm64架构是否支持bitcode,可以用otool命令,如下:

otool -lv -arch arm64 test.a

然后搜bitcode的关键词打印,如果有,则表示支持bitcode,否则就是不支持bitcode。

iOS只有设置AVAudioSessionCategoryPlayAndRecord时,才能在扬声器和听筒间切换。

其他几个坑:

  1. audiosession处于激活状态时,才会收到打断开始和结束的通知。

  1. setPreferredIOBufferDuration 设置的值太小会影响性能,默认20ms,低端机用40ms,但如果是蓝牙接入,则必须低于30ms才行,否则无声。

  1. iOS系统的硬件回声消除需要设置通话音量才行。

如果Git密码更新后,拉取代码仓库会报如下错误:

​fatal: Authentication failed for ... ​

解决方法是执行下面命令:

​git config --global credential.helper osxkeychain​ 

再次拉取代码会提示输入账号密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值