일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- appstore
- Firebase
- darkmode
- mac
- Archive
- Git
- error
- geofencing
- 개발자
- rxswift
- FLUTTER
- 한글
- iOS16
- Xcode
- Session
- Notification
- Apple
- github
- view
- MacOS
- Swift
- 이미지
- UIButton
- IOS
- SwiftUI
- Code
- JPA
- window
- Realm
- 웹뷰
- Today
- Total
목록Xcode (44)
EEYatHo 앱 깎는 이야기

Error 갑자기 Unable to boot the Simulator. 라는 Alert 가 나오면서 시뮬레이터가 실행이 안된다. 아마 Flutter, React Native 등 여러 크로스플랫폼을 실행하다가 생긴 버그인듯,, Solution 좌측 상단 사과모양 > 이 Mac에 관하여 > 저장 공간 > 관리 > Xcode 캐시 삭제 Reference https://stackoverflow.com/questions/72229589/flutter-xcode-error-unable-to-boot-the-simulator

HapticEngine 으로 진동을 구현했었다. 구현 포스팅 그런데 백그라운드로 갔다가 포그라운드로 돌아온 후, 진동을 켜면 com.apple.CoreHaptics Code=-4805 에러가 발생했다. CHHapticError 정의 를 보니, 엔진이 켜져있지 않다고 한다. Solution HapticEngine 은 앱이 백그라운드 상태로 가면 꺼진다. 따라서 포그라운드 진입시, HapticEngine 을 다시 start 시켜 해결했다. /// in AppDelegate override func applicationWillEnterForeground(_ application: UIApplication) { do { try VibrationManager.shared?.hapticEngine.start() }..

CHHapticEngine iOS 에서 제공하는 CHHapticEngine 을 이용하여 다양한 진동을 구현할 수 있다. 보다 자세한 설명을 원한다면 공식 링크에서 확인하기. CHHapticEngine 링크 큰 개념은, HapticEngine 에 진동 Pattern 을 넣어서 Player 를 생성한다. Player 를 start 및 stop 한다. CHHapticPattern HapticPattern 에는 지속시간과 세기가 있으며, 세기에는 강도(hapticIntensity) 와 날카로움(hapticSharpness) 이 있다. 강도는 클수록 묵직한 느낌이다. 내 생각엔 진폭을 담당한다. 날카로움은 클수록 따가운(?) 느낌이다. 내 생각엔 진동수를 담당한다. 애플에서 제공하는 예시 프로젝트를 실행해보면 직..

파이어베이스에서 Crashlytics를 사용하려면 디버그 기호파일(dSYM)을 업로드 해야한다. 수동으로 dSYM파일을 다운 or 추출해서 업로드하는 방법도 있지만, 빌드 마지막 단계에 Xcode에서 제공하는 Run Script를 삽입하여, 자동으로 업로드하는 방법이 있다. 관련 링크 https://firebase.google.com/docs/crashlytics/get-started?authuser=0&hl=ko&platform=ios#uikit https://firebase.google.com/docs/ios/installation-methods?authuser=0&hl=ko 1. dSYM 추출 여부 세팅 Build Settings dSYM 검색 Debug Information Format에서 Deb..
웹뷰에서 내려오는 status code 로 에러처리를 하려하는데, 테스트할 만한 stub이 없어서 정리. 테스트할 status code URL 404 https://github.com/qwdscxzvdw 502 https://scrap.uznam8x.space/ 코드 /* 웹뷰 response가 오고 난 후, 다시한번 탐색여부를 결정하는 대리자 메소드 statusCode로 에러처리 decidePolicyFor navigationAction에서 탐색을 거부했다면 이 대리자까지 오지않음 */ func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (W..

레거시 프로젝트가 싫은 이유 하나 추가.. CI/CD 할 때 더럽게 힘들다.. 물론 내가 실력이 모자라서 그런거겠지만 zz.. 개인 프로젝트에 도입할 땐 하루이틀이면 됐는데, 레거시에는 여러 알수없는 설정들과 많은 서드파티들 때문에, 구글링으로 나온 일반적인 해결책이 통하지 않는 에러가 많아서 고생했다. CompileSwiftSources normal arm64 error: failed to emit precompiled header error: generate-pch command failed with exit code 1 file not found with include; use "quotes" instead *.h file not found 등등... 만약 나와 같은 문제를 겪는 사람이 있다면, 아..

색을 표현하는 방법은 RGB라고 해서, 단순하게 끝이 아니다. 어떤 모델인가에 따라, 각 상수(R,G,B)들이 가지는 가중치가 달라진다. 일반적인 모델로 sRGB가 있으며, ( 0.0~1.0 범위, 8비트 ) 0.0~1.0의 범위를 초과한 값도 색으로 표현해주는 Extended sRGB가 있고, ( Xcode의 기본 ColorSpace ) 16비트를 사용하면서 표현할 수 있는 색 범위가 넓어진 DisplayP3 (DP3)도 있다. 이런 모델들을, Xcode, Swift 에서는 ColorSpace 라고 하며, 이미지 파일에서는 ColorSync Profile 이라고 한다. iOS9.3 & 아이폰7 부터 DisplayP3 모델을 지원하며, 디자이너분들에게 DP3로 적용해달라는 요청이 들어와서 처음 알게 되었..

과거 런치스크린을 스토리보드로 하나의 뷰를 띄워주는 형태가 아닌, static image 여러개로 때우던 방식이 있었다. 그러나 이런 방식은, 다양한 스크린 크기에 대응하려면 크기마다 이미지가 있어야 하기 때문에, 번거롭고 어렵워서 Deprecated 되었다. 이런 방식이 적용된 레거시 프로젝트에서, 쓰지도 않는다고 저 LaunchImage를 삭제해버리면, 빌드시 오류가 발생한다. build setting에서 asset을 검색하고, Asset Catelog Launch Image Set Name 항목을 함께 삭제해주면 된다.