-
Notifications
You must be signed in to change notification settings - Fork 3
FAQ
1.1 项目工程未使用 CocoaPods,如何集成?
使用 CocoaPods 管理第三方库十分方便而且利于今后的依赖库版本升级,十分建议大家的项目支持 CocoaPods,安装及使用详见 CocoaPods guides ,如果暂时不方便支持也可以手动添加我们的framework和其他第三方库,详见 Home -> 2.2.3 直接/手动集成Framework。
参考项目代码:[v2.3.0 withoutPods](http://repo.polyv.net/ios/download/livesdk-demo/liveplayer-withoutPods_2.3.0+180320.zip) 开发/编译环境:Xcode 9.2
1.2 pod install 出错
如果报错提示信息是某个库版本未找到,可以尝试 pod update 命令(会先更新本地的 pod 库)。
1.3 pod install 或 pod update 卡主不动
可能是某个第三方库比较大,从 Github 上下载较慢导致,可以尝试切换不同的网络重试,有代理可以使用代理。
1.4 Podfile 中添加 use_frameworks! 编译出错:之前的库找不到头文件
Podfile 默认执行pod install 后生成的静态库为由.a文件,添加添加 use_frameworks! 后生成的静态库为 .framework 文件。一般 Framework 使用#import <xxxxxx/xxxxxxx.h> 这个方式导入库头文件,如 #import <PLVLiveAPI/PLVLiveAPI.h>。
1.5 Podfile 添加 use_frameworks! 后编译错误
项目中引用的其他第三方库可能不支持 pods 使用use_frameworks!,可以改变第三方库或手动移除 use_frameworks!然后手动添加 PolyvSocketAPI 及其依赖库。操作如下:
podfile 中移除 pod 'PolyvSocketAPI' , 然后手动下载,参考 Home -> 2.2.3 直接/手动集成Framework -> PLVSocketAPI.framework 部分。
参考项目代码:[v2.4.0 not_full_pods](http://repo.polyv.net/ios/download/livesdk-demo/not_full_pod_PolyvLiveSDKDemo_2.4.0+180717.zip) 开发/编译环境:Xcode 9.2
2.1 编译错误信息和 IJKMediaFramework 相关
手动导入该库时,同时检查是否添加所需系统依赖库
2.2 手动导入 SocketIO、Starscream 库,编译或运行错误,包含 "Starscream" 或 “SocketIO” 相关字符串
如常见以下信息:
```
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from:.../Containers/Bundle/Application/F9246A0D-D32F-46ED-BC96-FB55DB2DC471/PolyvLiveSDKDemo.app/Frameworks/SocketIO.framework/SocketIO
Reason: image not found:
```
-
未正确添加 Swift framework
将 SocketIO.framework 、Starscream.framework 库添加至项目的
Embeded Binaries中 -
未配置正确编译参数
设置
Build Settings->Always Embed Swift Standard Libraries为 `YES -
版本问题
如 Xcode 9.2 打的 SocketIO.framework 为 Swift 4.0.3 版本,Xcode 9.4.1 版本打的 SocketIO.framework 为 Swift 4.1.2 版本,而这两个版本的库互不兼容,需要使用对应的版本库。
-
如果以上都正确,请尝试 clean 工程后重新编译。或者大家直接去下载Socket.IO 源码(包含项目),找到对应版本,手动在自己编译器上进行编译调试。
基于大家手动集成 Socket.IO 库时常会遇到问题,所以还是建议大家尽可能使用方式 pods 集成。
2.3 使用 pod 安装 SDK 库后,编译报 “No such module 'CommonCrypto'” 错误信息
经测试,Starscream 作者发布的 3.0.6 版本在 Xcode 9.4.1上会出错(其他版本暂未测试),执行 pod update 后基本会升级到作者的最新版本,将版本回退至 3.0.5 即可。解决方法如下:
- 删除 podfile.lock 文件
- Podfile 后添加一行命令:pod 'Starscream', '3.0.5'
- 重新执行 pod install 命令
target 'PolyvLiveSDKDemo' do
use_frameworks!
pod 'PolyvLiveAPI', '~> 0.6.0' # Polyv live api
pod 'PolyvSocketAPI', '~> 0.5.0' # Polyv socket.io api
pod 'PolyvIJKPlayer', '~> 0.3.0' # Polyv ijkPlayer
pod 'AgoraRtcEngine_iOS', '~>2.0.0' # Agora rtc engine
pod 'Starscream', '3.0.5' # Xcode 10 以下添加
end3.1 libcrypto 库冲突,和阿里相关SDK冲突,如支付宝SDK

参考以下方案
```
即在Other Linker Flags 中添加 `-force_load`
// 将支付宝中 libcrpto.a 直接拖进来框里(自动生成路径)
// 拖 IJKMediaFramework.framework 进框里面,然后手动添加 /IJKMediaFramework 这个路径
如:"$(SRCROOT)/Frameworks/IJKMediaFramework.framework/IJKMediaFramework"
```

3.2 IJKMediaFramework 库冲突
项目中包含多个 IJKMediaFramework.framework,手动删除其中一个。
如果使用到了保利威的点播SDK,请勿删除 PolyvIJKPlayer 文件下的 IJKMediaFramework.framework 库,会造成点播视频无法播放问题。
4.1 demo 中使用私有 api 上架被拒
影响版本:v2.4.0 ~ v2.5.4
问题:直播 sdk-demo 中使用苹果私有 api,造成 App 审核被拒。违反苹果审核条款 2.5.1 中的说明,关键字:App-Prefs:root=
解决:更新 PLVUtils.m 文件,可参考最新代码 PLVUtils.m 文件
修改 `NSURL *settingURL = URLFromPrivacySettingType(type);` 为 `NSURL *settingURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];`
删除 `NSURL *URLFromPrivacySettingType(PrivacySettingType type) {}` 方法
5.1 升级至 Xcode 10.1 出现编译问题
之前下载的 sdk-demo 项目 pod install 过,升级至 Xcode 10.1 之后,重新 pod install 后出现编译问题。
解决:删除项目 Pods 下的两个 Pods-***.debug.xcconfig 文件后重新执行 pod install
6.1 我们的项目demo是Swift版本,是否支持
暂未提供 Swift 版本 demo