본문 바로가기

iOS

(7)
Push Notification 권한 허용 팝업이 뜨지 않을 때 개발 환경 Xcode 15 Target iOS: 12.1 테스트 기기: iOS 17 문제 앱을 빌드하고 실행하면 이전엔 푸시 허용 팝업이 잘 떴었으나, 어느 순간부터 안 뜨기 시작했고, device token을 가져오지 못함. Appdelegate.swfit func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error)..
CocoaPods 설치 및 설정 Cocoapods? CocoaPods 공식 문서에 따르면 아래와 같이 소개하고 있습니다. CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 97 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly. CocoaPods는 Swift와 Objective-C Cocoa 프로젝트를 위한 의존성 관리자입니다. CocoaPods는 97,000의 라이브러리를 보유하고 있으며, 300만이 넘는 앱들이 이를 사용하고 있습니다. CocoaPods는 당신의 프로젝트의 규모를 키우는..
[Swift] 앱의 화면 회전 제어 목차 1. 개요 2. 구현 1. 개요 프로그래밍적으로 아이폰 또는 아이패드임을 인지해서 각각의 화면 회전을 제어해줄 수 있다. if (UIDevice.current.userInterfaceIdiom == .pad 또는 .phone ) { ... } 하지만 코드의 복잡성이 늘기 때문에, 좀 더 간단한 방법을 찾게 되었고 Info.plist에서 간단히 해결할 수 있다는 걸 알게 되었다. 2. 구현 먼저, Xcode의 Info.plist에 아래의 키들을 추가해야 한다. 1. Supported interface orientations 2. Supported interface orientations (iPad) 3. Supported interface orientations (iPhone) 위와 같이 세로, 가로..
[Swift] WkWebview의 쿠키 저장 및 로드 목차 배경 구현 1. 배경 앱을 사용 중이거나, 홈 버튼을 눌러 잠시 내려두면 쿠키가 유지되었지만, 앱을 종료하면 저장된 쿠키가 모두 지워지는 현상이 있어서 앱을 수정하게 되었다. 특히, 앱을 종료한 직후엔 쿠키가 유지되었지만.. 다른 앱을 열어 아이폰의 메모리를 사용하게 되면 쿠키가 지워진다는 걸 알았다. 로그인 유지에 쿠키 인증값을 사용하기 때문에 쿠키를 유지하는 방법을 찾게 되었다. 2. 구현 개인적으로 생각한 구현 프로세스는 아래와 같다. Step 1. 앱이 Background 상태가 되면 쿠키를 UserDefaults에 저장해둔다. var result = [Any]() WKWebsiteDataStore.default().httpCookieStore.getAllCookies { (cookies) ..
[Swift] Status Bar / Home Indicator의 색상 변경 목차 1. 배경 2. Status Bar와 Home indicator 색상 변경 3. Status Bar만 색상 변경 1. 배경 앱의 현재 테마 모드가 라이트인지 다크인지 확인해서 웹뷰에 적용했지만, 상태 바와 소프트 홈 버튼의 색상은 변경되지 않아 부자연스러웠다. 그래서 위아래 색상을 테마에 따라 다르게 변경했다. 2. Status Bar와 Home indicator의 색상 변경 View Controller의 배경색을 바꾸면, 상태바와 홈버튼의 색상이 함께 변경된다. view.backgroundColor = .red 다크 모드인지 아닌지 판별해서 바꿔준다면 아래와 같이 할 수 있을 것이다. view.backgroundColor = .white if traitCollection.userInterfaceS..
[Xcode] m1 맥에서 시뮬레이터 빌드 오류 Could not find module for target 'x86_64-apple-ios-simulator' 실제 장치를 연결해서 빌드하면 잘 되는데, 시뮬레이터로 빌드하면 위와 같이 오류가 날 때 아래를 시도해 보자. XCode 닫는다. "Finder"를 열고 "Applications" 항목으로 이동 "Xcode"를 오른쪽 클릭 후 "Get info" 선택 "Open with Rosseta" 체크박스에 체크 Xcode를 재시작하고 빌드
[Swift] 네트워크 연결 상태 확인 목차 배경 구현 / 테스트 결론 1. 배경 앱이 실행되거나 사용하는 도중에, 폰의 네트워크 상태를 확인해서 연결이 끊어졌다면 알림을 띄워주고, 다시 연결되었다면 웹뷰의 url을 다시 로드하는 등의 처리하고 싶었다. 2. 구현 1. Network 모듈을 import import Network 2. 모니터 변수 생성 let monitor = NWPathMonitor() 3. 모니터에 핸들러를 등록 monitor.pathUpdateHandler = { [weak self] path in if ( monitor.currentPath.status == .satisfied ) { // 네트워크가 정상일 때 처리 } else { // .unsatisfied, .requiresConnection // 네트워크 연결이 ..