Проблемы с идентификатором пакета между Xcode / flutter

#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 ?