Commit 3cdba87e by GuoJianPeng

initial

parent 403e777a
//
// ASAppleLogin.h
// ASAppleLogin
//
// Created by 坚鹏 on 2023/6/19.
//
#import <Foundation/Foundation.h>
#import "ASAppleLoginRequest.h"
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger,ASALSystemButtonStyle)
{
ASALSystemButtonStyleBlack = 0,//黑底白字
ASALSystemButtonStyleWhiteOutline,//白底黑字+黑边框
ASALSystemButtonStyleWhite//白底黑字
};
@interface ASAppleLogin : NSObject
//只支持iOS13以上
+ (BOOL)isSupported;
//创建自带苹果风格登录按钮
+ (__kindof UIView*_Nullable)createAppleIdAuthorizingButtonForTarget:(id)target action:(SEL)action;
+ (__kindof UIView*_Nullable)createAppleIdAuthorizingButtonForTarget:(id)target action:(SEL)action style:(ASALSystemButtonStyle)style;
//请求登录
+ (ASAppleLoginRequest*_Nullable)createLoginRequestForController:(UIViewController*)controller;
@end
NS_ASSUME_NONNULL_END
//
// ASAppleLogin.m
// ASAppleLogin
//
// Created by 坚鹏 on 2023/6/19.
//
#import "ASAppleLogin.h"
#import <AuthenticationServices/AuthenticationServices.h>
@implementation ASAppleLogin
+(BOOL)isSupported
{
if(@available(iOS 13.0,*)){
return true;
}return false;
}
+(__kindof UIView *)createAppleIdAuthorizingButtonForTarget:(id)target action:(SEL)action
{
return [self createAppleIdAuthorizingButtonForTarget:target action:action style:ASALSystemButtonStyleBlack];
}
+ (__kindof UIView *)createAppleIdAuthorizingButtonForTarget:(id)target action:(SEL)action style:(ASALSystemButtonStyle)style
{
if (@available(iOS 13.0, *)) {
ASAuthorizationAppleIDButton * button = [ASAuthorizationAppleIDButton buttonWithType:ASAuthorizationAppleIDButtonTypeSignIn style:[self _convertedStyle:style]];
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
return button;
} else {/* not supported */}
return nil;
}
+(ASAppleLoginRequest *)createLoginRequestForController:(UIViewController *)controller
{
return [self isSupported]?[[ASAppleLoginRequest alloc]initWithBusinessController:controller]:nil;
}
#pragma mark - Privates
+ (ASAuthorizationAppleIDButtonStyle)_convertedStyle:(ASALSystemButtonStyle)style API_AVAILABLE(ios(13.0))
{
if(style == ASALSystemButtonStyleWhite){
return ASAuthorizationAppleIDButtonStyleWhite;
}else if (style == ASALSystemButtonStyleWhiteOutline){
return ASAuthorizationAppleIDButtonStyleWhiteOutline;
}
return ASAuthorizationAppleIDButtonStyleBlack;
}
@end
//
// ASAppleLoginRequest.h
// ASAppleLogin
//
// Created by 坚鹏 on 2023/6/19.
//
#import <Foundation/Foundation.h>
#import "ASAppleUser.h"
NS_ASSUME_NONNULL_BEGIN
@interface ASAppleLoginRequest : NSObject
- (nullable instancetype)initWithBusinessController:(UIViewController*)controller;
- (void)starts;
@property(nonatomic,copy,nullable)void(^authSuccessHandle)(ASAppleUser*user);
/**
* ----code参考----
* 1000:未知原因(entitlement未注册等)
* 1001:用户取消
* 1002:无响应
* 1003:未能处理请求
* 1004:失败
**/
@property(nonatomic,copy,nullable)void(^authFailedHandle)(NSInteger code,NSString*_Nullable msg);
@end
NS_ASSUME_NONNULL_END
//
// ASAppleLoginRequest.m
// ASAppleLogin
//
// Created by 坚鹏 on 2023/6/19.
//
#import "ASAppleLoginRequest.h"
#import <AuthenticationServices/AuthenticationServices.h>
@interface ASAppleLoginRequest()<ASAuthorizationControllerDelegate, ASAuthorizationControllerPresentationContextProviding>
{
BOOL _isStarted;
}
@property(nonatomic,weak)UIViewController * businessController;
@end
@implementation ASAppleLoginRequest
-(instancetype)initWithBusinessController:(UIViewController *)controller
{
if(self = [super init]){
_businessController = controller;
}return self;
}
-(void)starts
{
if(_isStarted){return;}
_isStarted = true;
if (@available(iOS 13.0, *)) {
ASAuthorizationAppleIDProvider * appleIDProvider = [[ASAuthorizationAppleIDProvider alloc] init];
ASAuthorizationAppleIDRequest * authAppleIDRequest = [appleIDProvider createRequest];
ASAuthorizationPasswordRequest * passwordRequest = [[[ASAuthorizationPasswordProvider alloc] init] createRequest];
NSMutableArray <ASAuthorizationRequest *> * array = [NSMutableArray arrayWithCapacity:2];
if (authAppleIDRequest) {
[array addObject:authAppleIDRequest];
}
NSArray <ASAuthorizationRequest *> * requests = [array copy];
ASAuthorizationController * authorizationController = [[ASAuthorizationController alloc] initWithAuthorizationRequests:requests];
authorizationController.delegate = self;
authorizationController.presentationContextProvider = self;
[authorizationController performRequests];
}else{/* do nothing. */}
}
#pragma mark - ASAuthorizationControllerDelegate
// 授权成功
- (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithAuthorization:(ASAuthorization *)authorization API_AVAILABLE(ios(13.0)) {
if ([authorization.credential isKindOfClass:[ASAuthorizationAppleIDCredential class]]) {
ASAuthorizationAppleIDCredential * credential = authorization.credential;
NSString * userID = credential.user;
NSPersonNameComponents * fullName = credential.fullName;
NSString * email = credential.email;
NSString * authorizationCode = [[NSString alloc] initWithData:credential.authorizationCode encoding:NSUTF8StringEncoding];
NSString * identityToken = [[NSString alloc] initWithData:credential.identityToken encoding:NSUTF8StringEncoding];
ASUserDetectionStatus realUserStatus = credential.realUserStatus;
if(realUserStatus == ASUserDetectionStatusUnsupported){
NSLog(@"[ASAppleLoginRequest]meet unsupported!");
}
ASAppleUser * user = [[ASAppleUser alloc] init];
user.userId = userID;
user.fullName = fullName;
user.email = email;
user.authCode = authorizationCode;
user.identityToken = identityToken;
if(self.authSuccessHandle){self.authSuccessHandle(user);}
}
else if ([authorization.credential isKindOfClass:[ASPasswordCredential class]]) {
// 用户登录使用现有的密码凭证
ASPasswordCredential * passwordCredential = authorization.credential;
// 密码凭证对象的用户标识 用户的唯一标识
NSString * userID = passwordCredential.user;
// 密码凭证对象的密码
NSString * password = passwordCredential.password;
ASAppleUser * user = [[ASAppleUser alloc] init];
user.userId = userID;
user.password = password;
if(self.authSuccessHandle){self.authSuccessHandle(user);}
} else {
//preserved.
}
}
// 授权失败
- (void)authorizationController:(ASAuthorizationController *)controller didCompleteWithError:(NSError *)error API_AVAILABLE(ios(13.0)) {
NSString *errorMsg = nil;
switch (error.code) {
case ASAuthorizationErrorCanceled:
errorMsg = @"用户取消了授权请求";
break;
case ASAuthorizationErrorFailed:
errorMsg = @"授权请求失败";
break;
case ASAuthorizationErrorInvalidResponse:
errorMsg = @"授权请求响应无效";
break;
case ASAuthorizationErrorNotHandled:
errorMsg = @"未能处理授权请求";
break;
case ASAuthorizationErrorUnknown:
errorMsg = @"授权请求失败未知原因";
break;
}
if(self.authFailedHandle){self.authFailedHandle(error.code, errorMsg);}
}
#pragma mark - ASAuthorizationControllerPresentationContextProviding
- (ASPresentationAnchor)presentationAnchorForAuthorizationController:(ASAuthorizationController *)controller API_AVAILABLE(ios(13.0)){
return self.businessController.view.window;
}
@end
//
// ASAppleUser.h
// ASAppleLogin
//
// Created by 坚鹏 on 2023/6/19.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ASAppleUser : NSObject
//关键ID
@property(nonatomic,copy)NSString * userId;//与appid一一对应
@property(nonatomic,copy,nullable)NSString * authCode;//当次授权码
@property(nonatomic,copy,nullable)NSString * identityToken;//当次授权token
@property(nonatomic,copy,nullable)NSString * password;//密码验证时方有
//首次授权方有
@property(nonatomic,copy,nullable)NSPersonNameComponents * fullName;
@property(nonatomic,copy,nullable)NSString * email;
@end
NS_ASSUME_NONNULL_END
//
// ASAppleUser.m
// ASAppleLogin
//
// Created by 坚鹏 on 2023/6/19.
//
#import "ASAppleUser.h"
@implementation ASAppleUser
-(NSString *)description
{
return [NSString stringWithFormat:@"{\nUserId:%@\n\n}",self.userId];
}
@end
......@@ -39,7 +39,7 @@
/* Begin PBXFileReference section */
553AC3D7E7C05010C4F66277 /* libPods-ASAppleLogin_Example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ASAppleLogin_Example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
59DD1D3488E52EE393A97723 /* Pods-ASAppleLogin_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASAppleLogin_Tests.debug.xcconfig"; path = "Target Support Files/Pods-ASAppleLogin_Tests/Pods-ASAppleLogin_Tests.debug.xcconfig"; sourceTree = "<group>"; };
5EAC1B587BF690BA2FDFE15C /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
5EAC1B587BF690BA2FDFE15C /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
6003F58A195388D20070C39A /* ASAppleLogin_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ASAppleLogin_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
......@@ -59,13 +59,14 @@
6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; };
606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = "<group>"; };
682D3914D4BAA22B09C6F7D5 /* ASAppleLogin.podspec */ = {isa = PBXFileReference; includeInIndex = 1; name = ASAppleLogin.podspec; path = ../ASAppleLogin.podspec; sourceTree = "<group>"; };
682D3914D4BAA22B09C6F7D5 /* ASAppleLogin.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = ASAppleLogin.podspec; path = ../ASAppleLogin.podspec; sourceTree = "<group>"; };
71719F9E1E33DC2100824A3D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
778973A92A405E9100219883 /* ASAppleLogin_Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ASAppleLogin_Example.entitlements; sourceTree = "<group>"; };
77D3291E94DA311AA9991884 /* libPods-ASAppleLogin_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ASAppleLogin_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main.storyboard; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
96162463F31E7F4B65E6E1D6 /* Pods-ASAppleLogin_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASAppleLogin_Example.release.xcconfig"; path = "Target Support Files/Pods-ASAppleLogin_Example/Pods-ASAppleLogin_Example.release.xcconfig"; sourceTree = "<group>"; };
9E1B09AF728040DF7BB5EAFD /* Pods-ASAppleLogin_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASAppleLogin_Example.debug.xcconfig"; path = "Target Support Files/Pods-ASAppleLogin_Example/Pods-ASAppleLogin_Example.debug.xcconfig"; sourceTree = "<group>"; };
A5CC63B68A0C1D29065F4F57 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; name = README.md; path = ../README.md; sourceTree = "<group>"; };
A5CC63B68A0C1D29065F4F57 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
D3A654624BE42F3188EA7C5C /* Pods-ASAppleLogin_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASAppleLogin_Tests.release.xcconfig"; path = "Target Support Files/Pods-ASAppleLogin_Tests/Pods-ASAppleLogin_Tests.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
......@@ -103,13 +104,13 @@
59DD1D3488E52EE393A97723 /* Pods-ASAppleLogin_Tests.debug.xcconfig */,
D3A654624BE42F3188EA7C5C /* Pods-ASAppleLogin_Tests.release.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
6003F581195388D10070C39A = {
isa = PBXGroup;
children = (
778973A92A405E9100219883 /* ASAppleLogin_Example.entitlements */,
60FF7A9C1954A5C5007DD14C /* Podspec Metadata */,
6003F593195388D20070C39A /* Example for ASAppleLogin */,
6003F5B5195388D20070C39A /* Tests */,
......@@ -247,6 +248,9 @@
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = "guojianpeng@svinvy.com";
TargetAttributes = {
6003F589195388D20070C39A = {
DevelopmentTeam = FVMHQ2U78C;
};
6003F5AD195388D20070C39A = {
TestTargetID = 6003F589195388D20070C39A;
};
......@@ -257,6 +261,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
......@@ -475,6 +480,8 @@
baseConfigurationReference = 9E1B09AF728040DF7BB5EAFD /* Pods-ASAppleLogin_Example.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = ASAppleLogin_Example.entitlements;
DEVELOPMENT_TEAM = FVMHQ2U78C;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "ASAppleLogin/ASAppleLogin-Prefix.pch";
INFOPLIST_FILE = "ASAppleLogin/ASAppleLogin-Info.plist";
......@@ -491,6 +498,8 @@
baseConfigurationReference = 96162463F31E7F4B65E6E1D6 /* Pods-ASAppleLogin_Example.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = ASAppleLogin_Example.entitlements;
DEVELOPMENT_TEAM = FVMHQ2U78C;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "ASAppleLogin/ASAppleLogin-Prefix.pch";
INFOPLIST_FILE = "ASAppleLogin/ASAppleLogin-Info.plist";
......
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:ASAppleLogin.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
......@@ -7,9 +7,12 @@
//
#import "ASViewController.h"
#import <ASAppleLogin/ASAppleLogin.h>
@interface ASViewController ()
{
ASAppleLoginRequest *_request;
}
@end
@implementation ASViewController
......@@ -17,6 +20,11 @@
- (void)viewDidLoad
{
[super viewDidLoad];
if([ASAppleLogin isSupported]){
UIView * btn = [ASAppleLogin createAppleIdAuthorizingButtonForTarget:self action:@selector(event_btnClicking)];
btn.frame = CGRectMake(30,100 , self.view.bounds.size.width-60, 40);
[self.view addSubview:btn];
}
// Do any additional setup after loading the view, typically from a nib.
}
......@@ -25,5 +33,15 @@
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)event_btnClicking
{
_request = [ASAppleLogin createLoginRequestForController:self];
_request.authSuccessHandle = ^(ASAppleUser * _Nonnull user) {
NSLog(@"gotUser:%@",user);
};
_request.authFailedHandle = ^(NSInteger code, NSString * _Nullable msg) {
NSLog(@"gotError:%@",msg);
};
[_request starts];
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>
PODS:
- ASAppleLogin (0.1.0)
DEPENDENCIES:
- ASAppleLogin (from `../`)
EXTERNAL SOURCES:
ASAppleLogin:
:path: "../"
SPEC CHECKSUMS:
ASAppleLogin: 379414bcd6af4d5dcc5cef41d56e11c6dccf9fe4
PODFILE CHECKSUM: 44f132e1ae90568b0a26ad8064b7e99ee264f207
COCOAPODS: 1.11.3
../../../../../ASAppleLogin/Classes/ASAppleLogin.h
\ No newline at end of file
../../../../../ASAppleLogin/Classes/ASAppleLoginRequest.h
\ No newline at end of file
../../../../../ASAppleLogin/Classes/ASAppleUser.h
\ No newline at end of file
../../../../../ASAppleLogin/Classes/ASAppleLogin.h
\ No newline at end of file
../../../../../ASAppleLogin/Classes/ASAppleLoginRequest.h
\ No newline at end of file
../../../../../ASAppleLogin/Classes/ASAppleUser.h
\ No newline at end of file
{
"name": "ASAppleLogin",
"version": "0.1.0",
"summary": "A short description of ASAppleLogin.",
"description": "TODO: Add long description of the pod here.",
"homepage": "https://gitlab.svinvy.com/oc/ASAppleLogin",
"license": {
"type": "MIT",
"file": "LICENSE"
},
"authors": {
"guojianpeng@svinvy.com": "svinvy@gmail.com"
},
"source": {
"git": "https://gitlab.svinvy.com/oc/ASAppleLogin.git",
"tag": "0.1.0"
},
"platforms": {
"ios": "10.0"
},
"source_files": "ASAppleLogin/Classes/**/*"
}
PODS:
- ASAppleLogin (0.1.0)
DEPENDENCIES:
- ASAppleLogin (from `../`)
EXTERNAL SOURCES:
ASAppleLogin:
:path: "../"
SPEC CHECKSUMS:
ASAppleLogin: 379414bcd6af4d5dcc5cef41d56e11c6dccf9fe4
PODFILE CHECKSUM: 44f132e1ae90568b0a26ad8064b7e99ee264f207
COCOAPODS: 1.11.3
#import <Foundation/Foundation.h>
@interface PodsDummy_ASAppleLogin : NSObject
@end
@implementation PodsDummy_ASAppleLogin
@end
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#else
#ifndef FOUNDATION_EXPORT
#if defined(__cplusplus)
#define FOUNDATION_EXPORT extern "C"
#else
#define FOUNDATION_EXPORT extern
#endif
#endif
#endif
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ASAppleLogin
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ASAppleLogin" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/ASAppleLogin"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ASAppleLogin
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ASAppleLogin" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/ASAppleLogin"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../..
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
# Acknowledgements
This application makes use of the following third party libraries:
## ASAppleLogin
Copyright (c) 2023 guojianpeng@svinvy.com <svinvy@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2023 guojianpeng@svinvy.com &lt;svinvy@gmail.com&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</string>
<key>License</key>
<string>MIT</string>
<key>Title</key>
<string>ASAppleLogin</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_ASAppleLogin_Example : NSObject
@end
@implementation PodsDummy_Pods_ASAppleLogin_Example
@end
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/ASAppleLogin"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ASAppleLogin"
OTHER_LDFLAGS = $(inherited) -ObjC -l"ASAppleLogin"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/ASAppleLogin"
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ASAppleLogin"
OTHER_LDFLAGS = $(inherited) -ObjC -l"ASAppleLogin"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
# Acknowledgements
This application makes use of the following third party libraries:
Generated by CocoaPods - https://cocoapods.org
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_ASAppleLogin_Tests : NSObject
@end
@implementation PodsDummy_Pods_ASAppleLogin_Tests
@end
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/ASAppleLogin"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/ASAppleLogin"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment