#ios #xcode #flutter #xcode13
Вопрос:
У меня только что возникла эта проблема после обновления до Xcode 13
. Я перешел Flutter
на 2.5.1
несколько дней раньше.
Это то, что я вижу:
Failed to build iOS app
Error output from Xcode build:
↳
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
{ platform:iOS Simulator, id:AA0EE6D2-4E24-48C6-B9D6-4F2598B68E4E, OS:15.0, name:iPad (9th generation) }
{ platform:iOS Simulator, id:765C02E6-837E-4443-9073-722162C490DC, OS:15.0, name:iPad Air (4th generation) }
{ platform:iOS Simulator, id:30429B61-93BC-4497-B556-3639373A10D0, OS:15.0, name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator, id:57217E13-F700-4673-9ABF-1866BAE1E435, OS:15.0, name:iPad Pro (11-inch) (3rd generation) }
{ platform:iOS Simulator, id:A85DD0A6-EA0F-480C-9A6F-07966F4FE66B, OS:15.0, name:iPad Pro (12.9-inch) (5th generation) }
{ platform:iOS Simulator, id:1D568B75-852B-42BE-8178-C39E6C515C41, OS:15.0, name:iPad mini (6th generation) }
{ platform:iOS Simulator, id:347466A9-6BA4-4674-94B6-BCB3ACB11F00, OS:15.0, name:iPhone 8 }
{ platform:iOS Simulator, id:F74B444A-2838-4920-91DB-83893719250E, OS:15.0, name:iPhone 8 Plus }
{ platform:iOS Simulator, id:2D4AF847-04A7-463C-A46C-D5D1E200CFDC, OS:15.0, name:iPhone 11 }
{ platform:iOS Simulator, id:BCD3D3BD-6485-4575-AA35-BF9ADEEBB4BD, OS:15.0, name:iPhone 11 Pro }
{ platform:iOS Simulator, id:06DE013F-BF48-4857-B952-BFC2AA1BD304, OS:15.0, name:iPhone 11 Pro Max }
{ platform:iOS Simulator, id:8A06D628-6132-4558-BB65-5598FFAC98DC, OS:15.0, name:iPhone 12 }
{ platform:iOS Simulator, id:885B1C8A-0497-4D95-8A87-447E40AB9238, OS:15.0, name:iPhone 12 Pro }
{ platform:iOS Simulator, id:FF519331-8490-4219-92D0-ED9A08F11976, OS:15.0, name:iPhone 12 Pro Max }
{ platform:iOS Simulator, id:51671583-ED36-4330-839B-401BA09B3996, OS:15.0, name:iPhone 12 mini }
{ platform:iOS Simulator, id:950FC388-6567-40BD-AD31-6CC5A334AC97, OS:15.0, name:iPhone 13 }
{ platform:iOS Simulator, id:562728AB-E0CA-4675-BF75-787299ECE105, OS:15.0, name:iPhone 13 Pro }
{ platform:iOS Simulator, id:CBB3D2FF-97DF-4328-8AD0-7350F83989D1, OS:15.0, name:iPhone 13 Pro Max }
{ platform:iOS Simulator, id:D99FD6E3-C6DC-4F16-8092-83EA0216367F, OS:15.0, name:iPhone 13 mini }
{ platform:iOS Simulator, id:2A06C9C4-9D8C-4C9B-9620-12265131A747, OS:15.0, name:iPhone SE (2nd generation) }
{ platform:iOS Simulator, id:EA2B1A03-78F8-42B2-9818-41FE3F1E833A, OS:15.0, name:iPod touch (7th generation) }
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
** BUILD FAILED **
Xcode's output:
↳
/Users/abc/Developer/flutter/.pub-cache/hosted/pub.dartlang.org/wakelock-0.5.2/ios/Classes/messages.m:4:9: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^~~~~~~~~~~~~~~~~~~
1 error generated.
note: Using new build system
note: Planning
note: Build preparation complete
note: Building targets in parallel
Could not build the application for the simulator.
Я попытался переустановить Flutter, удалить и повторно клонировать свой проект, удалить модули, установить flutter clean pod, восстановить кэш flutter, удалить Flutter из проекта и повторно добавить.
Каждое из них приводит к некоторому изменению приведенной выше ошибки.
Мне также пришлось внести изменения в свою Podfile
—
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
Если я верну это обратно, то получу другой набор ошибок, когда некоторые модули жалуются на то, что они установлены на 8.0 и должны быть от 9.0 до 14.9.9.
Я попытался изменить отдельные модули в проекте Runner, но это не сработало. Вышесказанное устраняет эту ошибку, но теперь я столкнулся с другой.
Следует отметить, что Android работает нормально. Это просто iOS.
Есть еще какие-нибудь предложения по этому поводу?
Ответ №1:
Это то, что сработало для меня:
В Подфайле: Заменить
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
Автор:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
Затем откройте файл iOS в Xcode и в блоках для каждой цели в Настройках сборки установите цель развертывания на 11 (возможно, достаточно 9).
Это то, что ты уже пробовал ?
Ответ №2:
Была аналогичная проблема с XCode 13 и Flutter 2.5.3: сборка с помощью xcodebuild дала ошибку (сборка из пользовательского интерфейса работает нормально) для случайных модулей. После того, как я попытался удалить «проблемную» библиотеку — ошибка была против следующей случайной библиотеки, пока я не застрял в Flutter.h.
Моя проблема заключалась в том, что во время решения проблем я изменил цель развертывания на 13 в XCode, но допустил беспорядок: Я обновил его в подфайле, Проект->Бегун->>Информация>>, Проект->Бегун->>Настройки сборки>>, но забыл сделать это для целей->Бегун->>Настройки сборки>>.
Как только я обновил Цели->Бегун->>Настройки сборки>>, он также начал успешно компилироваться.
В конце концов я откатился до цели 11.0 во всех местах, и она все еще компилируется.