반응형 iOS42 [iOS] Crashlytics 적용 비정상 종료(앱 충돌)를 추적하기 위한 Firebase Crashlytics 적용하는 방법을 기록합니다. 1. Firebase Console - 파이어베이스 콘솔에서 프로젝트 추가 및 다운로드 받은 GoogleService-info.plist 파일 프로젝트에 추가 2. 프로젝트 CocoaPod 설치 및 Crashlytics 추가 - 프로젝트 폴더 경로에서 Pod 생성 pod init - Podfile에 아래 코드 추가 pod 'Firebase/Analytics' pod 'Firebase/Crashlytics' - Pod 설치 pod install 3. Firebase Configure - AppDelegate 파일에 아래 코드처럼 추가 import FirebaseCore @main class AppDel.. 2023. 1. 3. [iOS] Tag을 활용한 UIButton Action 처리 enum과 Tag를 활용하여 UIButton의 Action을 처리하는 방벙을 기록합니다. 이 글은 스토리보드가 아닌 코드 기반으로 설명되어 있습니다. UIButton의 Tag를 기능별로 Enum에 정의합니다. enum ButtonType: Int { case action1 = 1 case action2 = 2 case action3 = 3 } 위에 정의된 ButtonType으로 해당 UIButton에 맞게 tag를 설정합니다. 또한, 액션을 수행할 메서드를 3개의 버튼 selector 안에 아래와 같이 동일하게 작성합니다. private lazy var button1: UIButton = { let button = UIButton() button.setTitle("Button1", for: .normal.. 2022. 10. 28. [iOS] Custom Navigation Controller Pop Gesture Swift 커스텀 네비게이션 컨트롤러를 설정했을 때, Pop Gesture가 작동하지 않는 이슈 해결 방법을 기록합니다. 기본적인 NavigationController를 사용했을 때, Swipe로 현재 뷰컨트롤러를 스택에서 Pop할 수 있습니다. 하지만, 네비게이션 바를 커스텀했을 때, Pop Gesture가 작동하지 않아 해결 방법을 찾게 되었습니다. 익스텐션을 활용하여 viewDidLoad 메서드에서 interactivePopGestureRecognizer의 Delegate를 설정합니다. gestureRecognizerShouldBegin 메서드에서 스택에 2개 이상의 뷰컨트롤러, 즉 rootViewController를 제외한 뷰컨트롤러들이 있을 때 gestureRecognizer가 인식을 시작합니다. impo.. 2022. 9. 22. [iOS] 버튼 이미지가 표시되지 않는 이슈 UIButton 이미지가 표시되지 않는 이슈 해결 방법을 기록합니다. UIButton의 setImage 메서드를 통해 버튼의 아이콘 이미지를 설정할 수 있지만 아이콘 포멧이 맞지 않으면, tintColor가 표시되게 됩니다. 해당 이미지를 아이콘 포멧 이미지에 맞게 바꾸어 주면 해당 이슈를 해결할 수 있습니다. 또한, 해당 이미지를 original Image always로 렌더링하여 이슈를 해결 할 수 있고 이 방법을 아래 코드로 공유합니다. button.setImage(UIImage(named: "customImage")?.withRenderingMode(.alwaysOriginal), for: .normal) 부족한 점 피드백해주시면 감사합니다👍 Ref. https://www.dev2qa.com/ho.. 2022. 7. 11. [iOS/Xcode] Version of Xcode is incompatible with version of the OS on the device Xcode에서 실제 디바이스의 OS 버전을 지원하지 않을 때, 오류를 해결하는 방법에 관해 기록합니다. 에러 내용 This operation can fail if the version of the OS on the device is incompatible with the installed version of Xcode. You may also need to restart your mac and device in order to correctly detect compatibility. 원인 해당 오류가 발생하는 원인은 실제 디바이스의 OS 버전을 최신으로 업데이트하면서 Xcode 에서 지원하는 iOS 버전과 호환되지 않아 발생합니다. 해결 방법 1. 해당 iOS 버전을 아래 Github 레파지토리들 중에서.. 2022. 6. 17. [iOS/Xcode] 스토리보드 없이 프로젝트 개발 설정 Xcode에서 스토리보드 없이 개발하는 방법에 관해 기록합니다. Setup Xocde Project without Storyboard 1. 사용하지 않는 스토리보드를 삭제합니다. (Main.storyboard) 2. Main Interface "Main"삭제 3. info.plist에서 Main 삭제 4. SceneDelegate에서 Main Window 생성 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } windo.. 2022. 5. 15. [iOS] WKWebView 정리 Swift WKWebView를 사용하면서 설정했던 것들을 기록합니다. WKWebView 특징 기존의 UIWebview를 대신하여 사용하며 iOS 9 이상의 버전을 필요로 합니다. 또한, 자바스크립트 엔진인 Nitro를 사용해서 UIWebView보다 성능이 더 좋습니다. 로컬로 저장된 파일에 대한 Ajax 요청을 지원하지 않습니다. 쿠키 허용 설정 및 고급 캐시 설정 지원을 하지 않고 앱 종료 시 HTML5 로컬 스토리지가 삭제됩니다. 기본 설정 import UIKit import WebKit class ViewController: UIViewController { var webView: WKWebView! override func loadView() { let webConfiguration = WKWebViewCo.. 2022. 2. 4. [iOS/Xcode] 소스코드 공백 표시 Xcode에서 소스코드의 공백을 표시하는 방법에 관해 기록합니다. Editor 탭의 Invisible을 클릭하시면 간단하게 설정할 수 있습니다. 아래 사진과 같이 공백을 표시하는 설정할 수 있습니다. 2021. 12. 10. [iOS] Unwind Segue Unwind Segue에 관해 기록합니다. Unwind Segue는 기본적인 Segue를 통해 여러 화면을 전환한 상태에서 맨 처음 View Controller로 돌아가기 위해서 사용합니다. Navigation Controller를 이용해서 rootView Controller로 Pop할 수 있지만 그렇지 않다면 Unwind Segue를 통해 해결할 수 있습니다. 아래 그림으로 예를 들자면, A View Controller -> B View Controller -> C View Controller C View Controller -> A View Controller로 돌아간다고 했을 때 또 Segue를 하면 스택에 쌓이게 됩니다. 이럴 때, UnwindSegue를 설정해서 B View Controller와.. 2021. 11. 11. [iOS/Xcode] WKWebView 사용할 때 Log 제거 WKWebView를 사용하면서 생기는 Log를 제거하는 방법을 기록합니다. WF: _userSettingsForUser mobile: { filterBlacklist = ( ); filterWhitelist = ( ); restrictWeb = 1; useContentFilter = 0; useContentFilterOverrides = 0; whitelistEnabled = 0; } WF: _WebFilterIsActive returning: NO 위 로그와 같은 것들이 뜨게 되는데 이를 제거하는 방법을 설명합니다. 우선 Xcode 메뉴에서 Product -> Scheme -> Edit Scheme를 들어갑니다. 위 그림에서 Environment Variables에 + 버튼을 누르고 Name은 OS_A.. 2021. 7. 13. 이전 1 2 3 4 5 다음 반응형