기본 콘텐츠로 건너뛰기

라벨이 iOS인 게시물 표시

2025년 9월 카카오 사태 프로필 미공개

2025년 9월 23일 카카오 사태가 벌어졌다.   나는 다행히 앱스토어 설정에 들어가서 자동업데이트를 비활성해서 이번 사태를 잠깐 피해갈 수 있었다.   하지만 유튜브를 보다보니까   이번에 업데이트를 이미 한 사람들에게 나의 프로필이 까발려 진다는 것을 알게되었다.   내 친구한테 알려지는 건 좋은데   카카오톡은 내가 전혀 모르는 사람이나 싫은 사람, 업무적인 사람들 연락처에 있는 모든 사람이나 전화 번호가 변경되서 모르는 사람들도 친구 목록에 표시가 된다.   그런 모든 사람들에게 내 사생활을 강제로 공개되도록 해버렸다는 거에 공포를 느꼈다.   프로필 탭으로 이동해서   내 프로필에서 오른쪽 상단에 설정 버튼이 있고 그걸 클릭하면   프로필 설정들이 있고 거기서 옵션들을 비활성 해주자   “프로필 인증배지 표시”, “내 프로필 검색”, “내 홈 표시” 모두 비활성 해줬다.   솔직히 앞으로 이번 사태 이전으로 롤백을 시키지 않는한 앞으로 프로필에 사진을 올릴거 같지 않다.   이미 앱은 배포가 되었고   이 사태가 벌어진 버전의 앱을 업데이트 하지 않고 사용하는 사람들이 많을것이다.   (보통은 앱을 배포 하고 강제로 업데이트 유도하지 않는 이상 앱을 업데이트 하지 않는 사람들이 많다.) 만약에 더 프로필 공개에 공포를 느낀다면 프로필에 올린 이미지들을 당장 지우자.   *추가* 숏폼과 오픈채팅을 합쳐놓은 것도 참 거지같은 짓을 한거라고 생각한다.   오픈채팅에 개발이나 다이어트나 여러가지 같은 관심을 가진 사람들이 단체 톡방에 들어가서 커뮤니티를 하고 계실거다.   나도 개발 단체톡방에 들어가서 대화를 하는데   왜 그걸 합쳐놔서   오픈채팅을 들어가기 위해서 무조건 숏폼을 강제로 봐야 한다는 건 참 별로다.   *추가 2* 벌서 온갖 야시시 하고 폭력적인 숏폼에 노출되고 있...

Xcode "Build input file cannot be found" 에러 발생

Xcode 를 사용해서 개발을 하면서 특정 파일에서 "Build input file cannot be found" 오류가 발생하는 경우가 있다  이 오류를 해결하는 여러가지 방법을 구글링을 하면서 찾을 수 있지만  해당 파일의 경로가 문제인 경우가 있다.  실제 파일이 정상적으로 프로젝트에 포함되어 있고  Xcode 를 Clear 하거나 Full Clear 해도 계속 같은 오류가 발생한다면  Xcode 에서 해당 파일을 클릭 한 후에 Xcode 화면 오른쪽에 파일의 경로 Location 과 Full Path 를 확인할 수가 있는데  거기에서 Location 이 다른 파일들과 다르게 설정이 되어 있는 경우 저런 특정 파일을 찾을 수 없다는 오류가 발생하게 된다. 

Xcode 26 화면 전환이나 메뉴 클릭, 코드 수정 시 계속 되는 로딩현상 수정

