#ios #xcode #flutter
#iOS #xcode — код #трепетание
Вопрос:
TLDR; Я создал виджет swift, и теперь я не могу создать свое приложение flutter.
Я создал небольшой виджет, следуя этому руководству
https://itnext.io/develop-an-ios-14-widget-in-flutter-with-swiftui-e98eaff2c606
Все прошло нормально, я встроил Xcode, и вуаля, у меня появился виджет и мое приложение. Возвращаюсь к vscode, чтобы внести изменения, и теперь я не могу выполнить сборку и получаю конфликт пакетов!
Unable to install /Users/monsters/Projects/flutter_time_to_call/my_app/build/ios/iphonesimulator/Runner.app on 45CE9F59-2AC0-494F-B043-C3F1B4E27EFC. This is
sometimes caused by a malformed plist file:
ProcessException: Process exited abnormally:
An error was encountered processing the command (domain=IXErrorDomain, code=2):
Failed to set plugin placeholders for com.bigmojo.timeToCall
Failed to create promise.
Underlying error (domain=IXErrorDomain, code=8):
Attempted to set plugin placeholder promise with bundle ID com.example.timeToCall.time-to-call-widget that does not match required prefix of
com.bigmojo.timeToCall. for parent
Mismatched bundle IDs.
Я вручную создал профили и т. Д. И использовал их в Xcode, Которые имеют «правильные» идентификаторы пакетов, Но что-то продолжает их игнорировать и генерирует этот идентификатор пакета com.example…
Не знаю, куда идти дальше!
Было указано, что, возможно, мой info.plist не был обновлен, но я проверил, и это соответствующая часть
<key>CFBundleDisplayName</key>
<string>time_to_call_widget</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
Я изменил отображаемое имя, но это ничего не дало..
Attempted to set plugin placeholder promise with bundle ID com.example.timeToCall.time-to-call-widget
Я обыскал весь проект в поисках примера word, но тоже ничего не нашел..
Я видел комментарии о том, что это параметр bundleid в Xcode, но я сделал там все, что мог придумать…
Ответ №1:
И ответом будет беги
flutter clean
Спасибо! Stefano
Ответ №2:
По умолчанию Info.plist
файл указывает на PRODUCT_BUNDLE_IDENTIFIER
переменную для CFBundleIdentifier
ключа.
PRODUCT_BUNDLE_IDENTIFIER
Переменная определена в файле:
project/ios/Runner.xcodeproj/project.pbxproj
Обязательно отредактируйте указанный выше файл, установив PRODUCT_BUNDLE_IDENTIFIER
нужное вам значение. Обратите внимание, что должно быть 3 вхождения, обязательно отредактируйте их все:
PRODUCT_BUNDLE_IDENTIFIER = com.newpackage.app;
Обновить:
Я проверил файл project / ios / Runner.xcodeproj /project.pbxproj, и все настройки PRODUCT_BUNDLE_IDENTIFIER «кажутся» правильными
НАПРИМЕР:
PRODUCT_BUNDLE_IDENTIFIER = com.bigmojo.timeToCall.widget;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "time to call widget";
Комментарии:
1. Спасибо за предложение, я проверил файл, и все кажется нормальным или, по крайней мере, НЕ содержит com.example … извините за форматирование… MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = ДА; PRODUCT_BUNDLE_IDENTIFIER = com.bigmojo.timeToCall.widget; PRODUCT_NAME = «$(TARGET_NAME)»; PROVISIONING_PROFILE_SPECIFIER = «время вызова виджета»; SKIP_INSTALL = ДА; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ОТЛАДКА; SWIFT_OPTIMIZATION_LEVEL = «-Onone»; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = «1,2»;
2. Вы пытались запустить
flutter clean
?