아이폰 개발자모드 빌드 – Flutter iPhone 빌드하기

이번 포스트에서는 아이폰 개발자모드 빌드하는 과정을 진행하면서 겪었던 여러 가지 문제와 그 해결 방법을 소개할 것입니다. iOS 앱을 Xcode를 사용하여 개발하는 과정에서 발생할 수 있는 다양한 문제를 하나씩 해결해 나가며, 성공적으로 앱 출시를 위해 실제 기기에서 테스트하는 방법에 대해 살펴보겠습니다.

xcode

Xcode 설치 및 초기 설정

앱 개발을 시작하기 위해 첫 번째로 Xcode를 설치하고 설정에서 개발자 계정을 등록해야 했습니다. 이러한 초기 설정은 Xcode에서 프로젝트를 빌드하고 테스트하기 위해 필수적인 단계입니다.

아이폰-개발자모드-빌드-xcode-초기설정

프로젝트 열기 및 번들 식별자 설정

xcode에서 File -> open으로 프로젝트를 열어 줍니다. 위치는 프로젝트/ ios/Runner.xcodeproj입니다.

이후 “Runner”에서 “Signing & Capabilities” 섹션으로 이동하여 팀을 선택하고 번들 식별자를 생성하였습니다. 이는 앱의 유일한 식별자로, 앱 스토어와 개발 중 앱을 식별하는 데 중요한 역할을 합니다.

아이폰-개발자모드-빌드-xcode-식별자설정

아이폰 개발자 모드 전환 및 실행

아이폰을 개발자 모드로 전환하여 앱 설치 및 디버깅이 가능하도록 준비했습니다. 이는 개발 중 편리한 테스트 및 디버깅을 위한 필수 단계입니다.

아이폰-개발자모드

Xcode또는 IDE에서 해당 디바이스로 실행시킵니다.

‘IPHONEOS_DEPLOYMENT_TARGET’ is set to 10.0 문제 해결

아래 에러 메시지로인해 인해 빌드가 되지 않았습니다.

'IPHONEOS_DEPLOYMENT_TARGET' is set to 10.0, but the range of supported deployment target versions is
12.0 to 18.1.99.

검색을 통해 프로젝트폴더/ios/podfile에 코드를 추가하였습니다. target.source_build_phase.files.each do |file| 아래줄에 추가하면 됩니다.

   if target.name == 'BoringSSL-GRPC'
        target.source_build_phase.files.each do |file|
          if file.settings && file.settings['COMPILER_FLAGS']
            flags = file.settings['COMPILER_FLAGS'].split
            flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' }
            file.settings['COMPILER_FLAGS'] = flags.join(' ')
          end
        end
      end

`rm -rf podfile.lock` 명령어로 기존 파일을 삭제한 후 `pod install –repo-update`를 실행하여 재 설치하였습니다. 이런 식으로 종속성을 업데이트하고 설정을 조정하여 빌드 오류를 해결할 수 있습니다. 아래링크는 참고한 stackoverflow의 링크입니다.

키체인에서 ‘Apple Development’ 문제 해결

앱 빌드 중 갑작스럽게 비밀번호 입력 요구가 나타났습니다. 애플 계정 비밀번호 입력 후에도 문제가 해결되지 않았습니다. 맥북에서 키체인 접근에 들어가서 키체인 접근 열기를 합니다.

아이폰-개발자모드-빌드-xcode-키체인

키체인 접근에서 ‘apple development’ 항목을 모든 응용 프로그램이 접근할 수 있도록 허용함으로써 문제를 해결했습니다. 이로 인해 인증 문제를 해결할 수 있었습니다.

Include of non-modular header inside framework module 문제 해결

firebase_auth 모듈과 관련된 문제가 발생했으며, 빌드 설정에서 ‘apple clang – language – modules’ 옵션을 조정하여 ‘allow non-modular includes in framework modules’를 ‘yes’로 변경하여 문제를 완화했습니다. 아래 이미지를 참고하셔서 수정하세요

Include-of-non-modular-header inside-framework-module

아래링크는 참고한 stackoverflow의 링크입니다.

아이폰 빌드

문제 해결 후 드디어 빌드가 성공적으로 이루어졌으며, 앱을 테스트할 수 있었습니다. 그러나 아이폰의 ‘일반 > VPN 및 기기 관리’로 이동하여 앱을 허용하는 과정이 추가로 필요했습니다. 최종적으로 앱에 접속하여 테스트를 하였으나, 사용 가능한 기능들을 검토하여 예상한 것보다 많은 수정사항이 있음을 발견했습니다.

아이폰-신뢰할수없음

Leave a Comment