iOS 67

Swift) Protocol을 이용한 코드 개선

Protocol으로 반복되는 코드를 개선해 봅시다.extension 활용예시ex) protocol 코드protocol GameProcess: AnyObject { func start() func end()}extension GameProcess { func start() { print("Start Game") } func end() { print("End Game") }}먼저 프로토콜을 사용해서 기능을 정의합니다.그리고 extension으로 기능에 대한 상세 구현 합니다.수정사항 xex) 예시코드 1class WarGame: GameProcess { func go() { start() }}let warGame = Wa..

iOS/Swift 2024.05.24

TestFlight) 사용법

등록 순서1. 앱 빌드 등록 및 심사등록App Store 등록과 마찬가지로 Archive 진행단 버전 및 빌드는 이미 App Store에 등록된 앱보다 높아야 한다.(낮을 시 에러 발생..)심사테스팅 그룹 생성 -> 빌드 버전 선택 -> 심사(1~2일 소요) -> 심사 완료(테스트 중)심사는 빠르면 당일 2~3시간이내에도 완료될 수 있음.2. 테스터 등록테스터 등록을 위한 정보 필요이메일이름이메일은 App Store에서 앱을 다운로드 할 때 사용하는 이메일이여야 함.등록 완료 후 초대 이메일 자동으로 전송됨.3. 사용TestFlight 앱 다운로드 후 초대 코드 입력 -> 테스트할 앱 다운로드 -> 시작

iOS/TestFlight 2024.05.21

Swift) Continuations 활용

Continuations에는 withCheckedContinuation, withCheckedThrowingContinuation 가 있습니다. 둘 중에 차이는 에러를 return 하는지 안하는지 차이가 있습니다.Continuations는 비동기 코드, Closure형태를 async로 변경할때 많이 사용합니다.단, 주의사항이 있습니다.한번에 continue를 두 번이상 호출하면 안되고, resume을 호출하면 안됩니다. 그렇게 되면 Task가 무기한 일시 중단 상태로 되어버립니다.(앱이 멈추고 결국엔 강제종료가 됩니다.)Closure를 async로 변경하는 예시 코드에러 xClosurefunc requestWeclomeMessage(completion: ((String) -> Void)) { compl..

iOS/Swift 2024.05.20

iOS) XCFramework 생성

배포 목적 Framework 생성 터미널 명령어를 이용해 framework를 생성할 수 있지만, runscript을 이용해 빌드하면 자동으로 Framework가 생기도록 설정해보자. 기능 구현은 생략 후 진행하겠습니다. XCFramework를 생성하기 위해선 아래 순서대로 작업 프로젝트 설정 Run Script 작업 a. TARGETS 추가 b. Run Script 작성 Archive 생성 Frameworok 생성 Build 1. 프로젝트 설정 Build Setting Build Options - Build Libraries for Distribution → Yes Deployment - Skip install → No Architectures - Architectures - 기본 Run Script 작..

iOS/iOS 2024.04.22

SwiftUI) `.fileImporter` 사용시 Error message.

The view service did terminate with error: Error Domain=\_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method} 사용할 떄마다 위에 에러가 나온다. 스택오버 플로우에서는, Xcode에러라고도 하고, 권한 설정하고 사용해야한다고 하고 해결방법이라고 나온 방법들 다 해보았지만, 계속해서 에러 메세지는 나왔다. 결론적으론 에러가 나와도 사용하는데에는 문제가 없다.. https://www.reddit.com/r/swift/comments/11lzg0y/fileimporter_throwing_error/

iOS/SwiftUI 2024.02.14

트러블슈팅) iOS. APNS 등록 후 "didRegisterForRemoteNotificationsWithDeviceToken" 함수 실행 안됨.

문제 APNS 등록 후 didRegisterForRemoteNotificationsWithDeviceToken 호출이 안되는 문제 발생 그로 인해 deviceToken 값을 가져오지 못함 해결 info.plist에 FirebaseAppDelegateProxyEnabled 추가 후 type: "Boolean", value: "NO" 추가 해결과정 FirebaseApp.configure() 실행 시 FIRMessaging으로 인해 APNS가 자동으로 설정되어 함수 호출이 안된 것 같다. 그래서 FirebaseAppDelegateProxyEnabled는 Application delegate이 받은 APNS를 설정하는데 사용된다. 값을 "NO"로 하게 되면 APNS가 수동으로 설정되어 didRegisterFor..

트러블슈팅) iOS. 무결성을 확인할 수 없기 떄문에 이 앱을 설치할 수 없습니다.

문제 iPhone 15에서 기존에 배포되어 있던 앱을 다운로드 시, "무결성을 확인할 수 없기 떄문에 이 앱을 설치할 수 없습니다."라는 문제가 나왔다. Apple 커뮤니티 - iPhone 15, iOS 17에서 무결성 해제 방법 알려주실 수 있을까요? 비슷한 문제를 가지고 계신분들이 있는 것 같다.. 해결과정 구글링을 해보니 앱 버전과, 빌드 버전를 업데이트 해보라는 글이 많아 수정해서 배포하려고 했다. 일단 재 배포하기 위해 ipa파일을 생성 한 후 dropbox에 업로드 했다.(dropbox로 배포하는 방식으로 하는 중이다.) 절차대로 manifast 수정하고 웹 코드도 수정했지만, 다운로드 반응이 없었다.(보통 dropbox 링크 문제인 경우이다.) 이전 공유 링크 url과 비교해보니 url중간에..