개발을 진행하다 보면 다양한 경고 메시지에 부딪히게 됩니다. 특히, iOS 앱 개발에서는 프로젝트 설정과 라이브러리 호환성 등을 관리해야 하기 때문에 이런 문제가 빈번하게 발생하곤 합니다.
오늘은 특히 자주 보게 되는 경고 중 하나인 'IPHONEOS_DEPLOYMENT_TARGET'에 관련된 경고 메시지를 해결하는 방법에 대해 알아보겠습니다.
위 경고 메시지는 프로젝트나 라이브러리의 배포 타겟 버전이 현재 Xcode에서 지원하는 버전 범위를 벗어났을 때 나타나는데요. 이렇게 되면 빌드 자체에는 크게 문제가 없을 수 있지만, 앱의 호환성 이슈를 불러올 수 있습니다. 그래서 이를 해결하기 위한 방법을 알아보도록 하겠습니다.
문제: 라이브러리별로 다른 최소 배포 버전
개발을 진행하면서 CocoaPods를 이용해 여러 외부 라이브러리를 사용할 때 한 가지 공통된 문제를 마주칠 수 있습니다. 바로 각 라이브러리의 'General' 탭에서 'Minimum Deployment' 설정이 라이브러리마다 제각각이라는 점입니다. 심지어 어떤 라이브러리는 버전 8.0 같이 오래된 버전으로 설정되어 있을 수도 있습니다.
기존 방법: 직접 설정하기
이 문제를 해결하기 위한 기존의 방법은 각 라이브러리를 개별적으로 확인하고, 필요에 따라 'Minimum Deployment'을 수동으로 조정하는 것이었습니다. 하지만 이 방법은 여러 라이브러리를 사용하게 될 경우 매우 시간이 많이 소요됩니다.
해결책: Podfile에서 일괄 설정하기
하지만 이런 불편함을 해소할 수 있는 방법이 있습니다. 바로 'Podfile'에 특정 코드를 추가하는 것입니다. 아래에 제시된 코드를 'Podfile' 의 맨밑에 추가 후 터미널에서 'pod install' 또는 'pod update'를 해주면, 모든 라이브러리의 'Minimum Deployment'이 일괄적으로 설정됩니다:
post_install do |installer|
# CocoaPods 설치 후 실행될 코드를 정의합니다.
# 'installer' 객체는 설치된 CocoaPods 프로젝트에 대한 참조입니다.
installer.pods_project.targets.each do |target|
# 프로젝트에 포함된 각 타겟(특정 버전의 iOS, macOS 등에 대응하는 빌드 설정 그룹)에 대해 루프를 실행합니다.
# 'target'은 현재 타겟에 대한 참조입니다.
target.build_configurations.each do |config|
# 각 타겟에 대해 빌드 설정을 확인합니다.
# 'config'는 현재 빌드 설정에 대한 참조입니다.
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
# 'IPHONEOS_DEPLOYMENT_TARGET' 빌드 설정을 '13.0'으로 변경합니다.
# 이것은 이 타겟에 대한 최소 배포 버전을 iOS 13.0으로 설정합니다.
end
end
end
위의 코드는 모든 라이브러리에 대해 'Minimum Deployment Target'을 iOS 13.0으로 설정합니다. 원하는 iOS 버전을 '13.0' 부분에 입력하면 됩니다.
마무리
이렇게 간단하게 'Podfile'에 코드를 추가하는 것만으로도, 각각의 라이브러리에 대해 일일이 설정을 변경하는 번거로움을 피할 수 있습니다. 이 방법을 활용하면 개발 시간을 절약하고, 더욱 효율적으로 프로젝트를 관리할 수 있습니다.