본문 바로가기
300x250

iOS119

webView - 파일 로드 [ 파일 업로드 ]앱 내의 웹페이지에 파일을 업로드 해야할 때웹페이지 자바스크립트에서 작업해주어야 하는 부분 웹페이지에서 파일 선택 — — 버튼을 눌렀을 때 업로드를 위한 과정이 시작된다.iOS에서 작업해주어야 하는 부분 webView의 WKUIDelegate 메소드 중 webView(_:runOpenPanelWith:initiatedByFrame:completionHandler:) 를 사용// 파일 업로드 (WKUIDelegate)func webView(_ webView: WKWebView, runOpenPanelWith parameters: WKOpenPanelParameters, initiatedByFrame frame: .. 2025. 11. 27.
webView - 쿠키 네이티브에서 웹으로 쿠키를 전달웹뷰에 로그인 기능이 있고 이 로그인이 자동으로 되기를 원할때에도 응용 가능 일반적으로 웹 환경에서는 토큰 값을 전달할 때 쿠키를 사용한다.그 이유는 쿠키를 사용했을 때 Secure 또는 HttpOnly 속성을 설정하여 보안을 강화할 수 있기 때문쿠키를 사용하지 않으면 URL 파라미터로 전달하거나 evaluateJavaScript 를 사용하여 전달할 수 있지만 URL 파리미터로 전달하는 것은 토큰이 노출되고 evaluateJavaScript로 전달하는 것은 웹에서도 앱에서도 토큰을 처리하는 추가 로직의 구현이 필요하다.따라서 쿠키를 사용하면 앱에서는 단순히 토큰을 저장만 해주고 웹에서는 앱이 전달해주는 토큰이 포함된 쿠키가 자동으로 처리되어 보안의 강화와 편리함으로 일반적인.. 2025. 11. 14.
webView - 새 창 preferences.javaScriptCanOpenWindowsAutomaticallyJavaScript 코드에서 window.open() 같은 함수를 호출했을 때 Swift에서 자동으로 새 창을 열 것인지의 여부를 결정.기본적으로 false로 설정이 되어 있다.true 로 설정이 되어도 실제 새 창이 열리게 하려면 WKUIDelegate 의 webView(_:createWebViewWith:for:windowFeatures:) 메서드를 구현해야 한다. webView(_:createWebViewWith:for:windowFeatures:)새 창을 열려고 시도할 때 호출되는 델리게이트 메서드새 창을 열기 위해 이 메서드를 구현하지 않거나 nil 을 반환하면 새 창 열기 요청은 무시되고 차단된다.새 창 허.. 2025. 11. 12.
API 방식과 Socket 방식 네트워크 연결 상태 확인을 구현해보기 위해 찾아보니 애플에서 Network라는 프레임워크를 지원해주고 있었다.기존에는 다른 프레임워크들을 사용해야 했는데 WWDC 18 쯤 발표된 듯 하다.Network 프레임워크를 처음 알게되어 URLSession과 무슨 차이가 있는지 궁금해 찾아보았다. URLSession - HTTP 요청시 사용서버에 REST API 요청을 보내고 데이터를 받는 네트워크 연결, 요청, 응답 등의 단순한 네트워크 통신에 사용된다. (예, 로그인 요청, 게시글 목록 가져오기, 이미지 다운로드 등)고수준의 API이며 HTTP 프로토콜 중심으로 사용되며 동작한다. Network.framework - 네트워크 연결을 직접 다룸TCP, UDP 등 네트워크 연결의 상태를 감지하.. 2025. 5. 27.
fastlane/TestFlight App Store Connect에 TestFlight 올리기1. Fastfile 수정기존에 작성되어 있는 불필요한 액션은 지워주자default_platform(:ios)platform :ios do desc "Push a new beta build to TestFlight" # "원하는 설명" lane :beta do # 원하는 이름 do # increment_build_number(xcodeproj: "프로젝트명.xcodeproj") 옵션. 빌드 숫자를 올려줌 build_app(workspace: "프로젝트명.xcworkspace", scheme: "프로젝트명") upload_to_testflight endend이렇게 작성해주고 저장 2. 실행fastlane beta🧨  ERRO.. 2025. 4. 3.
fastlane/ App Store Connect 앱 자동 생성 produce - fastlane docsenable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), cusdocs.fastlane.tools fastlane의 Action을 이용하여 App Store Connect에 앱을 생성해본다.  fastlane produce Apple ID를 입력하고 Enter team이 여러.. 2025. 3. 24.
fastlane/ 설치 CD를 프로젝트에 적용하기 위해 가장 많이 사용되는 fastlane을 설치해보려 한다. 1. installbrew가 가장 안전하게 설치 가능하다 하여 brew를 이용하려한다.brew install fastlane이렇게 뜨면 설치 성공만약, 설치에 문제가 있어 삭제하려 한다면brew uninstall fastlane 2. fastlane 적용하기fastlane을 적용하려는 프로젝트의 .xcodeproj 파일이 있는 경로로 이동한 뒤fastlane initfastlane으로 뭘 하려는지 1~4번 까지 선택지를 준다.1. 앱의 스크린샷 자동 생성2. 테스트플라이트에 앱 올리기3. 앱 배포4. 이 외 원하는 작업이 따로 있어서 직접 하겠다. 나는 4번을 선택했다.프로젝트 폴더를 가보면 'fastlane' 폴더,.. 2025. 3. 20.
동시성 프로그래밍 (5) - GCD 사용 시 주의해야할 사항 GCD를 사용할 때에 주의 할 부분과 응용방법! 1.  반드시 메인큐에서 처리해야하는 작업우리는 화면을 그리고 그 화면에 필요한 데이터를 가져오고 가공하는 여러 작업들을 하게 된다.그리고 별도로 스레드로 작업을 분산하지 않는다면 보통은 대부분의 작업이 메인스레드에서 처리가 되는데 메인 스레드는 앱의 UI를 관리하고 사용자와의 상호 작용을 처리하는 매우 중요한 스레드이다. 따라서 UI관련 작업이나 애니메이션 그리고 사용자가 텍스트를 입력할 때 처리해야하는 작업 등은 반드시 메인스레드에서 처리되도록 해야한다.왜 메인 스레드에서 UI 작업을 해야 할까?1) UI 일관성 유지: 여러 스레드에서 동시에 UI를 변경하면 예기치 못한 결과가 발생할 수 있다. 메인 스레드에서만 UI를 변경함으로써 UI 상태를 일관되게.. 2024. 8. 21.
동시성 프로그래밍 (4) - GCD의 종류와 특성 1) main메인 이라는 이름 답게 단 한개가 존재하는 메인스레드를 이용한다serial로 동작하며 보통은 별도 작업을 해주지 않으면 메인스레드에서 처리가 된다print("task")이렇게 단순한 출력 코드 조차도 DispatchQueue.main.sync { print("task")}내부적으론 위와 같이 동작하고 있는 것! 2) globalconcurrent로 동작하며 총 6가지의 옵션을 지정하여 우선순위를 결정할 수 있다. 중요도가 높은 종류의 큐 사용시 iOS가 알아서 작업을 여러 스레드로 배치하고 배터리를 더 집중해서 사용하도록 한다. 만약 낮은 중요도의 큐 안에 더 높은 중요도의 큐 작업을 보내면 작업 수준은 자동으로 더 높은 중요도의 수준으로 변경된다.let queue = DispatchQue.. 2024. 8. 12.
300x250