개발자 계정 필수!
Xcode에서 앱을 엽니다.
Apple Developer 사이트에서 앱 번들 ID를 만듭니다.
- 제일 아래에 Account 에서 “Certificates, Identifiers & Profiles” 를 클릭합니다.
- "Identifiers" 섹션으로 이동합니다.
- "+" 버튼을 클릭하여 새로운 식별자를 생성합니다.
- "App IDs" 카테고리를 선택합니다.
- "App ID Description" 필드에 앱을 설명하는 이름을 입력합니다.
- "Explicit App ID" 옵션을 선택합니다.
- "Bundle ID" 필드에 앱의 번들 ID를 입력합니다. 번들 ID는 com.companyname.appname과 같은 형식으로 작성됩니다. 이 때, companyname은 개발자 회사의 이름 또는 개인 이름을, appname은 앱 이름을 나타냅니다.
- "App Services" 섹션에서 앱이 사용할 서비스를 선택합니다.
- "Continue" 버튼을 클릭하고, 요약 정보를 확인한 후 "Register" 버튼을 클릭합니다.
Apple Developer 사이트에서 앱 ID를 만듭니다.
Bundle ID 만들때와 1~3번 동일합니다.
- "Services IDs" 카테고리를 선택합니다.
- "Description" 필드에 서비스 ID를 설명하는 이름을 입력합니다.
- "Identifier" 필드에 서비스 ID를 입력합니다. 이 때, com.companyname.servicename과 같은 형식으로 작성됩니다.
- "Continue" 버튼을 클릭하고, 요약 정보를 확인한 후 "Register" 버튼을 클릭합니다.
Xcode에서 개발자 인증서와 개인 키를 만듭니다.
"Xcode" 메뉴에서 "Preferences” → Account → Manage Certificates → + 버튼을 눌러 새 인증서 작성 → OS App Development"을 선택하고, 요청된 정보를 입력한 후 "Continue"를 클릭합니다.→ 개발자 인증서가 생성되면, "Download" 버튼을 클릭하여 인증서를 다운로드
Xcode에서 App ID를 생성합니다.
"Project Navigator"에서 앱을 선택 → "General" 탭을 클릭 → "Bundle Identifier" 필드에 앱의 번들 ID입력 → "Team"을 선택하고, Apple Developer 계정을 선택합니다.
Xcode에서 서비스 ID를 생성합니다.
"Project Navigator"에서 앱을 선택하고, "Capabilities" 탭을 클릭합니다. → "Sign in with Apple" 옵션을 활성
Xcode에서 Sign-in with Apple 기능을 추가합니다.
- Apple Developer 계정과 연결된 Xcode 프로젝트를 엽니다.
- "Capabilities" 탭을 선택합니다.
- "Sign in with Apple" 옵션을 활성화합니다.
- "Add an existing signing key" 또는 "Create a new key"를 선택합니다.
- "Enable as a primary App ID"를 선택합니다.
- "Save" 버튼을 클릭합니다.
- Xcode 프로젝트를 다시 빌드합니다.
앱에서 Sign-in with Apple 버튼을 만듭니다.
import UIKit
import AuthenticationServices
class ViewController: UIViewController {
@IBOutlet weak var signInView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
addButton()
}
func addButton() {
let button = ASAuthorizationAppleIDButton(authorizationButtonType: .signIn, authorizationButtonStyle: .black)
button.addTarget(self, action: #selector(loginHandler), for: .touchUpInside)
signInView.addSubview(button)
}
@objc func loginHandler() {
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self
controller.presentationContextProvider = self as? ASAuthorizationControllerPresentationContextProviding
controller.performRequests()
}
}
extension ViewController : ASAuthorizationControllerDelegate {
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
if let credential = authorization.credential as? ASAuthorizationAppleIDCredential {
let user = credential.user
print("👨🍳 \\(user)")
if let email = credential.email {
print("✉️ \\(email)")
}
}
}
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
print("error \\(error)")
}
}
'IOS - Swift' 카테고리의 다른 글
[iOS/Xcode] CocoaPods 설치 오류(gem) (0) | 2023.03.03 |
---|---|
[iOS/Swift] GoogleLogin구현부터 idToken 내려받기까지 (0) | 2023.03.03 |
[iOS/Swift] presentedViewController / presentingViewController (0) | 2023.01.29 |
[WWDC2022] What’s new in UIKit (0) | 2023.01.29 |
[iOS/Swift] TableVIew 높이 유동적으로 조절하기 (0) | 2023.01.24 |