이번에 Xcode 26 업데이트 후에 너무 불편한 점이 많아진거 같다.  얼마전에 올린 Xcode 26 에서 디버깅 오류가 사라져 버리는 현상도 발생했고  이번에는 저 디버깅 오류 해결 후에 발생한 현상이다.  화면 전환, 메뉴 클릭, 코드 수정 시에 계속 로딩이 표시가 되면서 엑스코드가 먹통이되는 현상이 발생하고 있다.  정말 짜증이 났고  검색을 하다가 xcode 16 에서 비슷한 현상의 글을 보게 되었는데  답글이 시뮬레이터 문제에 원인이 있다는 글을 보았고  맥 하단 바에 시뮬레이터 항목이 활성화 되어 있는지 (맥 시뮬레이터가 실제 표시되고 있는지 여부랑 상관없이) 확인하고  하단 바에 시뮬레이터 항목을 종료하면 시뮬레이터 항목(아이콘) 이 사라지는데  그 후에는 해당 로딩현상이 매우 감소하거나 발생하지 않음을 확인할 수 있었다.  나는 시뮬레이터로 디버깅 하지않고 무조건 실제 기기에서 디버깅을 하는데  가끔 기기 마다 화면 체크나 새로운 기기에서 변경점을 확인하기 위해서 시뮬레이터를 돌려서 체크를 하는데  이번에도 회전 기능에 문제가 있어서 체크를 하고 사용을 그대로 했더니 이런 현상이 발생한 듯 싶다. 

Xcode 빌드 시에 디버깅 오류가 사라지는 현상 수정

Xcode 업데이트 또는 새로 설치 후에 프로젝트를 빌드 후에 빨간색 에러가 있다고 표시가 되는데 엑스코드 왼쪽에 "이슈 네이게이션 탭에" 해당 에러가 표시되지 않거나 또는 표시되고 1 초가 안되는 순간 사라지는 현상이 계속 발생을 했다. 해당 현상을 수정하려면  엑스코드 설정에서 "Show Live Issues" 옵션을 비활성하면 해제하면 증상이 사라지게 된다.  해당 현상이 Xcode 14 때부터도 계속 있던 증상인거 같은데 아직도 수정이 되진 않았나보다. 

Non-constant range: argument must be an integer literal 경고 해결법

최근에 기존 프로젝트를 Swift 6 으로 변경하는 작업을 계속 하면서 새롭게 발생하는 오류/경고인 "Non-constant range: argument must be an integer literal" 해결 방법을 정리해봤다.  ForEach(0 ..< Define.ListTotal) { indexInt in             inListView(indexInt) } 위와 같은 코드에서 ForEach 부분에서 "Non-constant range: argument must be an integer literal" 경고가 발생하는데  아래 코드와 같이 ForEach 조건문 뒤에 id:\.self 를 추가해주면 경고가 사라진다.  ForEach(0 ..< Define.ListTotal, id: \.self ) { indexInt in              inListView(indexInt) }

Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found 오류 해결

 엑스코드에서 프로젝트를 빌드하면서  Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found  또는  framework 'CoreAudioTypes' not found  가 뜬금없이 뜨는 경우가 있음  이 경우에는  Other Linker Flags 에 -lstdc++ 를 추가하면 해결이 되는 경우가 있음 

애드몹(admob) 에서 Could not find auto-linked framework 'FBLPromises' 에러 해결

 Xcode 로 새 프로젝트를 생성한 후에 애드몹 라이브러리/프레임워크 파일들을 앱에 넣고 빌드를 했는데  Could not find auto-linked framework 'FBLPromises'  Undefined symbol: _OBJC_CLASS_$_JSContext 위 두가지 에러 메시지가 표시되면서 앱이 실행이나 빌드가 안된다면  프로젝트에  JavaScriptCore.framework  이 라이브러리를 추가하면 해결이 된다. 

iOS/Xcode A sealed resource is missing or invalid 에러

 엑스코드에서 파일을 아카이브 한 후에 그걸 스토어에 업로드 하는 과정에서  A sealed resource is missing or invalid.  라는 메시지가 포함된 에러가 발생하면서 업로드가 안되는 현상이 있었다.  해당현상의 원인은 업로드하려는 파일이 영어가 아니고 한글로 되어 있거나 특수문자가 포함된 경우에 발생한다.  그래서 앱 이름을 영어로 바꿔주고  InfoPlist.strings 를 통해서 현지화된 이름이 표시되게 해줘야 한다. 

