iOS SDK工程配置 (旧版)
文档版本
v2.0 以前版本适用此文档 v2.0 及以后版本文档
iOS SDK开发说明
本文是为使用iOS SDK做一些通用的准备和说明,包括IDE和工程配置等。
一、支持平台
- SDK支持iOS 8.0以上系统
- 互动SDK最低支持iOS 9.0以上系统,不支持模拟器
二、开发环境
- Xcode 8或更高版本
- OS X 10.10或更高版本
三、Xcode工程设置
下面通过一个简单的iOS Application工程,说明如何在Xcode工程中配置SDK。
1、创建iOS 工程
新建一个 TestProject 的iOS工程
选择ios 单文档app 并点击Next按钮
填写工程名并 记录Bundle ID 并去开发者中心【设置iOS包名】 点击Next按钮选择项目存储位置,再点击Create按钮,即完成IOS工程创建
2、拷贝SDK文件
下载【微吼云IOS SDK】
将下载下来的文件夹拷贝至工程目录,然后拖动到Xcode中。目录结构如下图所示:
3、添加库和Framework
libc++.tbd
libbz2.1.0.tbd
libicucore.tbd
libz.tbd
libiconv.tbd
CoreTelephony.framework
MediaPlayer.framework
AVFoundation.framework
VideoToolbox.framework
AssetsLibrary.framework
OpenAL.framework
OpenGLES.framework
QuartzCore.framework
CoreMedia.framework
Security.framework
按下图四步找到添加位置
添加方式:点击第四步左下方 “+” 按钮 搜索上边库确定添加即可
VhallLiveBaseApi.framework VhallSignalingDynamic.framework WebRTC.framework 添加方式:点击第四步左下方 “+” 按钮 选择相应库确定添加即可

4、工程设置修改
- AppDelegate.m 文件名修改为AppDelegate.mm
- Build Setting 中 Enable Bitcode 设置为NO
如下图:
- 设置Info.plist中 App Transport Security Settings -> Allow Arbitrary Loads 设置为 YES
- 设置Info.pplist中 Privacy - Camera Usage Description 是否允许使用相机
- 设置Info.pplist中 Privacy - Microphone Usage Description 是否允许使用麦克风
如下图:
四、验证
下面在TestProject的代码中,调用SDK的接口,设置appID 获取SDK版本信息,以验证工程设置是否正确。
1、引用头文件
在AppDelegate.mm开头引用SDK的头文件:
#import "VHLiveBase.h"
2、添加调用代码
在application: didFinishLaunchingWithOptions:方法中添加代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[VHLiveBase registerApp:@"xxxxxxxxx"];//AppID:xxxxxxxxx
[VHLiveBase setThirdPartyUserId:@"xxxxxxxx"];//第三方账号id:xxxxxxxx
NSLog(@"SDK Version: %@",[VHLiveBase getSDKVersion]);
return YES;
}
3、编译运行
如果前面各个步骤都操作正确的话,TestProject工程应该可以顺利编译通过。在Debug模式下运行APP,Xcode的Console窗格会打印出SDK的版本信息。
具体步骤如下图:
至此,工程配置完成。
注册APP
[VHLiveBase registerApp:@"xxxxxxxxx"];//AppID:xxxxxxxxx
设置第三方ID
[VHLiveBase setThirdPartyUserId:@"xxxxxxxx"];//第三方账号id:xxxxxxxx
LOG输出
在 VHLiveBase 中可以设置 log的级别,具体代码如下:
[VHLiveBase setLogLevel:VHLogLevelDebug];
在 VHLiveBase 中可以设置 是否输出到控制台,具体代码如下:
[VHLiveBase printLogToConsole:YES];
打包上传 App Store 报错处理
上架报错90080,90087,90209,90125 解决办法
解决办法:TARGETS->Build Phases->点击加号选择New Run Script Phase->然后复制粘贴下面代码

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
if [[ $APP_PATH != *ArchiveIntermediates* ]]; then
exit 0
fi
# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
