Xcode10.1で以下の警告メッセージが表示されます。
iOSシミュレーターのデプロイメントターゲットは7.0に設定されていますが、このプラットフォームでサポートされているデプロイメントターゲットバージョンの範囲は8.0〜12.1です。
12.1 Xcode10.1の私のシミュレータOS
そして、ポッドファイルを更新しました。
私の展開目標は9.0です
私のターゲットでは
Xcode
がありFile
ます。次にWorkspace Settings
、ビルドシステムを開いて「レガシービルドシステム」に変更します。そして、まだこれを試したことがない場合は、stackoverflow.com
回答:
次のように、すべてのポッドファイルのデプロイメントターゲットを現在のプロジェクトデプロイメントターゲットに自動的に一致させるようにポッドファイルを設定できます。
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
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
問題は、ポッドファイルのデプロイメントターゲットiOSバージョンにあり、プロジェクトデプロイメントターゲットiOSバージョンにはないため、ポッドのデプロイメントiOSバージョンも8.0より高いものに変更して、プロジェクトワークスペースを開いてこれを行う必要があります。
1-ポッドをクリックします。
2-各プロジェクトとターゲットを選択し、ビルド設定をクリックします。
3- [展開]セクションで、iOS展開ターゲットのバージョンを8.0以上に変更します(同じプロジェクトバージョンを試すことをお勧めします)。
4-ポッド内の他のすべてのプロジェクトに対してこれを繰り返してから、アプリを実行します。
それはだ場合にのみ、それを調整し、すべてのポッドのために元の値のセットを占め、タオ-Nhan Nguyenさんからの回答を反復処理ません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
インストール後のポッドでデプロイメントターゲットを指定する代わりに、ポッドデプロイメントターゲットを削除できます。これにより、デプロイメントターゲットが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
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のサポートが終了したために発生していますが、ポッドの最小展開ターゲットはiOS8です。
これが修正されるまで、ポッドファイルに以下を追加できます。
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
これにより、プロジェクト内のすべてのポッドからデプロイメントターゲットが削除され、ポッドファイルの先頭で指定されたプロジェクト/ワークスペースデプロイメントターゲットを継承できるようになります。
installer.pods_project&.targets&.each do |target|
場合に使用incremental_installation
します。
誰かがreactnativeの問題からここに来た場合は、/ buildフォルダーを削除して次のように入力します react-native run ios
/build
同僚、このフォルダはどこにありますか?
./project-root/ios/build
cd ios && pod install && cd ..
しただけで再び機能し始めました。
プロジェクト展開ターゲットをすべてのポッドターゲットに適用できます。以下のコードブロックをポッドファイルの最後に追加することで解決しました。
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
結果ログ:
私の場合、両方npm install
を使用したyarn install
ことがあるため、この問題が発生したため、これを解決するためにpackage-lock.jsonとnode_modulesを削除してから、
yarn install
cd ios
pod install
それは私のために働いた