엑스코드/Git, Xcode 가 주기적으로 죽는 것 해결 , Git 이 원인일때 , DVTSourceControlGitXPCClient

Xcode 14.3 최신 버전 (이글 작성 기준) 에서 갑자기 Xcode 가 주기적으로 대략 1시간-2시간 간격으로 계속 충돌이나서 죽는 현상이 발생했다.  정확한 원인은 알 수 없었지만  로그에 DVTSourceControlGitXPCClient 내용이 포함되어 있으면 아래 방법으로 해결 해보는 것도 좋음  0. 터미널  1. 먼저 cd 명령어로 위치로 해당 프로젝트 위치로 이동 2. git status 입력 2.1 여기서 나 같은 경우에는 “Changes not staged for commit: ” 으로 표시가 되면서 파일 경로가 빨간색으로 된 목록이 많이 표시가 되었다. 3.  git add . 입력 4. git commit -m "Cleaning state" 를 입력해서 커밋

엑스코드(Xcode) The code signature version is no longer supported 에러

엑스코드(Xcode) The code signature version is no longer supported 에러  엑스코드에서 프로젝트 빌드 시에 앱이 정상적으로 생성이 안되고  팝업이 표시되고 상세 설명 부분에  The code signature version is no longer supported 이런 문구가 보이는 경우가 있다.  이 경우 해결책은  프로젝트 라이브러리 중에 추가 하거나 교체한 라이브러리가 있다면  "Do not Embed" 로 변경을 해주면 해결이 된다.  애드몹 라이브러리를 버전업 하면서 라이브러리 파일을 프로젝트에 추가하고  일부 라이브러리를 Do not Embed 로 바꾸지 않은 것이 원인  코드 사인 문제라고 생각해서 한참을 해매지 말자

애플 워치(Apple Watch) 싱글 앱 개발 - 앱 번들

워치 싱글 앱 개발 - 앱 번들   워치 앱 개발 시에   아이폰 앱이 없는 워치 앱 단독 개발을 하는 경우 앱 번들에서 처음 겪는 이슈가 생겨서 정리한다.   첫번째 우선 애플 워치 앱은 번들 id 맨 뒤에   .watchkitapp 위 문구가 들어가야 한다.   예를 들면   aaa.dddddd.cccc.watchkitapp 이런 형태로 솔직히 이런 형태로 안만들어도 될것 같지만 아이폰 앱이 있는(독립적인) 앱의 경우는 저 규칙으로 생성하는 것으로 보인다.   두번째 info.plist 에서   WKCompanionAppBundleIdentifier 를 제거   App can run independently of companion iPhone app   항목도 있으면 제거 한다.   그리고 info.plist 에 WKWatchOnly 키를 추가 하고 YES 로 설정   WKWatchOnly 를 추가하면   App is only available as a standalone watchOS app 로 키 이름이 변경 됨 그러면 그 후에는 단독으로 실행이 가능한 앱이 된다 . !!

Xcode 14.3 “file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a” 이슈

  Xcode 14.3  “file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a”  이슈   지원 iOS 버전을 너무 낮게 하면 표시된다.   iOS 버전을 8.0 에서 11.0 으로 변경 후에 사라졌다 .  

