안녕하세요 데브리프터 입니다! 회사에서 프로젝트를 진행하면서 여러가지 상황에 따라서 빌드를 모두 다르게 해야하는 상황이 많았습니다.이런 이유로 flag 를 활용한 코드제어에 대한 내용을 이전 글에서 포스팅했습니다. 오늘은 실제로 빌드환경에 따라서 In House 방식으로 배포하기 위해 ipa 파일을생성하는 방법에 대해서 작성해 보겠습니다! 서론 그만하고 시작합니다!! 사용 및 작성 목적SI 프로젝트 중 보안정책이 강한 몇몇 회사는 그 특성상 현장에가서 직접 개발 / 디버깅 / 테스트 하기에 자원이 부족합니다특히 테스트 기간에 여러가지 이슈사항으로 보안테스트 , 배포용 , 개발환경테스트용 등 다양한 환경을 적용해서 빌드파일을 전달해야할 상황이 여러 프로젝트에서 동시다발적으로 생깁니다. 이에 따라서 잘못된..
[##_revenue_list_upper##]
Xcode
[##_revenue_list_lower##]안녕하세요!주제가 이리저리 튀는 데브리프터입니다.. 클라이언트에 따라서 모의해킹용으로 빌드를 하는데 이때마다 configuration이나여러 가지 보안 세팅 코드들을 수정하고 다시 원래대로 돌려놓아야 하는 굉~~~~~~장히 번거롭고그럼에도 휴먼에러 가능성이 너무 많은 상황이라 이를 조금이라도자동으로 제어할 수 있게 하려고 찾아보다가 flag라는 아이를 처음으로 알게 됐습니다! 근데 이놈이.. 좀 헷갈리고 세팅하는 데서도 좀 애를 먹어서 (한 번만 테스트하고 문서화해놓으면 되는 건데 왜 아직..?)다른 분들도 저처럼 고생하지 말고이것도 되나..?그럼 이런 케이스도..? 하는 부분까지 다 테스트 돌려보고 기록한 거 보시라고 작성했습니다!..그럼 시작하겠습니다!! 먼저 Swift 에는 #을 사용하여 전처리문을..
강의를 듣던 도중 UITextFieldDelegate 에 대해서 정리할 일이 생겼다. 사실 나는 노션으로 자잘한 것까지 다 기록해두지만 다른 사람이 볼 수 있는 블로그에는 조금 더 제대로 공부한 내용을 남기고 싶어서 아껴둔 것들이 많았는데 이 내용은 비교적 기초적인 내용으로 간단하게 집고 넘어가면 좋을 것 같아서 글을 썼다. 시작해보자. 먼저 UIKit에서 많은 오브젝트들이 Delegate 패턴을 사용해서 해당 클래스에 대한 동작을 구현하고 있다. 대표적으로 UITextField나 UITableView 같은 오브젝트들이다. Delegate?Delegate는 '대리자'라는 뜻이다. 즉 무언가를 대신하는 놈 이라는 뜻이다. 그렇다면 뭘 대신할까? UITextFieldDelegate, UITableViewDe..
기존에 Flutter로 만들었던 회사 프로젝트를 iOS에서 구현해 보려고 WebView를 사용하던 중 "This method should not be called on the main thread as it may lead to UI unresponsiveness." 이런 에러를 조우했다.. 일단 메세지를 잘 들여다보면 '어떤 메소드가 메인스레드가 아닌 곳에서 호출되었다 또는 메인스레드에서 호출되었어야 하는데 그렇지 못하였다' 류의 문제 같은데 검색을 하다보니 내 생각이 맞았다는 것을 알 수 있었다.. Apple Developer Forum에 있는 답변 및 검색 결과로 내가 직접 시도해 본 방법들인데, 1. Xcode에서 Thread Sanitizer 를 체크하고 build 해본다. 2. Dispatch..