728x90

TroubleShooting 36

[Privacy Manifest] 앱 심사 시 third-party SDK의 PrivacyInfo가 적용 안되는 이슈

안녕하세요. 요즘 Privacy Manifest가 핫한 것 같아요. 3/13부터 Privacy Manifest가 권장 사항이 되었고 5/1부터 필수 사항으로 되기 때문인 것 같아요. 앱 심사 요청을 이것저것 해보다가 이슈(?)를 발견했습니다. 예를 들어, 앱 자체에서는 required reason API를 사용하지 않지만, 앱이 사용하는 third-party SDK에선 required reason API(ex. UserDefaults)를 사용한다고 가정해 볼게요. (2024.03.25. 기준) 앱에는 PrivacyInfo 파일이 없고 third-party SDK 안에 required reason API 목록과 사유가 명시된 PrivacyInfo 파일이 포함되어 있는 상태로 앱 심사를 제출하면 아래 같은 ..

TroubleShooting 2024.03.25

[Swift] performSelector로 multi-argument 전달 방법

안녕하세요. NSObject를 상속받는 클래스라면 performSelector로 함수를 호출해 줄 수 있어요. 함수 호출할 때 인자도 같이 넘길 수 있는데 최대 2개까지만 넘길 수 있습니다. Objective-C에선 NSInvocation을 사용해서 제약 없이 여러 argument(인자)를 넘길 수 있어요. 근데 Swift에는 NSInvocation이 없어서... 다른 방법을 써야 해요. 제가 찾은 Swift에서 여러 인자 넘기는 몇 가지 방법 소개할게요. ## 1. 배열을 사용하자. 배열을 전달받는 함수를 추가로 정의하고 함수 내부에서 배열을 파싱해서 사용하는 것이에요. - 장점 - 없는 듯..? - 단점 - optional unwrapping 처리 필요 - 배열 순서 중요 ## 2. Dictionar..

TroubleShooting 2024.03.23

[SwiftUI] Image에 List 구분자 적용

안녕하세요. List element에 Label 형태(이미지 + 텍스트)를 넣으면 이미지에는 row 구분자가 적용되지 않습니다. 아이폰 설정 창도 그렇게 되어 있는 걸 보면 아마 SwiftUI 스펙인 것 같은데요. '난 이미지 밑에도 구분자를 넣고 싶어!!!' 하는 경우엔 아래처럼 alignmentGuide의 listRowSeparatorLeading를 사용하면 됩니다. # 참고 Adjust List row separator insets The default alignment of SwiftUI List row separators has changed in iOS 16. We also have some new APIs to customize separator insets. nilcoalescing.com..

TroubleShooting 2024.02.14

[SwiftLint] closure [weak self] trigger rule 추가

안녕하세요. 개발할 때 escaping closure에서 [weak self]를 빼먹는 경우가 종종 있지 않나요?? 이런 것도 SwiftLint가 검사해 줬으면 참 좋겠다... 라고 생각을 했는데 SwiftLint 0.54.0 기준으로 아직까진 그런 규칙은 없더라구요ㅠㅠ 완벽하진 않지만 SwiftLint 커스텀 룰을 활용해서 closure에서 [weak self]를 사용하지 않았을 때 에러를 반환하는 방법을 찾았어요. yml 파일에 아래처럼 커스텀 룰을 정의하면, closure에서 [weak self]가 없으면 에러를 반환합니다. 단, 검사가 가능한 상황이 한정적이에요ㅠㅠ 아래 2가지 조건 모두 해당되는 경우에만 trigger 됩니다. [closure [weak self] trigger 조건] (1) 파..

TroubleShooting 2024.01.30

[Xcode] Unit test 빌드 시 Testing에서 멈춰있는 이슈 해결방법

안녕하세요. Xcode에서 Unit Test 돌리면 프로젝트 빌드하고 시뮬레이터 하나 실행시킨 후에 테스트 돌리잖아요? 저는 빌드는 성공했는데 Testing에서 계속 멈춰있더라구요. 근데 또 신기한 게 Xcode에 built-in 된 시뮬레이터는 잘 켜지고 Unit Test도 잘 되더라구요. (다만 그냥 시뮬레이터라고 뜨지 않고 'Clone 1 of iPhone xxx' 라고 떴습니다.) 이런 상태라면 아래 해결방법을 적용해 보세요! ### 해결방법 1) Edit Scheme > Test > Test Plans의 화살표 클릭 2) Options > Execute in parallel 설정 해제 이번 글은 여기서 마무리.

TroubleShooting 2023.12.13

[Xcode 15] Linker command failed with exit code 1 (use -v to see invocation) 해결방법

안녕하세요. SDK 개발하시는 분들 중에서 혹시 Xcode 14에서 Xcode 15로 업데이트 했을 때 이런 에러 보신 적 있으신가요? Undefined symbols: Linker command failed with exit code 1 (use -v to see invocation) 제가 봤습니다.. 구글링으로 이것저것 해결방법 계속 찾아봤는데 잘 안되더라구요.. 모든 방법을 써봤는데도 안된다면... 최후의 방법으로 SDK 프로젝트를 지우고 다시 처음부터 만들어보세요.. 전 xcworkspace 안에 있는 SDK 프로젝트 지우고 새로운 SDK 프로젝트 생성해서 해결했습니다ㅠㅠ 이렇게 무식한 방법 말고 깔끔한 해결방법 아시는 분 계시면 알려주세요! 이번 글은 여기서 마무리.

TroubleShooting 2023.12.12

[Git] 'fatal: could not read Username for 'https://github.com': Device not configured' 해결방법

안녕하세요. git push 할 때 이런 에러 보신 적 있으신가요?? 이럴 때의 해결방법 공유드릴게요. 우선 터미널에서 아래 명령어를 호출해서 osxkeychain으로 설정되어 있는지 확인해 주세요. 만약 osxkeychain이 아니라면 아래 명령어를 호출해서 osxkeychain으로 바꿔주세요. 그다음 터미널에 아래 명령어를 호출해 주세요. (키체인에 인증 정보를 넣는 과정입니다.) 그러면 터미널이 멈춘 것처럼 보일 거예요. 아래 내용을 터미널에 직접 타이핑하면서 입력해 주세요. host=github.com protocol=https username='github 아이디' password='github Personal Access Token' 다 입력하셨다면 Enter 2번 눌러주세요. 그러고 나서 다..

TroubleShooting 2023.11.12