Google Fabric в Xcode 10 beta

Я установил Xcode 10 Beta 6, и я обновляю все, и в этом процессе у меня возникла небольшая проблема с Fabric. На веб-сайте Fabric есть специальные инструкции для Xcode 10, в котором говорится:

Xcode 10 Instructions

Когда я нахожусь в Xcode 10, я перехожу к Build Phases an в Run Script, у которого есть мой ключ Fabric, есть знак + в разделе " Input Fields

Когда я нажимаю кнопку +, он автоматически генерирует $(SRCROOT)/newInputFile где newInputFile автоматически подсвечивается.

Я не понимаю инструкции Fabric. Я могу скопировать $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) после $(SRCROOT)/ Я должен заменить INFOPLIST_PATH файлом пути к моему info.plist?

Я пробовал все эти параметры, но Fabric все еще рушится в Xcode 10. Я знаю, что это Fabric, потому что я прокомментировал Fabric.with([Crashlytics.self]) в моем didFinishLaunchingWithOptions делегата didFinishLaunchingWithOptions

Ответы

Ответ 1

Я сделал именно то, что рекомендовал Махди РБ. Также последовали шаги по официальному руководству, не работали.

Когда я создаю с помощью XCode, я вижу, что он обрабатывает около 2 тыс. Задач. Строение обычно работает, когда я запускаю машину, открываю xcode и выполняю архив. После этого сборка начинает ломаться большую часть времени. Я использую последнюю ткань и crashlytics, загруженные на 03/OCT/18. Это действительно странно, поскольку это работает для моих других проектов, это только тот, который терпит неудачу. Это началось с XCode 10 - Version 10.0 (10A255). Он работал с предыдущим XCode 9.

Это некоторое доказательство того, что я говорю:

XCode pic

Мое обходное решение заключалось в том, чтобы добавить эту команду перед вызовом команды fabric. Например

sleep 15
"${PROJECT_DIR}/Fabric.framework/run" aaaaa aaaa

Я заметил, что на моем приложении Mac консоль загружает эту ошибку, не уверен, связано ли это:

IBAgent-iOS - assertion failed - libxpc.dylib - and some numbers here.

Ошибка в XCode

2018-10-03 13:53:58.698 uploadDSYM[46168:550157] Fabric.framework/run 1.7.2 (210)
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Using API Key: "123"
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Launched uploader in validation mode
error: Fabric: Info.plist Error

Unable to process Info.plist at path /Users/someuser/Library/Developer/Xcode/DerivedData/SampleApp-amwweapikvrbgafmmnyeyorkiufq/Build/Intermediates.noindex/ArchiveIntermediates/SampleApp/BuildProductsPath/Release-iphoneos/SampleApp.app/Info.plist
This could be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved Inspector.app from the location Xcode generated it. You can also add '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' as an "Input Files" dependency for your Fabric run script build phase.

Я попытался открыть эту ссылку plist, она указывает на ярлык, и этот ярлык указывает на реальный файл. Не знаю, почему это происходит. Я предполагаю, что это имеет какое-то отношение к файлам, которые не присутствуют во время выполнения сценария. Задержка устраняет проблему. Надеюсь, это поможет.

  • Я удалил оригинальные имена приложений для обеспечения конфиденциальности.

Ответ 2

Только для Xcode 10, пользователь, который сталкивается с проблемой в окончательной настройке ткани, является вашим проектом.

От Xcode 10 вам нужно сделать еще одну настройку в поле Build Phase Input Files.

Просто вам нужно скопировать это $ (BUILT_PRODUCTS_DIR)/$ (INFOPLIST_PATH) и вставить его в поле Build Phase Input Files в Run Script, как показано на изображении ниже.

enter image description here

Узнайте больше по этой ссылке: https://fabric.io/kits/ios/crashlytics/install

Ответ 3

У меня была такая же проблема, если ваш info.plist находится в вашем корневом каталоге следующим образом:

Root directory tree

yo следует изменить $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) следующим образом:

Path image

Ответ 4

Зайдите в настройки сборки вашей цели. Найдите "Формат отладочной информации". Установите это значение из "DWARF" в обоих случаях отладки и выпуска в "DWARF с файлом dSYM"

источник

settings image

Ответ 5

  1. Добавить этап запуска сценария в конце этапа сборки.
  2. Установите Shell для фазы сценария в /bin/bash.
  3. Установите входные файлы в:

    (1) $(PROJECT_DIR)/$(INFOPLIST_FILE).
    (2) $(PROJECT_DIR)/Scripts/set_bundle_build_number.sh 
        Change path to path of  script so changes you make to the script 
        cause a re-run.
    (3) $(TARGET_BUILD_DIR)/$(INFOPLIST_PATH) 
         Fixes XCode 10 issues of duplicate output phases.
    

Проверьте изображение для получения дополнительной ссылки

Ответ 6

Зайдите в настройки сборки вашей цели. Найдите "Формат отладочной информации". Установите это значение из "DWARF" в обоих случаях отладки и выпуска в "DWARF с файлом dSYM"

Ответ 7

Ошибка фабрики info.plist может быть решена путем изменения рабочего пространства Xcode settings--> build settings--> устаревшая система сборки

Ответ 8

Я решил эту проблему, переместив "Run Script" в конец фаз сборки. Конечно, я изменил на "DWARF с файлом dSYM" и $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH).

Ответ 9

Решением для меня было заменить круглые скобки на фигурные скобки вот так

${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}

Вы можете проверить, существует ли путь на самом деле, если вы вызываете echo $(BUILT_PRODUCTS_DIR) на этапе сценария. Использование круглых скобок дало мне следующую информацию в консоли сборки Xcode: "BUILT_PRODUCTS_DIR: команда не найдена". Замена круглых скобок фигурными скобками выведет путь для всех, и поэтому скрипт наконец-то сработал для меня.

Ответ 10

Ничто из вышеперечисленного не работает для меня. Если кто-то использует Cocoapods, выполните следующие действия.

  1. Добавьте $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) во входные файлы в разделе "Выполнить сценарий".

  2. Замените ./Fabric.framework/run на "${PODS_ROOT}/Fabric/run" в поле "${PODS_ROOT}/Fabric/run" Выполнить сценарий".

  3. Перейдите в "Настройки сборки", найдите " Debug Information и измените ее на DWARF with dSYM File.

Это сработало для меня, по крайней мере.

Ответ 11

Я выполнил инструкцию по Fabric (https://fabric.io/kits/ios/answers/install) шаг за шагом, и он работал для меня на Xcode 10. Возможно, вам придется быть терпеливым и попытаться построить и запустить несколько раз.