iOS 15.7 에서 발생 중인 UIApplication workspace:willDestory 크래시

 현재 10월 초 기준으로 iOS 15.7 기기들에서 아래와 같은 로그의 크래시가 발생하는 중이다.  [UIScene _invalidate] [UIWindowScene _invalidate] [UIApplication workspace:willDestoryScene:withTransitionContext:comkpletion:] 이런 오류가 포함되어 있다.  이 이슈에 대해서 아래 링크에서 논의 중이다.  링크 1 링크 2 아래 코드를 통해서 비슷한 현상을 재현을 할 수 있는데  let storeKitViewController = SKStoreProductViewController () storeKitViewController. loadProduct ( withParameters : [      SKStoreProductParameterITunesItemIdentifier : NSNumber ( integerLiteral : 364709193 ) ])          present (storeKitViewController, animated : true ) 저 코드로 앱스토어 화면을 띄운 후에 그냥 앱의 백그라운드 상태를 종료해버리면  -[SKStoreProductViewController sceneDisconnected:]:  이 에러가 발생하는 것을 재현할 수 있다.  아마도 저 에러코드의 원인은 애드몹에서 발생하는 것으로 추측되고  유저가 광고를 클릭 한 후에 앱을 종료해버리거나 또는 백그라운드 상에서 죽으면 저 오류가 발생하는게 아닐까 싶다.  어떻게 그냥 다른 앱을 사용하다 백그라운드 상에서 죽으면 저 오류가 문제가 아닐 수 있고  역시 유저가 백그라운드 상에서 죽인거라고 해도 별다른 문제가 아닐 수도 있겠다. 아래 코드를 추가하면 iOS 15.7 에서 저 오류가 발생하지 않도록 할 ...

아이폰/아이패드 개발자 모드

  Xcode 로 실제 기기로 개발 시에 아래와 같은 문구가 표시되면서 실제 기기에서 앱을 빌드하지 못하는 경우가 있는데    개발자 모드 비활성화 된 경우   그런 경우 아이폰/아이패드 기기에서 개발자 모드를 활성화 해줘야 한다.    홈화면 설정으로 들어가서    설정 --> 개인정보 보호 및 보안 --> 개발자 모드   에서 활성화 해주면 된다.      개발자 모드     아마 활성화 해주면 재부팅을 해줘야 하며    재부팅 후에 Xcode 에서 변경된 것을 확인할 수 있다.      개발자 모드 변경 완료 후

Xcode : developerdiskimage.dmg.signature 오류

  The File "developerdiskimage.dmg.signature" ... 로 시작하는 문구가 표시되면서 기기에서 빌드가 안되는 경우가 있다.    오류 1   이 경우 내 블로그에 전에 업로드했던    https://mydevspace.blogspot.com/2022/10/xcode-14-ios-157-failed-to-prepare.html 위 글에 추가 했던 파일이 맥 재부팅이나 업데이트로 인해서 사라진 경우 발생한다.    위 글로 들어가서 파일을 추가해주고 엑스코드 재부팅을 해주면 저 오류가 사리진 것을 확인할 수 있다.    오류 해결 !!

