Я пытался получить покрытие кода для симулятора iPhone и всегда получаю покрытие в размере 0%. Ниже приведены сведения о конфигурации и шаги, которые я пробовал.
Конфигурация
Xcode 3.2.5/iOS 4.1 и iOS 4.2/Mac 10.6/GCC 4.2 заявка UICatalog
Ссылки
http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/
http://developer.apple.com/library/mac/#qa/qa2007/qa1514.html
Шаги
- Включить "Сгенерировать файлы тестового покрытия"
- Включить "Прикладной программный поток"
- Добавьте "
-lgcov
" в "Другие флаги компоновщика" -
UIApplicationExitsOnSuspend
флаг в Info.plist имеет значение true
Результат
У меня есть файлы .gcda, но покрытие всегда показывает 0%.
Настройки попытались
-
Изменение GCC до 4.0 и 4.2. Когда я пытаюсь изменить GCC на 4.0, я получаю 26 ошибок сборки.
-
Установить переменные среды
(const char *prefix = "GCOV_PREFIX"; const char *prefixValue = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] cStringUsingEncoding:NSASCIIStringEncoding]; // This gets the filepath to the app Documents directory const char *prefixStrip = "GCOV_PREFIX_STRIP"; const char *prefixStripValue = "1"; setenv(prefix, prefixValue, 1); // This sets an environment variable which tells gcov where to put the .gcda files. setenv(prefixStrip, prefixStripValue, 1); // This tells gcov to strip the default prefix, and use the filepath that we just declared.)
-
Оптимизация GCC установлена на None (-O0) и не отмечена флаг префиксного файла заголовка префикса.