Unity3d_Xcode打包注意事项之 agora(声网)sdk 打包
2017-09-14 13:37
453 查看
前段时间自己项目遇到使用 agora做语音模块时 Xcode遇到问题,于是自己在网上找到了解决方案,现在分享给大家
环境准备
本文使用的环境如下:XCode 8.3.1
最小SDK iOS 9.3
真机
Swift语言
最新Agora SDK
申请AppID
先要注册
agora.io,注册完成之后再新建一个项目,需要拿到对应的
App ID。后面的示例代码需要使用该
App ID。
最新的
Agora SDK中有两个文件夹:
./libs 中含有的是所需的库(集成到App需要的)
./samples 包含Open Video Call 和 Open Live的代码示例
需要的环境准备好之后,新建一个
agora项目,就可以开始配置和集成
Agora SDK。
添加SDK
先把Agora SDK中./libs复制到agora项目中的agora目录下。再把Agora SDK添加到项目的
Libraries中。
添加
Libraries的方法:
选中当前Target(agora)
Build Phases
Link Binary With Libraries
点击+
这个时候出现的界面是添加系统类库的,选择
Add Other ...从项目目录中选中
./libs添加里面的内容到
Libraries中。这样就添加了
Agora SDK。
在添加
Agora SDK之后,还需要添加
Agora SDK所依赖的库,参考官网上面demo使用的
libraries,添加以下类库:
CoreTelephony.framework
CoreMedia.framework
VideoToolbox.framework
AudioToolbox.framework
AVFoundation.framework
libc++.tbd
build的时候出现错误:
Showing All Messages "_res_9_getservers", referenced from: agora::commons::network::get_dns_list(bool) in AgoraRtcEngineKit(libmediasdk.a-arm64-master.o) "_res_9_ninit", referenced from: agora::commons::network::get_dns_list(bool) in AgoraRtcEngineKit(libmediasdk.a-arm64-master.o) "_res_9_ndestroy", referenced from: agora::commons::network::get_dns_list(bool) in AgoraRtcEngineKit(libmediasdk.a-arm64-master.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
运行官网的demo也出现了同样的错误,说明类库没有导入完整,还需要导入类库是
libresolv.9.tbd。
类库依赖问题比较容易出现,另一方面也说明没有支持
Pod的麻烦,建议
Agora能尽快支持
CocoaPods。
再次
build又出现了个问题:
ld: library not found for -lcrypto
问题的原因是:编译时找不到需要的链接库导致的,解决方法:
选中当前Target(agora)
Build Settings
Search Paths
Library Search Paths
新增
"${PROJECT_DIR}/agora/libs"
另外
Agora SDK并不支持bitcode,因此需要把bitcode禁止掉,禁止bitcode的方法:
选中当前Target(agora)
Build Settings
Build Options
Enable Bitcode ->No
这样就配置完成了
Agora SDK的支持,下面就可以开始使用Agora
SDK
了。
访问OC类库
Agora SDK使用的是
Object-c开发的,而我们的项目使用的是
Swift开发的,因此就需要在
Swift中访问
OC的类库,新建一个文件命名为
agora-Bridging-Header.h,在该文件中引入
Agora SDK:
#import <AgoraRtcEngineKit/AgoraRtcEngineKit.h> #import <AgoraRtcCryptoLoader/AgoraRtcCryptoLoader.h>
然后把该文件设置为
Objective-C Bridging Header,设置方法:
选中当前Target(agora)
Build Settings
Swift Compiler-General
Objective-C Bridging Header
agora/agora-Bridging-Header.h
这样能在
Swift中使用
Agora SDK了。
在开始调用
Agora SDK之前还要知道,
Agora SDK实现的是一套高清视频通话或直播系统,除了完成集成
Agora SDK的工作之外,还需要给项目对应的访问权限。
权限
需要给项目两个权限才能使用Agora SDK,这两个权限是:
相机
麦克风
在
info.plist添加这两个权限:
具体设置的内容为:
Privacy - Camera Usage Description设置为:
use camera to start video call
Privacy - Microphone Usage Description设置为
use microphone to start video call
这样完成了
Agora SDK的项目配置,后面将继续写如何使用
Agora SDK,包含的功能:
创建room
分屏,2分屏、4分屏、6分屏
窗口切换
前后摄像头切换
文章转自:https://segmentfault.com/a/1190000009024365 ,谢谢
相关文章推荐
- Unity3D Ios 打包注意事项
- xcode打包时的注意事项
- iOS11&iPhoneX适配&Xcode9打包注意事项
- iOS11&iPhoneX适配&Xcode9打包注意事项
- iOS11&iPhoneX适配&Xcode9打包注意事项
- 在Xcode 4.3(4E109,iOS 5 SDK)上开发基于iOS 4.3应用的注意事项
- [Xcode]iOS提审打包注意事项
- Xcode8.0 打包ipa注意事项
- ios与unity3d的交互,及调用友盟分享SDK应注意事项
- iOS11&iPhoneX适配&Xcode9打包注意事项
- XCode解析xml配置注意事项
- android studio3.0多渠道打包以及签名注意事项
- Unity3D--SDK接入一键打包APK
- SAP SMP iOS kapsel打包注意事项
- 打包eclipse swt程序需要注意的几点事项
- Unity3D 阴影的显示 注意事项
- xcode svn 注意事项
- 环信web sdk集成注意事项
- 360和广点通广告SDK注意事项 分类: Android其他 2014-11-14 18:35 146人阅读 评论(0) 收藏
- unity3d 资源文件从MAX或者MAYA中导出的注意事项