iOS
-
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONSiOS/Swift 2024. 7. 29. 15:54
XCode15에서 쓸 수 있는 기능!이제야 눈치챘다... ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = true 로 할 경우이를 통하여, asset의 Color, Image를 property에 접근하듯 사용 할 수 있다!말인 즉, asset이 제거되었을 때, 참조할 asset이 사라졌으므로, compile time에 build error를 방출 할 수 있게된다!!!해당 설정으로 필요한 asset이 제거되거나, 네이밍이 변경됨을 compileTime에 감지 할 수 있게된다! ( 근데 Asset내부의 컨텐츠 네이밍과 변수화 된 네이밍이 완전 일치하지는 않는다. ) 위 옵션으로 생성된 property는 자동 생성된 GeneratedAssetSy..
-
fastlane을 쓰고, TCA 버전업을 했는데 빌드가 안된다고요?iOS/Swift 2024. 7. 25. 17:07
TCA 0.55.0 -> 1.5.6 으로 업데이트를 했습니다.Macro에 대한 Popup이 노출되더라구요빌드머신을 따로 두고 fastlane으로 빌드 시, 클린 빌드, derivedData, SPM등 모든 내용을 제거하고 빌드한다면, Macro 허용 팝업이 다시 발생 할 것이고, 그로 인하여 fastlane은 빌드를 못하게 됩니다.https://forums.swift.org/t/tcas-macros-and-ci-cd/71104/2 같은 링크에서도 이러한 경우에 대한 해결 방법을 제시합니다.fastlane은 어떻게 하느냐? xcargs: '-skipMacroValidation' 를 추가해 줍니다. https://docs.fastlane.tools/actions/build_app/ 를 참조하시고,..
-
[swift] "yyyy-MM-dd'T'HH:mm:ss"형식 String -> Date dateFormat 변환 실패iOS/Swift 2023. 12. 14. 10:11
서버로부터 "yyyy-MM-dd'T'HH:mm:ss"형식의 String을 전달받는다. let df = DateFormatter(format: "yyyy-MM-dd'T'HH:mm:ss") df.timeZone = TimeZone(abbreviation: "GMT+9") 의 설정으로 변환한다. 그런데, 간혹 어떤 해당 DateFormatter를 사용하여 String -> Date 변환이 실패하는 경우가 있다. 보통은 사용자 디바이스의 Locale 설정에 따라서 문제가 생기는 걸로 보인다. 내 경우, 디바이스의 Locale 설정이 미국 iPad에서 발생했으며, OS버전을 가리지 않았다. 해결법은 간단하다. df.locale = Locale(identifier: "en_US_POSIX") 를 추가한다.
-
Cocoapods 사용 시 , Xcode14.3 achieve 문제 해결 방법iOS 2023. 4. 4. 16:06
현상 : Fastlane의 match 혹은 provisiningProfile의 적용이 정상적으로 작동하지 않음. Xcode에서 Achieve 시, build Phase에서 cocoapods 관련 script에서 Error 발생 원인 : Xcode 14.3 에 대한 대응이 Cocoapods 1.12.0 에서 적절하지 않음. 정상 해결 방법: cocoapods의 다음 버전이 나오길 기다림 ( 해당 에러에 대한 내용은 cocoapods master에 merge 됨.) 임시 적용: https://github.com/flutter/flutter/issues/123852#issuecomment-1493232105 의 내용을 임시 적용 - podfile에 내용을 추가 post_install do |installer|..
-
Xcode 14에서 증가한 용량 줄이기iOS 2022. 11. 29. 11:00
현상 iOS16을 지원하며, Xcode14를 사용하기 시작했다. 많은 문제가 있었지만, 그 중 앱의 용량이 갑자기 치솟는 현상이 발생하였다. 해당 현상의 원인으로는 bitCode를 사용하지 않게되면서, build process 중 binary simbol stripping을 애플이 해주지 않게 되었기 때문. 해당 내용의 상세한 설명은 해결방안 1의 링크를 참조할 수 있다. 해결 방안 이를 해결하기 위한 2가지 Reference를 참조하였다. binary simbol stripping https://www.emergetools.com/blog/posts/how-xcode14-unintentionally-increases-app-size asset image optimazation https://sowenj..
-
렛츠스위프트_60호_What’s new in Swift 5.7 | by Md. Ibrahim HassaniOS/메일링 서비스 번역 2022. 8. 17. 09:56
렛츠 스위프트 메일링 리스트 가입은 >가입하기 링크= 85 { return "\(score)%: Pass" } else { return "\(score)%: Fail" } } C API와 강화된 interoperability(상호 운용성) 설계적으로, Swift는 type, memory-safety하고, 절대 자동적으로 다른 타입들의 포인터간 convert가 일어나지 않는다. 이 행동은 C 특정한 포인터의 conversion을 허락하는 C와 대조된다. 초기에, 이는 Swift에서 C APIs를 사용하는데 문제를 야기했으므로, Swift는 현재 imported된 functions and methods를 호출하는데 사용하는 별도의 규칙들을 갖는다. 이것은 C에서는 합법일지라도, Swift에서 불법인, Poi..
-
DateFormatter가 쓰기싫어서 DateFormatStyle을 알아본다iOS/Swift 2022. 6. 28. 00:17
yyyy-MM-dd hh:mm:ss DateFormatter가 쓰기싫었다. 더 쉬운 방법이 없을까? 싶어서 찾아봤습니다.... 일단 어떻게 나오는지 궁금한 샐옴? print문은 아래의 순서입니다. 어떤 날짜style로 표기했는지 날짜 style + timeStyle: .standard 날짜 style + timeStyle: .omiited 날짜 style + timeStyle: .shortened 날짜 style + timeStyle: .complete 더보기 omitted 오후 9:34:42 6/27/2022 오후 9:34 오후 9:34 오후 9:34:42 GMT+9 comple 2022년 6월 27일 월요일 오후 9:34:42 2022년 6월 27일 월요일 2022년 6월 27일 월요일 오후 9:34..
-
info.plist를 옮길 때.iOS/Swift 2022. 5. 20. 20:35
눈물의 역사.. 프로젝트를 하며,, 파일 정리를 위해 Info.plist를 옮겼다가 해결하는데 시간이 얼마나 들었는지 모른다.. build input file cannot be found라는 오류가 뜨는데..... STEP 1,2를 하면 해결 할 수 있따. 방법 STEP 1. TARGETS.BuildSettings.Packaging에서 info.plist File의 경로를 변경한다. STEP 2. Navigator창에서 info.plist선택 후, Inspector의 File Inspector창을 선택한다. Location주변의 폴더모양을 눌러서 아래와 같이 Info.plist파일을 choose