본문 바로가기

분류 전체보기

(102)
iOS16 - 개발자 모드(Developer Mode) 아이폰에 iOS 16으로 업그레이드하고 나서 기존 Xcode로 설치한 앱이 동작하지 않는 현상이 발생한다. 다음과 같이 개발자 모드를 활성화하라는 안내가 나타난다. Xcode에 연결해보니 비슷한 메시지가 나타나면서 앱을 설치할 수가 없다. 찾아보니 iOS 16에 도입된 개발자 모드를 활성화해야 한다. 개발자 모드 활성화를 하려면 설정 -> 개인정보 보호 및 보안(Privacy & Security) -> 개발자 모드에서 할 수 있다. 개발자 모드가 활성화되려면 기기를 재부팅해야 한다. 다음은 개발자 모드에 관련된 애플 문서 링크다. https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device
iPad 15.7과 Xcode 14 문제 iPad OS를 15.7로 업그레이드하고 나니 Xcode 14에서 앱이 올라가지 않는 현상이 발생한다. 이 문제는 Xcode 13에서 발생하지 않고 있다. 포럼에도 동일한 문제를 겪는 사람들이 많은 듯. https://developer.apple.com/forums/thread/714388 당분간 Xcode 13과 14를 모두 설치해놓고 써야겠다. ps. 이후 인텔 맥에서 해보니 해당 현상이 발생하지 않았다. m1 계열의 맥에서만 발생하는 듯하다. ps. 이후 iOS 15.7 기기 연결 오류를 수정한 14.0.1이 준비 중이다.
[Rocket.chat] HTTP, HTTPS, URL 설정 채팅 서버로 Rocket chat을 사용하고 있다. 초기 http로 설정하고 이후 https를 적용하고, http -> https 리다이렉션 설정을 했더니 js 로딩시 http가 혼합되는 Mixed Content Error가 발생한다. 해결책을 구글링하다가 발견해서 적용해본자. Rocket.chat은 도커로 동작 중. 몽고디비에 접속한다. 몽고디비 컨테이너 ID 확인 $ sudo docker ps CONTAINER ID IMAGE cea589b3ca4a rocket.chat:latest 809670637dcf mongo:4.0 컨테이너에 접속하면서 몽고디비에 접속 $ sudo docker exec -it 809670637dcf mongo Rocket.chat 대화가 저장되는 몽고디비의 데이터베이스 사용 ..
m1맥(apple silicon) 에서 안드로이드 개발 환경 준비 안드로이드 스튜디오 Android studio는 애플 실리콘 맥에서 로제타2 기반으로 동작한다. 앱 실행은 실기기에는 잘 되지만 에뮬레이터에서 동작하지 않는 한계가 있다. 안드로이드 에뮬레이터 특정 버전에서 앱 동작을 테스트하려면 어쩔 수 없이 기기 대신 에뮬레이터를 써야하는 상황이 발생한다. 구글링을 해보니 애플 실리콘용 에뮬레이터 프리뷰 프로젝트를 발견했다. 사이트 주소는 github.com/741g/android-emulator-m1-preview 이다. 릴리즈 페이지(github.com/741g/android-emulator-m1-preview/releases)로 이동하고 Assets을 확장하면 다음과 같이 다운로드 링크가 나타난다. dmg 파일을 다운로드하고 설치한다. 인증되지 않은 개발자 경고..
m1맥(apple silicon) 개발 환경 준비하기 Apple Silicon 인 m1이 장착된 맥미니를 구입해서 개발 환경을 세팅하고 있다. 이를 기록해놓는다. Xcode Native 로 바로 설치 가능하다 Homebrew 설치하기 arm(apple silicon)용과 x86용으로 2개 설치한다. 다음은 arm 용으로 Homebrew를 설치하는 명령이다. /opt/homebrew에 설치된다. /bin/bash \-c "$(curl \-fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))"다음은 x86 용으로 Homebrew 설치하는 명령이다. /usr/lo..
[iOS] 다크모드 비활성화 유지보수 중인 앱에 도저히 다크 모드를 지원할 시간과 에너지(+ 예산)가 없어서 다크 모드를 아예 비활성화하기로 한다. Info.plist 에 다음과 같이 User Interface Style 항목을 추가하고 Light를 입력하면 다크 모드가 비활성화된다.
[iOS] Xcode11에서 iOS13 이전 버전 지원하기 Xcode11에서 프로젝트를 생성하면 iOS13 이후에서 사용할 수 있는 타입을 사용하기 때문에 iOS 13 이전 버전에서도 동작하는 앱을 작성하려면 약간의 조작을 해야 한다. Xcode11에서 프로젝트를 생성하는 과정에서 스토리보드와 SwiftUI 선택할 수 있다. SwiftUI는 iOS 13 이후부터 사용할 수 있으므로 스토리보드를 선택한다. 프로젝트를 생성하고 Deployment info에서 동작 버전을 설정할 수 있다. 최소 동작 버전을 iOS13 이전으로 낮추면 다음과 같은 에러가 발생한다. UIScene, UISceneDelegate 등이 iOS13에 추가된 타입이다 보니 에러가 발생한다. @available 를 사용하라는 권고?가 있지만 다 지워버리도록 하자! 프로젝트 내비게이터에서 Scen..
[iOS] 웹뷰(WKWebView)에서 네이티브로 메세지 전달. 에러 수정 기록 웹킷의 웹뷰에서 window.webkit.messageHandlers를 이용하면 네이티브 영역(Swift 코드 부분)으로 메세지를 전달할 수 있다. WKUserContentController 를 이용해서 메세지의 이름과 메세지가 전달될 때의 처리할 대상(self)를 등록해야 한다. 다음과 같이 작성하면 될 줄 알았다..... let contentController = WKUserContentController() contentController.add(self, name: "hello") webView.configuration.userContentController = contentController 웹뷰에서 webkit.messageHandlers를 통해서 보내는 메세지는 다음과 같이 작성한 메소드에 ..