Xcode 6: файл «Answers.h» не найден после обновления Fabric Crashlytics

Я работал над своей раскадровкой в ​​​​Xcode 6.3.2 над проектом Objective-C. Внезапно, когда я пытаюсь построить, я получаю сообщение об ошибке:

/.../Developer/ProjectName/Crashlytics.framework/Headers/Crashlytics.h:14:9: Файл "Answers.h" не найден

Я установил Crashlytics и работал в своем приложении несколько недель. У меня он работает через плагин Fabric. Я переключил приложение Fabric и заметил, что оно недавно обновило Crashlytics.

В Xcode, если я иду "Source Control" -> "Commit...", чтобы посмотреть мои изменения, он показывает только сделанные мной изменения, которые не связаны с Crashlytics.

Кто-нибудь еще это видит? У кого-нибудь есть предложения по наиболее эффективному способу восстановления и возвращения к работе?

Я просто немного разочарован тем, что не могу контролировать обновление зависимости.

ОБНОВЛЕНИЕ:

Чтобы привести проект в состояние, пригодное для сборки, чтобы я мог продолжать работать, я временно удалил следующие строки из моего AppDelegate:

  • #import <Crashlytics/Crashlytics.h>
  • [Fabric with:@[CrashlyticsKit]];

person davew    schedule 13.08.2015    source источник
comment
Алекс из Fabric здесь. Похоже, что-то странное произошло во время процесса обновления. Если щелкнуть правой кнопкой мыши фреймворки Crashlytics и Fabric в своем проекте, выбрать «Показать в Finder» и открыть файл info.plist, какое значение версии в строке версий Bundle, короткое?   -  person Alexizamerican    schedule 18.08.2015
comment
Спасибо @Alexizamerican за обращение. В итоге я связался со службой поддержки по ссылке «Связаться со службой поддержки» на странице support.crashlytics.com. С тех пор я полностью удалил Crashlytics из проекта и переустановил — это решило проблему.   -  person davew    schedule 20.08.2015


Ответы (3)


В итоге мне удалось связаться со службой поддержки по ссылке «Связаться со службой поддержки» на странице http://support.crashlytics.com/.

Они предоставили мне несколько шагов, чтобы удалить старую структуру Crashlytics из моего проекта, а затем переустановить ее вручную. Мне было непонятно, что он намеревался удалить фреймворк через Finder вместо Xcode, поэтому моя попытка следовать инструкциям привела к ряду побочных эффектов (например, фреймворк оказался в неправильном каталоге, у меня была безымянная папка на моем рабочем столе из той же команды, которую он заставил меня запустить ... это привело к тому, что Time Machine таинственным образом перестала работать, пока я не удалил папку).

В итоге я полностью удалил Fabric и Crashlytics из проекта, а затем использовал приложение Fabric OSX для установки Crashlytics обратно в проект. Отсюда проект снова заработал.

Чтобы удалить Crashlytics и Fabric из проекта, я сделал следующее:

  1. Удалены Crashlytics.framework и Fabric.framework из моего проекта через Xcode
  2. Удален сценарий запуска в свойствах проекта -> этапы сборки. Это может быть необязательным. Однако важно убедиться, что уникальный идентификатор в сценарии запуска соответствует тому, что Fabric предоставляет при переустановке.
  3. Удалены следующие 3 строки в файле AppDelegate. Это может быть необязательным. При переустановке его нужно будет заменить.

    #import <Fabric/Fabric.h>
    #import <Crashlytics/Crashlytics.h>
    
    [Fabric with:@[CrashlyticsKit]];
    
person davew    schedule 20.08.2015
comment
Для всех, кто читает это: я думаю, что настоящий трюк — это либо № 2, либо № 3 выше, возможно, № 3. Я застрял на этапе сборки для продолжения, и наличие материала #2 или #3 в файлах проекта сбило с толку приложение Fabric. - person Tom Kidd; 06.09.2015

Что касается меня, я следовал шагам Fabric.app, которые сказали мне включить #import <Answers/Answers.h>, но все, что мне было нужно, это:

#import <Crashlytics/Crashlytics.h>

...

[Answers logCustomEventWithName:@"My First Custom Event"
                  customAttributes:@{}];
person Genki    schedule 12.01.2016

Если вы используете Crashlytics+Answer, попробуйте следующее:

#import <Crashlytics/Crashlytics.h> //Obj-C
import Crashlytics                  //Swift
person Mohammad Zaid Pathan    schedule 12.05.2016