GitHub API 시작하기 for iOS
04 Jul 2020 | iOS개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
삽질을 돌고돌아하긴 했지만, 제 글이 조금 불친절할 수도 있습니다.
우선 환경이 iOS10기준으로 진행될 것이기 때문에 iOS SDK v1 으로 진행됩니다.
위 카카오 개발자 링크를 따라 들어가면 당연하게도 xcode와 kakao SDK 설치를 하여야 합니다.
개발 환경을 맞추기 위해(우리는 iOS개발을 하기에) xcode를 필수적으로 설치해야하고, 카카오 플랫폼 서비스에서 제공하는 기능을 사용하기 위해 카카오에서 제공해주는 kakao SDK를 설치해야겠지요~ kakao SDK를 설치해야할 때는 본인의 iOS 환경에 맞춰 설치하는 것이 중요합니다. 현재는 iOS13까지 나왔기에 최신 버전을 설치하면 되겠지만, 간혹 기업에서 제공하는 환경이 그 이하일 경우에는 그에 맞는 SDK 설치는 필수! 잘 확인합시다.
Frameworks, Libraries and Embedded contents 에 우리가 다운받은 SDK를 넣어줍니당
여기서 중요한건 KakaoOpenSDK.framework 파일만 넣어주는 것입니다.
이렇게 추가된 프레임워크가 잘 들어가져있는지 위 사진과 같이
[Target] > [build phase] > [Link Binary With Libraries] 에서 확인해봅니다.
그리고 Other Linker Flags에 “-all_load” 를 추가해야합니다. 이때 순서 및 주요한 부분은
kakao developer로 들어가 로그인 후 내 어플리케이션 등록을 해줍니다. [내 어플리케이션] > [앱 만들기] 클릭!
사진은 굳이 등록하지 않아도 되며(지금은) 앱 이름과 회사 이름만 등록해주면 된다. 그러면 아래와 같이 앱 키가 만들어진다.
그리고 이제 중요한 것! 플랫폼을 추가해주어야 한다.
플랫폼 설정하기 클릭! 우리는 iOS 플랫폼을 설정할 것이기 때문에 iOS 플랫폼 설정하기 클릭합니다.
필수적으로 적어줘야하는 것은 번들 ID인데 여기에는 우리가 만든 프로젝트의 번들 ID를 적어주면 된다.
번들ID가 무엇인지 모르겠다면 [Target] > [General] > [Bundle identifier] 에서 확인하면 된다.
그리고 이제 또 중요한 부분!
다시 우리 프로젝트 xcode로 돌아와 URL types 를 추가해준다.
[Target] > [Info] > [URL types]에 들어가 위 사진처럼 설정해주는데 이떄 중요한 것은
URL Schemes에 kakao 문자열을 붙인 뒤 카카오 앱 키를 적어줘야 한다는 것이다.
그리고 중요한 것은 이때 이 카카오 앱 키라는 것이 우리가 kakao developer에서 어플리케이션 등록을 하면서 받은 네이티브 앱 키 라는 것이다. 따라서 **kakao<내 어플리케이션의="" 네이티브앱="" 키="">** 를 적어주면 된다.내>
그리고 이제 info.plist로 간다.
위 사진과 같이 KAKAO_APP_KEY 라는 키를 만들어 그 안에 밸류값으로 네이티브 앱 키 를 입력해준다.
이때는 kakao 문자열을 붙이지 않아도 된다.
그리고… 아직 끝나지 않았다
info.plist를 [Open As] > [Source Code]로 열어준다.
그리고 kakao SDK 화이트리스트 설정으로 가서 해당 소스코드를 추가해준다.
해당 스트링 값들을 추가해주면 되는데, 이때 처음 스트링값은 우리가 적어주었던 **kakao<네이티브앱 키="">** 를 적어주면 된다.네이티브앱>
그리고 이제 거의 마지막으로 다다르고 있는데! 이제 bridge header 를 만들어줍니다.
말그대로 헤더 파일을 만들어주는 것이고 헤더파일을 만들었으면
SDK Header 불러오기 해당 페이지에서 제공하는 소스코드를 복사붙여주기 해줍니다!
그리고 최종적으로 [Target] > [Build Settings] > [Swfit Compiler] & [Objective-C Bridging Header]에서 브릿지헤더파일의 경로를 잡아줍니다! 이떄 에러가 날 수 있는데, 해당 에러의 이유는 우리가 헤더파일에 SDK의 경로를 설정해주었는데 해당 경로에 SDK 파일이 존재하지 않기 때문이다.
즉, 우리 프로젝트 내에 SDK 파일이 존재해야한다는 것이다.
위 사진과 같이 헤더파일이 가리키고 있는 곳에 SDK 파일이 존재해야한다는 것이다.
그러면 에러없이 빌드가 되는 것을 볼 수 있을 것이다!
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
xCode 11.2로 새 프로젝트를 만들면 SceneDelegate.swift파일이 추가 된다.
이를 그냥 지우고 빌드하면 검은 화면이 나오고, iOS13이상으로 강제하여야 하기 때문에 제거하는 법을 정리해보려 한다.
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
info.plist 파일을 옮기게 되면 해당 에러가 발생한다.
에러내용은 위와 같이 빌드 입력 파일을 찾을 수 없다는 의미로, 프로젝트를 생성할때 자동적으로 Xcode 최상위의 info.plist파일을 생성하는데 내가 그 파일을 다른곳으로 옮겼기 때문에 찾을 수 없다고 에러를 띄워주는 것이다. 따라서 info.plist가 어디에 있는지 정확히 알려주면 된다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
프로젝트를 진행하면서 scroll view를 구현할 일이 생겼는데, 그냥 뷰컨트롤러 위에 스크롤뷰를 올리고 (0,0,0,0)을 하는데 적용은 되지않고 계속 빨간줄만 뜬다.
찾아보니 이번 Xcode 11 버전에서 인터페이스 빌더로 스크롤뷰를 만들때 contentLayoutGuide, frameLayoutGuide가 기본적으로 활성화 되도록 추가되었다고 한다.
Content and Frame Layout guides are supported for UIScrollView and can be enabled in the Size inspector for more control over your scrollable content. (29711618)
릴리즈 노트를 보면 content 및 frame 레이아웃 가이드는 UIScrollView에서 지원되며, 스크롤 가능한 컨텐츠를 보다 효과적으로 제어할 수 있도록 Size inspector에서 활성화할 수 있다고 나와있다.
Size inspector에서 확인해보면 Content Layout Guides 체크박스가 추가되어있습니다. 스크롤뷰 생성시 기본적으로 활성화 되어있기 때문에 따로 체크할 필요는 없습니다.
ScrollView의 변환되지 않은 컨텐츠 사각형을 기반으로 하는 레이아웃 가이드
ScrollView의 컨텐츠 영역과 관련된 오토 레이아웃 제약 조건을 만드려면 이 레이아웃 가이드를 사용하면 된다
ScrollView의 변환되지 않은 프레임 사각형을 기반으로 하는 레이아웃 가이드
컨텐츠 사각형 반대로 ScrollView 자체의 프레임 사각형을 포함하는 오토 레이아웃 제약 조건을 만드려면 이 레이아웃 가이드를 사용하면 된다
ScrollView를 추가하고 화살표를 눌러 ContentLayoutGuide와 FrameLayoutGuide가 포함되어있는걸 확인할 수 있다.
가장 간단하게 스크롤뷰를 구현하는 방법은 size inspector에 체크되어있는 content layout guids
를 해제하면 이전에 했던 방법처럼 적용이 가능해진다.
ScrollView를 추가했으니 알맞게 제약을 설정해준다.
우선 릴리즈된 xcode에서는 safe area에 맞춰 (0,0,0,0)을 해주면 아래와 같이 빨간줄이 뚝! 뜨게된다.
ScrollView안에 컨텐츠를 넣기 위한 상위 View 하나를 추가해준다.
이때 View의 제약조건을 ScrollView에 걸지 않고 Content Layout Guide에 걸어준다.
여전히 빨간줄이 떠있다.
이제 Frame Layout Guide 에 Equal Widths 나 Equal Heights 제약을 추가해 고정시킬 방향을 설정한다.
새롭게 릴리즈된 xcode를 살펴보았으나.. 나는 스크롤뷰에 있어서 사실 더 편한 건지는 잘 모르겠다.