Компиляция какао-дровосека с Xcode 8.3.2 приводит к ошибкам в DDOSLogger.m

Попытка построить какао-дровосека /swift через какао-бобы. Компиляция последнего тега 3.2.0 приводит к ошибкам в DDOSLogger.m Вот пример:

        .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:68:17: error: static_assert failed "formatters/labels/descriptions must be a constant string"
                os_log_debug(OS_LOG_DEFAULT, msg);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In module 'os' imported from .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:18:
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/log.h:271:9: note: expanded from macro 'os_log_debug'
        os_log_with_type(log, OS_LOG_TYPE_DEBUG, format, ##__VA_ARGS__)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/log.h:175:9: note: expanded from macro 'os_log_with_type'
        OS_LOG_CALL_WITH_FORMAT(_os_log_impl, \
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In module 'os' imported from .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:18:
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/trace_base.h:59:28: note: expanded from macro 'OS_LOG_CALL_WITH_FORMAT'
        OS_LOG_PRAGMA_PUSH OS_LOG_STRING(LOG, _os_fmt_str, fmt); \
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/trace_base.h:50:9: note: expanded from macro 'OS_LOG_STRING'
        _Static_assert(__builtin_constant_p(_str), \
        ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~
.../Pods/CocoaLumberjack/Classes/DDOSLogger.m:68:17: error: array initializer must be an initializer list or string literal
In module 'os' imported from .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:18:
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/log.h:271:9: note: expanded from macro 'os_log_debug'
        os_log_with_type(log, OS_LOG_TYPE_DEBUG, format, ##__VA_ARGS__)
        ^
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/log.h:175:9: note: expanded from macro 'os_log_with_type'
        OS_LOG_CALL_WITH_FORMAT(_os_log_impl, \
        ^
In module 'os' imported from .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:18:
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/trace_base.h:59:47: note: expanded from macro 'OS_LOG_CALL_WITH_FORMAT'
        OS_LOG_PRAGMA_PUSH OS_LOG_STRING(LOG, _os_fmt_str, fmt); \
                                              ^
.../Pods/CocoaLumberjack/Classes/DDOSLogger.m:68:46: error: os_log() format argument is not a string constant
                os_log_debug(OS_LOG_DEFAULT, msg);
                                             ^~~
In module 'os' imported from .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:18:
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/log.h:271:50: note: expanded from macro 'os_log_debug'
        os_log_with_type(log, OS_LOG_TYPE_DEBUG, format, ##__VA_ARGS__)
                                                 ^~~~~~
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/log.h:176:55: note: expanded from macro 'os_log_with_type'
                (&__dso_handle, _log_tmp, _type_tmp), format, ##__VA_ARGS__); \
                                                      ^~~~~~
In module 'os' imported from .../Pods/CocoaLumberjack/Classes/DDOSLogger.m:18:
/Applications/Xcode 8.3.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/include/os/trace_base.h:60:65: note: expanded from macro 'OS_LOG_CALL_WITH_FORMAT'
        uint8_t _os_fmt_buf[__builtin_os_log_format_buffer_size(fmt, ##__VA_ARGS__)]; \
                                                                ^~~

Я обновил какао-бобы, попробовал это с последним Xcode 8.3.1, почистил все и т.д... не повезло. Что меня удивляет, так это то, что я не могу найти никакого обсуждения этого... очевидно, я не получил сообщение, потому что у всех остальных это работает или используется более старый тег.

Использование тега 3.1.0 работает нормально, я считаю, что помимо прочего в него не включен DDOSLogger.

1 ответ

Решение

Я не уверен, что вам удалось это исправить, но похожая проблема описана здесь - https://github.com/CocoaLumberjack/CocoaLumberjack/issues/883

По сути, это была ошибка в CocoaLumberjack, которая появилась в новой версии Xcode, и она уже исправлена.

Другие вопросы по тегам