iOS 시뮬레이터 배포 대상은 7.0으로 설정되어 있지만이 플랫폼에 대해 지원되는 배포 대상 버전의 범위는 8.0 ~ 12.1입니다.


170

Xcode 10.1에서 아래 경고 메시지가 나타납니다.

iOS Simulator 배포 대상은 7.0으로 설정되어 있지만이 플랫폼에 대해 지원되는 배포 대상 버전의 범위는 8.0에서 12.1입니다.

12.1 Xcode 10.1의 시뮬레이터 OS

그리고 내 포드 파일을 업데이트했습니다.

여기에 이미지 설명 입력

내 배포 대상은 9.0입니다.

여기에 이미지 설명 입력

내 목표에서

여기에 이미지 설명 입력


user-images.githubusercontent.com/5786033/ 에서 대상을 확인하십시오 , 편집 : 프레임 워크에서
Vinaykrishnan

@ Vinaykrishnan, 9.0
iOS

4
이 사람들은 github.com/flutter/flutter/issues/22123github.com/CocoaPods/CocoaPods/issues/8069 같은 문제를 확인했습니다 . 열려있는 Xcode과가 File애플 아이콘 옆에 연 다음 왼쪽 상단 Workspace Settings및 레거시 빌드 System` to` 빌드 시스템을 변경합니다. 그리고 아직 이것을 시도하지 않았다면 stackoverflow.com/a/52552878/2323806
Vinaykrishnan

답변:


237

다음과 같이 모든 podfile의 배포 대상을 현재 프로젝트 배포 대상에 자동으로 일치 시키도록 podfile을 설정할 수 있습니다.

post_install do |pi|
    pi.pods_project.targets.each do |t|
      t.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      end
    end
end

훌륭한 답변에 감사드립니다! 궁금한 점-네 번째 줄에서 '9.0'을 자동화하여 주 프로젝트에서 배포 대상을 가져 오는 것이 가능할까요 ??
Fattie

9
이미 다른 설치 후 후크가있는 경우 어떻게합니까? 여러 사후 설치가 지원되지 않는다는 오류 메시지가 표시됩니다
George Salamanca

포드의 최소 배포 대상이 이미 적용된 대상보다 높은 경우 작동하지 않는 것 같습니다. 그래서 우리는 원래의 가치를 고려해야합니다.
Grigory Entin

1
@GeorgeSalamanca, 당신은 같은 post_install 블록에 넣을 수 있습니다
사이먼 한센에게

5
나는 그냥 할 수 있다고 생각 @Fattieconfig.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
rmp251

97

문제는 프로젝트 배포 대상 iOS 버전이 아닌 포드 파일 배포 대상 iOS 버전에 있으므로 프로젝트 작업 영역을 열고 다음을 수행하려면 포드의 배포 iOS 버전과 8.0 이상을 변경해야합니다.

1- 포드를 클릭합니다.

2- 각 프로젝트와 대상을 선택하고 빌드 설정을 클릭하십시오.

3- 배포 섹션에서 iOS 배포 대상 버전을 8.0 이상으로 변경합니다 (동일한 프로젝트 버전을 시도하는 것이 좋습니다).

4- 포드의 다른 모든 프로젝트에 대해이 작업을 반복 한 다음 앱을 실행합니다.

자세한 내용은 사진을 참조하십시오 여기에 이미지 설명 입력


52
포드 프로젝트가 자동으로 생성됩니다. 당신은 그것을 망쳐서는 안됩니다.
Mihai Damian

2
나는 포드를 엉망으로 만들지 않았다 (인간에 의해 만들어 졌기 때문에 문제가 없음을 발견했지만 ..) 나는 허용 할 수있는 대상이되어야하는 iOS 버전을 변경했다. 그리고 이것은 자신의 프로젝트 iOS 버전을 낮추도록 강요하는 허용되는 것보다 더 나은 솔루션입니다.
Ahmed El-Bermawy

6
허용되는 솔루션이 더 낫다고 말하는 것이 아니라 생성 된 파일을 편집하는 것이 좋지 않다는 것입니다. Cocoapods에서 생성 한 파일은 나중에 덮어 쓸 수 있으므로 수동으로 편집해서는 안됩니다. 출력이 마음에 들지 않으면 post_install을 통해 Podfile에서 조정할 수 있습니다. 이러한 파일은 저장소에 커밋되어서는 안됩니다.
Mihai Damian

1
@Muhammad 그것은 어쨌든 나를 위해 내가 릴리스 내 프로젝트에 대한 경고를 떠나지 않을 것이다, 포드 개발자 자신으로부터 답변을해야
아메드 엘 Bermawy

1
당신은 그들 모두를 선택하고 한 번에 변경할 수 있습니다
라미 Alloush

47

