일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- error
- FLUTTER
- Apple
- geofencing
- darkmode
- Git
- Swift
- Archive
- Firebase
- appstore
- 한글
- Code
- rxswift
- Realm
- 개발자
- window
- 웹뷰
- UIButton
- shorebird
- MacOS
- github
- iOS16
- SwiftUI
- JPA
- Xcode
- IOS
- 이미지
- Session
- mac
- Notification
- Today
- Total
목록IOS (176)
EEYatHo 앱 깎는 이야기

tableView.reloadRows(at: [indexPath], with: .none) 해당 코드에서, witth부분(애니메이션부분)은, none을 제공하고 있지만, 실제는 automatic과 동일하게 작동한다 ㅡㅡ 일해라 애플.... 애니메이션 없이 reloadRows를 하고 싶다면, 애니메이션들을 명시적으로 비활성화 할 수 있는 UIView.performWithoutAnimation를 사용하면 된다. UIView.performWithoutAnimation { tableView.reloadRows(at: [indexPath], with: .none) }

Xcode 12.4 사용중인데, iOS15 실제 아이폰, 아이패드에서 디버그가 안된다 ㅡㅡ iOS14.4 시뮬에서는 된다. 구글링해보니 Xcode랑 iOS 버전 매칭 문제인듯하다. ( _dyld_process_info_create 함수의 구현이 바뀌었단다.. ) 해결방법 settings set plugin.process.gdb-remote.packet-timeout 300 1. 홈디렉토리에 .lldbinit 파일 만들고, 위 코드를 넣어준다. 이 방법은 근본적인 해결책이 아니라, 그냥 오래 기다린다는 거다. 나 같은 경우, 에러 메세지도 안뜨고 그냥 쭉 무반응이더라. 근본적인 문제는 디버그 하는데에 시간이 겁~~나 걸리게 된 것이다. 한무루프..? 2. 버전에 맞는 Xcode를 사용한다. 지금 13버전이..

1. Xcode 자체적으로 지원해주는 기능을 사용한다. Product -> Clean Build Folder 하지만,, 완벽하게 지워지진 않는다. 2. 직접 남아있는 찌꺼기를 지운다. 경로 : ~/Library/Developer/Xcode/DerivedData/* CMD로 가능 rm -rf ~/Library/Developer/Xcode/DerivedData/* 직접 찾아가서 지우기 가능 ( 라이브러리 폴더가 안보이면 커맨드+쉬프트+. 을 입력하면 숨김폴더가 보인다. )

애플로그인 -> 이메일 가리기 선택시, 앱에는 xxxx@privaterelay.appleid.com 형태의 이메일이 온다. ( privaterelay email ) pricaterelay email로 이메일 전송시, Apple에서 정상 email로 포워딩을 해주는데, 발신자가 등록된 도메인 or 이메일이어야 한다. 관련된 자세항 사항은, 아래 애플 문서 참고! Apple Developer Documentation developer.apple.com 발신 도메인 및 이메일 등록하기 애플 사이트 -> Cerificates, Identifiers & Profiles -> 좌측 메뉴에서 More 선택 -> Configure 선택 도메인이나 이메일을 등록하기위해, + 버튼 선택. 그럼 위와같은 화면이 나오는데, ..

언제부턴가 막혀서 해당 꼼수로 email 받아올 수 없게 되었따.. 애플로그인시 해당 함수로 콜백되며, email을 포함한 각종 유저 정보를 얻을 수 있다. func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) { guard let credential = authorization.credential as? ASAuthorizationAppleIDCredential else { return } let email = credential.email let user = credential.user var authCode = "" if l..
UIActivityViewController로 action sheet를 띄우거나, share기능을 만들거나 할 때, iPad 지원을 위해 popoverPresentationController를 설정하곤 한다. 1. popoverPresentation을 띄울 뷰를 설정한다. vc.popoverPresentationController?.sourceView = view 2. 설정해준 뷰에서, popoverPresentation를 띄울 좌표를 설정 할 수 있다. vc.popoverPresentationController?.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0) 3. popoverPresentation는 ..
Dictionary -> Data /// 1 let imageData = UIImage(named: "sissor")?.jpegData(compressionQuality: 0) let dict: [String: Any] = [ "string": "bbb", "data": imageData, "array": ["aaaa", "bbbb", 1234] ] let dictData = try? PropertyListSerialization.data(fromPropertyList: dict, format: .binary, options: .zero) /// 2 let jsonData = try? JSONSerialization.data(withJSONObject: dict) Data -> Dictionary ///..
let userAgent = UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent")! + " \(customAgent)" UserDefaults.standard.register(defaults: ["UserAgent" : userAgent]) 이렇게만 해주면 정말 신기하게도; WKWebView의 userAgent 기본값으로 세팅된다. ( webview.customAgent = "\(필요한 값)" 이런식으로 안넣어줘도 말이다!! ) 오우오우 신기방기 그런데 iPhone에서만 기본값으로 세팅되고, iPad는 세팅이 안된다; 이게 대체 모손일이야....... 결국 iPad까지 고려하면, 아래처럼 세팅 해줘야한다.. webView.custom..