形容
依据[](https://developer.apple.com/cn/app-store/review/guidelines/>苹果审核 指南:如果app专门应用第三方或社交登录服务(例如微信登录,QQ登录,Facebook登录,Google登录,Twitter登录等)来对其进行设置或验证这个app的用户主账户,则该app必须同时提供“通过Apple登录”作为等效选项,用户的主账户时指在app中建设的,用于标识身份,登录和拜访性能和相干服务的账户。
</p>
<p>
在以下状况下,不要求提供“通过 Apple 登录”选项:</p>
<ul>
<li>您的 app 仅应用公司自有的帐户设置和登录零碎。</li>
<li>您的 app 是一款教育、企业或商务 app,要求用户应用现有的教育或企业帐户登录。</li>
<li>您的 app 应用政府或行业反对的公民身份零碎或电子身份证来鉴定用户身份。</li>
<li>您的 app 是特定第三方服务的客户端,用户须要应用他们的邮件、社交媒体或其余第三方帐户间接登录能力拜访内容。
</li>
</ul>
<p>
按钮要求</p>
<p><img src=)
[](https://developer.apple.com/cn/app-store/review/guidelines/>苹果审核 指南:如果app专门应用第三方或社交登录服务(例如微信登录,QQ登录,Facebook登录,Google登录,Twitter登录等)来对其进行设置或验证这个app的用户主账户,则该app必须同时提供“通过Apple登录”作为等效选项,用户的主账户时指在app中建设的,用于标识身份,登录和拜访性能和相干服务的账户。
</p>
<p>
在以下状况下,不要求提供“通过 Apple 登录”选项:</p>
<ul>
<li>您的 app 仅应用公司自有的帐户设置和登录零碎。</li>
<li>您的 app 是一款教育、企业或商务 app,要求用户应用现有的教育或企业帐户登录。</li>
<li>您的 app 应用政府或行业反对的公民身份零碎或电子身份证来鉴定用户身份。</li>
<li>您的 app 是特定第三方服务的客户端,用户须要应用他们的邮件、社交媒体或其余第三方帐户间接登录能力拜访内容。
</li>
</ul>
<p>
按钮要求</p>
<p><img src=)
[苹果会提供一个举荐的按钮,如上图,你也能够自定义一个按钮,但必须合乎苹果的标准:](https://developer.apple.com/cn/app-store/review/guidelines/>苹果审核 指南:如果app专门应用第三方或社交登录服务(例如微信登录,QQ登录,Facebook登录,Google登录,Twitter登录等)来对其进行设置或验证这个app的用户主账户,则该app必须同时提供“通过Apple登录”作为等效选项,用户的主账户时指在app中建设的,用于标识身份,登录和拜访性能和相干服务的账户。
</p>
<p>
在以下状况下,不要求提供“通过 Apple 登录”选项:</p>
<ul>
<li>您的 app 仅应用公司自有的帐户设置和登录零碎。</li>
<li>您的 app 是一款教育、企业或商务 app,要求用户应用现有的教育或企业帐户登录。</li>
<li>您的 app 应用政府或行业反对的公民身份零碎或电子身份证来鉴定用户身份。</li>
<li>您的 app 是特定第三方服务的客户端,用户须要应用他们的邮件、社交媒体或其余第三方帐户间接登录能力拜访内容。
</li>
</ul>
<p>
按钮要求</p>
<p><img src=)款式标准官网文档。
集成
ShareSDK从4.3.4版本开始反对苹果登录,将苹果返回的数据全副返回给用户。在应用ShareSDK提供的苹果登录性能后,还将提供一个能够监听苹果登录状态变动的性能,在登录状态被登记时能够实时检测。能够参考demo例子,在demo中的体现为: 在用户登录后,进设置界面(能够在另一台设施上操作)删除该app登录权限,则app能实时接管登录账号生效的状态(重新启动须要在进入前台后能力获取),从而使app更平安。
下载SDK
登录咱们的 官网,进行下载,须要苹果登录,请勾选。
导入SDK
将下载的SDK导入到我的项目里,并增加依赖库
AuthenticationServices.framework
我的项目配置
证书开明Sign In with Apple选项,并且在Xcode的我的项目里配置
代码实现
(本人能够打印返回的信息,须要什么能够依据key去获取)
/** 受权 @param platformType 平台类型 @param settings 受权设置,承受scopes属性设置,如新浪微博关注官网微博:@{@"scopes" : @[@"follow_app_official_microblog"]},相似“follow_app_official_microblog”这些字段是各个社交平台提供的。QQ平台如设置二维码受权,增加字段为QQAuthType:@{@"QQAuthType":@1}, 0为网页账号密码登录受权 @param stateChangedHandler 受权状态变更回调解决 @return 会话id */+ (SSDKSession *)authorize:(SSDKPlatformType)platformType settings:(NSDictionary *)settings onStateChanged:(SSDKAuthorizeStateChangedHandler)stateChangedHandler;
示例代码
[ShareSDK authorize:SSDKPlatformTypeAppleAccount settings:nil onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) { if (state == SSDKResponseStateSuccess) { NSLog(@"rawData---%@",user.rawData); NSLog(@"credential--%@",[user.credential rawData]); } else { NSLog(@"%@",error.userInfo); }}];
登录状态监听
(依据本人的需要可加可不加)
/** 监听apple登录状态@param object 增加监听的对象,在对象销毁时移除监听@param isFirstAddCallBack 第一次增加时就回调以后状态@param handler 返回apple登录状态*/+ (void)addObserve:(nullable id)object isFirstAddCallBack:(BOOL)isFirstAddCallBack forAppleAccountLoginStateHandler:(void (^) (SSDKAppleAccountState state, SSDKUser *user, NSError *error))handler;
示例代码
[AppleAccountConnector addObserve:nil isFirstAddCallBack:YES forAppleAccountLoginStateHandler:^(SSDKAppleAccountState state, SSDKUser * _Nonnull user, NSError * _Nonnull error) { if (state != SSDKAppleAccountStateAuthorized){} else{ if (user) { NSLog(@"------%@", user.rawData);} }}];
点击登录按钮发动流程如下:
i. 第一次登陆
能够输出姓名、邮箱,之后,通过输出明码、指纹、faceID等登录,在返回时,返回user、token、姓名、邮箱等信息。
ii. 第二次登陆
无需输出信息,间接通过输出明码、指纹、faceID等登录,但此时只能获取到用户的user及token信息。
iii.退出登录
在"设置->账户->明码与安全性->应用您的apple ID 的 App"中删除此利用的user记录。此时,如果再关上app进行苹果登录的话须要从第一步开始。否则只有登陆过,不管在任何设施用同一个appleID登录的话都只显示步骤二的界面。