要说直播软件开发中最基础的一步,那非“登录”莫属,且直播软件如果想上架到IOS商城,也一定要在登录功能中增加“苹果账号登录”才行,因为必须配置苹果推出的sign in with apple才能被审核过,这一功能如何实现?总结如下:

1、直播软件开发前,登录苹果开发者后台编辑对应的identifier勾选sign with apple

2、勾选或取消服务,会导致之前的 profile 描述文件失效,不需要新建,只要点击 Edit 重新编辑对应的 profile文件,然后保存下载使用新的profile文件即可

3、在直播软件开发开发时sharesdk添加对应的sdk

4、直播软件开发时,添加对应的entitlements文件

5、直播软件开发时添加对应的三方登录按钮

//添加登陆方式
-(void)setthirdview{
//判断一下是不是数组
if (![platformsarray isKindOfClass:[NSArray class]]) {
return;
}
if (platformsarray.count <= 0) {
_leftView.hidden = _rightView.hidden = _otherLabel.hidden = YES;
}else {
_leftView.hidden = _rightView.hidden = _otherLabel.hidden = NO;
}
//进入此方法钱,清除所有按钮,防止重复添加
for (UIButton *btn in _platformview.subviews) {
[btn removeFromSuperview];
}
//如果返回为空,登陆方式字样隐藏
// if (platformsarray.count == 0) {
// _otherviews.hidden = YES;
// }
// else{
// _otherviews.hidden = NO;
// }
//注意:此处涉及到精密计算,轻忽随意改动
CGFloat w = 40;
CGFloat space = _window_width*0.8-([platformsarray count] - 1)*20-[platformsarray count]*40;


for (int i=0; i<platformsarray.count; i++) {
UIButton *btn = [UIButton buttonWithType:0];
btn.tag = 1000 + i;
[btn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"login_%@",platformsarray[i]]] forState:UIControlStateNormal];
[btn setTitle:platformsarray[i] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(thirdlogin:) forControlEvents:UIControlEventTouchUpInside];
btn.frame = CGRectMake(space/2+i*60,0,w,w);
[_platformview addSubview:btn];
}
}
//若要添加登陆方式,在此处添加

6.添加相应的登录方式

//若要添加登陆方式,在此处添加
-(void)thirdlogin:(UIButton *)sender{
/*
1 qq
2 wx
3 facebook
4 twitter
*/
[self.view endEditing:YES];
int type;
if ([sender.titleLabel.text isEqual:@"qq"]) {
type = 1;
}else if ([sender.titleLabel.text isEqual:@"wx"]) {
type = 2;
}else if ([sender.titleLabel.text isEqual:@"facebook"]) {
type = 3;
}else if ([sender.titleLabel.text isEqual:@"twitter"]) {
type = 4;
}else if ([sender.titleLabel.text isEqual:@"ios"]){
type = 5;
}

switch (type) {
case 1:
[self login:@"qq" platforms:SSDKPlatformTypeQQ];
break;
case 2:
[self login:@"wx" platforms:SSDKPlatformTypeWechat];
break;
case 3:
[self login:@"facebook" platforms:SSDKPlatformTypeFacebook];
break;
case 4:
[self login:@"twitter" platforms:SSDKPlatformTypeTwitter];
break;
case 5:
[self login:@"ios" platforms:SSDKPlatformTypeAppleAccount];
break;
default:
break;
}
}
-(void)login:(NSString *)types platforms:(SSDKPlatformType)platform{
//取消授权
[ShareSDK cancelAuthorize:platform];

[testActivityIndicator startAnimating]; // 开始旋转
[ShareSDK getUserInfo:platform
onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
{
if (state == SSDKResponseStateSuccess)
{
NSLog(@"uid=%@",user.uid);
NSLog(@"%@",user.credential);
NSLog(@"token=%@",user.credential.token);
NSLog(@"nickname=%@",user.nickname);
[self RequestLogin:user LoginType:types];

} else if (state == 2 || state == 3) {
[testActivityIndicator stopAnimating]; // 结束旋转
[testActivityIndicator setHidesWhenStopped:YES]; //当旋转结束时隐藏
if ([types isEqual:@"ios"]) {
if ([UIDevice currentDevice].systemVersion.floatValue < 13) {
[MBProgressHUD showError:YZMsg(@"ios13以下系统暂不支持苹果登录")];
return;
}

}
}

}];
}

7.登录成功调用想用接口进行登录操作

-(void)RequestLogin:(SSDKUser *)user LoginType:(NSString *)LoginType
{

[testActivityIndicator startAnimating]; // 结束旋转

NSString *icon = nil;
if ([LoginType isEqualToString:@"qq"]) {
icon = [user.rawData valueForKey:@"figureurl_qq_2"];
}
else if ([LoginType isEqualToString:@"ios"]){

icon =@"";
}
else
{
icon = user.icon;
}
NSString *unionID;//unionid
if ([LoginType isEqualToString:@"wx"]){

unionID = [user.rawData valueForKey:@"unionid"];

}
else{
unionID = user.uid;
}
if (!icon || !unionID) {
[testActivityIndicator stopAnimating]; // 结束旋转
[MBProgressHUD showError:YZMsg(@"未获取到授权,请重试")];
return;
}
NSString *pushid;
if ([JPUSHService registrationID]) {
pushid = [JPUSHService registrationID];
}else{
pushid = @"";
}



如果对直播软件开发感兴趣,还可以查看以下相关阅读:

轻松实现PHP直播平台源码中,头像昵称的修改在找直播平台源码搭建教程?先看看这些吧直播带货app源码如何制作全局悬浮窗?