반응형

모바일 프로그래밍/IOS참고자료 83

[iOS] Drag & Drop 동작 막기(웹 사이트 링크 미리보기 막기)

Webview를 사용하다 보면 Link가 있는 태그들(a, img 등)에 대해서 Long touch 동작 및 드래그(웹 사이트 링크 미리보기)를 통해서 이미지를 받거나 다른 브라우저에서 여는 등의 동작이 되는 것을 알 수 있습니다. (예제 gif 추가 예정) 일반적인 앱이라면 상관 없지만, 제가 일하고 있는 곳의 경우 보안이 중요한 메일의 경우에서는 해당 기능을 완전히 막아줘야 합니다. 메일 본문을 보는 부분이 WebView로 구현이 되어있다보니, 미리보기가 동작하더라구요. 관련 코드가 있어서 정리해보려 합니다. 1. HTML(style) 태그 수정 웹에서 보여주는 경우 해당 태그에 style을 수정하는 경우 그 기능이 막힌다고는 하는데... 정말로 막히는 태그와 막히지 않는 태그를 구분해보려 합니다. ..

[XCode] Provisioning Profile 일괄 삭제/다운 방법

안녕하세요. 오랜만에 공개 포스팅용 글을 적게 되었습니다 ㅎㅎ 이번엔 Provisioning Profile을 일괄 다운로드 하거나 삭제하는 방법에 대해서 알아볼까 합니다. 1. 해당 방법이 필요한 배경 현재 제가 일하고 있는 회사는 Enterprise로 앱들을 배포 중이고, 이 앱들의 경우 1년마다 Provisioning Profile을 일일이 업데이트하고 다시 배포를 해줘야 합니다. 정말 미칠 지경이에요..(CI/CD 환경 구축은 일단 생각도 하기 힘든 환경이라... 권한만 있었어도ㅠ) 이때 실수로라도 아직은 활성화가 되어있는 이전 프로파일을 사용해서 배포하게 된다면 내리 갈굼이 엄청날 거예요. 특히 자주 사용하는 앱들(사용자가 많은 앱들)에서 이런 문제가 발생했는데 VIP가 불편을 얘기했다? 어우....

[Error] UIWebView 하단에 선이 생기는 이슈

이번 이슈는 좀 어이가 없던 이슈인데요... iPhone 14 이후 단말에서 갑자기 특정 앱의 WebView 하단에 검정 실선이 생기면서 반복해서 들어가면 점점 커지는 현상이 있다는 내용이 전달되어 문제를 확인하게 되었습니다. WKWebView도 아니고 왜 아직도 UIWebView를 쓰냐고 하신다면... 이거 리팩토링 하는 순간 다른 작업 올 스톱이라 어쩔 수가 없네요.ㅠ 여튼! 다음 이미지와 같은 현상이 발생하는 것이 문제였는데요, 특히 해당 실선이 커진다는게 문제였습니다. 하단에 붉은 사각형으로 감싸져있는 부분이 문제의 부분인데, 커지는 이슈는 해당 ViewController가 지워지지 않고 매번 재사용되기 때문인 것으로 확인되었습니다. 그렇다면 무엇 때문에 생기는지만 알면 해결이 될텐데, 이유는 ..

[Error] Undefined Symbol: _OBJC_CLASS_$_ 문제

회사에서 git 저장소 변경 후 clone 했는데, 일부 프로젝트에서 다음 에러가 발생하는 현상이 있었습니다. 찾아보니 ARM64 관련 문제다 LFS 문제다 얘기가 있었는데, 저는 결론적으로 LFS문제였습니다. 1. LFS란? LFS는 Git Large File Storage의 약자로서, 깃에서 큰 파일을 다운로드하거나 업로드 할 때 사용하는 오픈소스 Git Extension입니다. 원래 GitHub에서 파일 1개당 용량이 50MB를 넘으면 warning을, 100MB를 넘으면 error를 뱉는다는데, 이번이 해당 에러를 처음 본거라 다음에 한 번 테스트 해봐야겠네요. 2. 문제 확인 위 사진처럼 특정 프레임워크의 실제 사이즈와 LFS를 사용하지 않았을 때 Clone 해서 받은 프레임워크의 사이즈가 다른..

[iOS] Launch Image, Launch Screen

한동안 바빠서 글을 정리 못 하다가 간단한 내용이라 빠르게 글을 정리해서 올려봅니다..ㅠㅠ 이번엔 이젠 더이상 사용되지 않는 Launch Image, 그리고 현재 사용하고 있는 방식인 Launch Screen에 대해서 간단히 알아볼까 합니다. 제가 현재 유지보수 하고 있는 프로젝트들에서 가끔 발생하던 문제 때문에 조금 헤맸는데, 다른 분들은 이런 상황에서 조금이라도 덜 시간 쓰시길 바래서 작성해봅니다. 먼저 Launch Image, Launch Screen에 대해서 알아보기 전에 제가 겪은 문제에 대해서 간단히 설명과 해결법을 말씀드려봅니다. 대부분 2014년 이전(혹은 2014년 이후 일부 프로젝트가 이런 식일 수 있습니다.) 프로젝트들의 경우 Launch Image를 사용하거나 빈 상태로 넣었을 겁니..

[CocoaPods] Error : You may have encountered a bug in the Ruby interpreter or extension libraries.

투잡으로 앱을 수정하는 상황이 있어서 기존 프로젝트 받아서 pod install을 터미널에 입력했더니 다음과 같은 에러가 발생했습니다... 확인을 해 봤더니 M1맥북을 사용 할 때 발생하는 에러라고 하네요... 하긴 그 동안 수정작업이 있으면 기존에 쓰던 Intel 맥북을 썼지 M1은 프리로 뛰고 있는 곳에서만 사용을 했었어서 저 에러 메세지를 못 봤었네요. 내용은 루비 인터프리터 또는 확장 라이브러리에서 버그 발생이라는 건데, 일단 구글링으로 해결법을 찾아봤습니다. 해결법 몇 가지 방법이 있다고 찾았는데, 개인적으로 가장 편한 방법을 소개해보려 합니다. 아래의 명령어를 순서대로 입력하면 간단히 처리되네요. $ sudo arch -x86_64 gem install ffi $ arch -x86_64 pod..

[참고자료] Locale Identifier 관련 리스트 링크 및 사용 예제

iOS Locale Identifiers iOS Locale Identifiers. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 국가별 대응하다보니 Language와 Region 리스트가 필요하게 되었고, 위의 리스트를 찾아서 사용하게 되었습니다. 제가 개발하는 앱은 기본적으로 Device Locale을 이용하고, 코드는 다음과 같이 사용합니다. public enum LocaleCodeEnum: String { // ko-KR case kr = "kr" // en-US case others = "us" // 모든 언어 번역이 안되어 있거나, 국가별 서비스 정책이 명확히 안 정해진 상태일 경우 default는 us로 잡아둠..

반응형