일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MacOS
- Swift
- JPA
- Git
- view
- 웹뷰
- 한글
- 개발자
- error
- appstore
- 이미지
- darkmode
- UIButton
- Firebase
- Realm
- SwiftUI
- geofencing
- github
- Code
- Notification
- window
- Xcode
- Apple
- iOS16
- Session
- rxswift
- mac
- Archive
- IOS
- FLUTTER
- Today
- Total
목록분류 전체보기 (269)
EEYatHo 앱 깎는 이야기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bt3YPV/btrlEJJOpXB/7aKoygXPIBzXduOaHLY6W1/img.png)
정의 IDFA ( Identifier For Advertisers ) iOS 의 광고식별자이다. Apple이 사용자의 기기에 무작위로 할당하는 기기 ID. IDFA는 개인 정보를 노출하지 않고 사용자를 추적하고 식별하는 데 사용하며, 광고주는 IDFA로 맞춤형 광고를 제공. ADID ( Advertising Identifier ) iOS 6.0 부터 광고식별자로 사용하라고 제공하는 디바이스 식별자이다. = iOS 6.0 부터, ADID 를 IDFA 로 사용한다. ( 그 전에는 UDID ) ADID 애플 문서 링크 IDFA 특징, 성질 앱의 삭제 및 재설치 여부와 관계없이, 동일한 IDFA를 가진다. 단일 벤더에서 모든 앱에 할당하고 해당 벤더의 모든 앱을 제거하면 바뀌는 IDFV 와는 달리, IDFA는 ..
일반적인 값들의 마이그레이션 방법 Realm 클래스를 마이그레이션 할 때, oldObject의 값에 접근하기 위해서는,아래처럼 oldObject의 string 키값으로 접근하는 것이 일반적일텐데,해당 방법으로는 List 값에는 접근이 안된다. ( firstName과 lastName을 더해서 fullName이라는 값을 추가하는. List가 필요없는 케이스는 잘 됨. )migrationBlock: { migration, oldSchemaVersion in if oldSchemaVersion import RealmSwift// new Personclass Person: Object { @objc dynamic var firstName: String = "" @objc dynamic var l..
요약 iOS14 미만은 UIStackView의 layer이 CATransformLayer이라 backgroundColor 속성을 무시한다. iOS14 이상부터는 UIStackView의 layer이 CALayer로 바뀌면서 backgroundColor 속성을 사용할 수 있다. 따라서 버전분기 코드로 대응하면 된다. iOS 12에서 stackView의 backgroundColor가 이상한 이슈가 발견되었다. 아래 코드를 실행해도, backgroundColor를 찍어보면, nil이 나온다/? stackView.backgroundColor = .blue (lldb) po stackView.backgroundColor "nil" iOS12에서는 UIStackView의 layer은 CATransformLayer 이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cYvCOn/btrjvRK0SVn/vgyFPBqWeZX39iI4udzoy0/img.jpg)
개발하면서 url에 있는 fragment는 써본적이 없었는데, 카카오톡 채널기능 관련 작업을 하다가, 몇몇 url 뒤에 #none을 붙혀주는 것을 발견하고 궁금해서 찾아보니 이게 fragment란다. 특정 content의 위치를 가르키기 위한 값이며, 주로 긴 글에서 특정 문단을 가르키는 용도로 사용한다. 어떤 문서를 읽을 때, 목차에 있는 소제목을 누르면 해당 문단으로 스크롤 되는 경험이 있을 것이다. 아래 예시처럼, 한 페이지 안에서 원하는 곳으로 스크롤할 때 쓰인다고 한다. * 같은 페이지지만, 다른 스크롤 위치 https://developers.kakao.com/docs/latest/ko/getting-started/sdk-js#hybrid-app https://developers.kakao.co..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsPebX/btri1cVCkGv/bV3xjuyXd8ShCA4OxenHb1/img.png)
아래Button > View > Label 형태의 UI를 구성했었고, View, Label 영역의 터치를 Button이 수신하게 하고 싶었다. 직관적으로는 아래처럼 하면 될 듯 했지만, 안된다. view.isExclusiveTouch = false label.isExclusiveTouch = false // Don't work.. 답은 isExclusiveTouch 가 아닌, isUserInteractionEnabled 이다. view.isUserInteractionEnabled = false 심지어 label은 건들지도 않아도 된다. UILabel의 isUserInteractionEnabled 기본값이 false라서 그렇다.
if let url = URL(string: urlString) { ... } 해당 코드를 사용할 때, urlString에 한글이나 공백이 포함되어 있으면 nil이 나온다. 이를 해결하기 위해서는 PercentEncoding을 하면된다. if let safeString = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), let url = URL(string: safeString) { ... } PercentEncoding은 url에 사용할 수 없는 문자들을 UTF-8형태로 인코딩하고 앞에 %를 붙혀준다. ( 영어, 숫자, 몇몇 특수문자들을 제외한 수 많은 문자들 ) ex ) 한글 -> %ED%95%9C%EA%B8%80 주..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/m0kiS/btriDxHpxuU/QFaqQu3Wv6lOwIJZUScNnK/img.png)
nib must contain exactly one top level object which must be a UITableViewCell instance xib 최상단에 view가 2개 이상일 경우 발생. 언제 드갔지.. ㅡ,ㅜ
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mfAgP/btriJuvHDx3/xypPvNyFPnsy1pWWHWKcQ1/img.png)
dSYM 파일은 아래 글을 보면 다운 받을 수 있고, Swift ) 앱스토어 커넥트 dSYM 위치, 다운안됨 - EEYatHo 파이어베이스에서 크래쉬가 어떤 버전에서 어떻게 나는지 잘 알려주는 Crashlytics. 관련 작업을 하는데, dSYM이 필요하다. 파이어베이스 가이드대로 하니까, dSYM 파일이 안보인다..-- ( 가이드 업데 eeyatho.tistory.com 파이어베이스의 설명을 보면 /path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs 터미널로 이 스크립트를 실행하라고 한다. 좀더 풀어서 쓰면, 아래와 같다. [upload-sym..