Tao-Nhan Nguyen의 답변을 반복하고 모든 pod에 대해 설정된 원래 값을 고려하고 8.0보다 크지 않은 경우에만 조정합니다 . Podfile에 다음을 추가합니다.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      if Gem::Version.new('8.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '8.0'
      end
    end
  end
end

1
이로 인해 새로 생성 된 반응 네이티브 앱에 대한 100 개의 xcode 경고가 수정되었습니다
baskInEminence

아주 좋은 그리고 리
타오 - 냔 구엔

이것은 나를 위해 일했습니다.
a_lovelace

42

포드 설치 후 배포 대상을 지정하는 대신 포드 배포 대상을 삭제하여 배포 대상이 podfile 플랫폼에서 상속되도록 할 수 있습니다.

효과가 발생하려면 포드 설치를 실행해야 할 수 있습니다.

platform :ios, '12.0'

  post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
      end
    end
  end

40

Xcode 12에서 CocoaPods를 사용하는 경우 다음 오류가 표시되었을 것입니다.

The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.

이는 iOS 8에 대한 지원이 중단되었지만 포드의 최소 배포 대상이 iOS 8이기 때문에 발생합니다.

이 문제가 해결 될 때까지 Podfile에 다음을 추가 할 수 있습니다.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
    end
  end
end

이렇게하면 프로젝트의 모든 pod에서 배포 대상이 제거되고 Podfile 상단에 지정된 프로젝트 / 작업 공간 배포 대상을 상속 할 수 있습니다.


그렇게해도 안전합니까?
Cublax

true로 설정 한 installer.pods_project&.targets&.each do |target|경우 사용하십시오 incremental_installation.
José

이것이 최상의 솔루션입니다
Lena Bru

15

반응 네이티브 문제로 여기에 온 사람이 있다면 / build 폴더를 삭제하고 react-native run ios


/build폴더 는 어디에 있습니까 , 동료?
Erik Escobedo

./project-root/ios/build
kitsune

그 디렉토리는 나를 위해 존재하지 않았지만 방금 실행 cd ios && pod install && cd ..하고 다시 작동하기 시작했습니다.
Jimbali

야 넌 남자 야!
Nicky Kouffeld

10

이 문제를 해결하고 빌드 시스템 을 다음 과 같이 변경 했습니다.Legacy Build SystemNew Build System

Xcode v10 +에서 파일> 프로젝트 설정을 선택합니다.

이전 Xcode에서 파일> 작업 공간 설정을 선택하십시오.

여기에 이미지 설명 입력

로 변경 빌드 시스템 Legacy Build System에서이 New Build System-> 완료를 클릭하십시오.

여기에 이미지 설명 입력


1
SwiftUI 미리보기를 생성하려면 새 빌드 시스템 (기본값)이 필요하기 때문에 더 이상 적합한 솔루션이 아닙니다. (
Ric Santos

3
이것은 실제 해결책이 아닙니다.
smileBot

기존 시스템에 되돌리기 수정하지 않습니다
FaultyJuggler

6

다음 단계를 시도하십시오.

  1. Podfile.lock 삭제
  2. Podfile 삭제
  3. 프로젝트 구축
  4. Firebase에서 초기화 코드 추가
  5. cd /ios
  6. pod install
  7. 프로젝트 실행

이것은 나를 위해 일한 것입니다.


3

프로젝트 배포 대상을 모든 포드 대상에 적용 할 수 있습니다. 아래 코드 블록을 Podfile 끝에 추가하여 해결되었습니다.

post_install do |installer|
  fix_deployment_target(installer)
end

def fix_deployment_target(installer)
  return if !installer
  project = installer.pods_project
  project_deployment_target = project.build_configurations.first.build_settings['IPHONEOS_DEPLOYMENT_TARGET']

  puts "Make sure all pods deployment target is #{project_deployment_target.green}"
  project.targets.each do |target|
    puts "  #{target.name}".blue
    target.build_configurations.each do |config|
      old_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
      new_target = project_deployment_target
      next if old_target == new_target
      puts "    #{config.name}: #{old_target.yellow} -> #{new_target.green}"
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = new_target
    end
  end
end

결과 로그 :

포드 배포 대상 버전 경고 수정


좋은! 컬러 로그는 매우 유용합니다
Asaf Pinhassi

1

당신 react-native이이 오류 에서 왔고 직면 했다면 이것을하십시오

  1. 열기 Podfile(프로젝트> ios> Podfile)
  2. podfile의 주석 플리퍼 기능은 아래와 같습니다.
#use_flipper!
 #post_install do |installer|
   #flipper_post_install(installer)
 #end
  1. IOS폴더 내부의 터미널에서 다음 명령을 입력하십시오.pod install

네, 그것이 당신에게 효과가 있기를 바랍니다.


0

이 문제가있는 코르도바 개발자 용

설정하려고

<preference name="deployment-target" value="8.0" />

confix.xml에서


-3

내 경우에는 내가 모두를 사용하고 npm install그리고 yarn install난이 문제를 가지고 왜 그렇게 내가 제거 패키지 lock.json 및 node_modules을하고 내가 한이 문제를 해결하기 위해 즉

yarn install
cd ios
pod install

그것은 나를 위해 일했다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.