Swift iOS UITextView 선택 상태 해제 & 선택한 텍스트 가져오기

  Swift iOS UITextView 에서 사용자가 선택한 상태(Selectable)를 헤제하는 코드는 아래와 같다  (선택 상태의 UI 도 제거)   textView ! .selectedTextRange = nil   UITextView 에서 사용자가 선택한 텍스트를 가져오는 방법은 ?   if let textRange = textView.selectedTextRange { let selectedText = textView.text(in: textRange) if selectedText != nil { Util . Log ( "선택 글자 : " + selectedText ! ) } // 현재 텍스트뷰 선택 상태 해제 textView.selectedTextRange = nil }   UITextView 에서 edit 상태가 아닌 상태에서 Selectable 상태로 설정하려면 ?   textView.isEditable = false textView.isSelectable = true   즐코딩 하세요 ^^

Swift/iOS UITextView 여백 제거

  UITextView 사용 시 불필요한 여백이 표시되는 경우가 있다.    그런 경우 아래의 코드로 여백을 제거 할 수 있다.    방법 1 textView ! .textContainerInset = .zero 방법 2 textView ! .textContainer.lineFragmentPadding = 0   아래 방법은 개발을 하면서 텍스트 뷰에 입력하는 텍스트에서 가장 첫번째 캐릭터가 NewLine 인 경우 Offeset 또는 상단에 여백이 이상하게 표시가 되는데 그 경우를 개선할 수 있는 방법 이었다.    // 이 옵션이 들어가야 텍스트 첫 캐릭터가 뉴라인인 경우 상단에 추가 여백이 없어진다. textView ! .layoutManager.usesFontLeading = false   이 코드가 도움이 되었길 바라며  모두 즐코딩 하세요 ^^

iOS 16 배포 시 ITMS-90433: Invalid Swift Support - The file libswiftAVFoundation.dylib doesn’t have the correct ... 오류

  앱을 업로드 한 후에    Invalid Binary 상태 메일이 도착하고 다음 메일에    ITMS-90433: Invalid Swift Support  - The file libswiftAVFoundation.dylib doesn’t have the correct cod ...    이 문구가 포함된 에러를 메일로 받았다.    이럴땐 당황하지 말고 다시 그 버전을 심사 요청을 해보자    그러면 다시 이 오류가 오지 않고 정상적으로 심사 진행이 된다.     

Xcode 14 에서 iOS 15.7 빌드 , Failed to prepare device for development 문제 해결

  이번에 Xcode 14 에서 iOS 15.7 기기를 빌드하려고 하는데   Failed to prepare device for development 라는 메시지가 아래 처럼 표시되서 빌드가 안되는 현상이 지속되고 있다.    아이패드에서 빌드 안됨 아래 사이트에 들어가서  15.7 파일을 받는다.    https://github.com/JinjunHan/iOSDeviceSupport     GitHub - JinjunHan/iOSDeviceSupport: All versions of iOS Device Support All versions of iOS Device Support. Contribute to JinjunHan/iOSDeviceSupport development by creating an account on GitHub. github.com   그 후에    맥의 Finder 에서 "응용프로그램" 으로 가면 Xcode 파일이 있고  오른쪽 메뉴를 통해 "패키지 내용 보기" 를 클릭 하면 내부 탐색을 할 수 있다.    Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport    또는 터미널에서 open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 이걸 복사 붙어넣어주고 엔터를 입력하면  위 경로가 바로 오픈 된다.      이 경로까지 이동한 후 거기에 방금 다운로드한 15.7 압축파일을 해제해서 그 폴더를 복사/이동 해주자    그리고 엑스코드가 실행 중이라면 종료하고 재시작   15.7 폴더를 이동   그러면 15.7 에서 빌드할 수 있다  ...

Xcode 14 & iOS 16 앱 업로드 후 The app references non-public selectors 경고

  예전에도 이런 경고가 표시가 되었겠지만    현재 내가 판매 또는 배포 하는 앱 중에 기존까지 (IOS 15 & Xcode 13) 까지는 저런 경고가 발생하지 않았다    일단 Xcode 14 에서 아카이브 생성 후에 "Distribute App" 으로 업로드 후에 저 노란색 경고 표시된다.    The app references non-public selectors ... 이렇게 시작하는 노란색 경고    경고   일단 위에 보이는 경고 외에 앱 내부에서 사용하는 라이브러리 파일을 제거 했는데 사라진 걸 보면    앱에서 사용하는 외부 라이브러리가 원인이며  추가로 Xcode 14 의 버그나 오류? 가 아닐까? 생각도 해본다. (이건 내 추측일 뿐 아닐 수도 있다. 하지만 현재 Xcode14 배포 초기에 오류가 많은걸 보면 이것도?)   현재 내가 찾은 개선 방법은    1. 그 원인이 되는 오류를 제거 , 즉 라이브러리(또는 코드)를 프로젝트에서 제거하거나 수정하자  2. 프로젝트의 최소 지원 iOS 버전을 13 미만으로 변경한다 (또는 현재 프로젝트의 최소 지원 OS 버전 보다 밑으로 내린다.) 3. 그냥 경고 무시하고 심사 요청   일단 3번 그냥 심사 요청을 해볼려고 한다.    찾아보니까 경고일 뿐 심사 통과는 문제가 없다는 글도 있다.    만약에 심사에서 문제가 있다면 2번 해결책을 취해야 하지 않을까.