IBM MobileFirst 7.0 - проблема Xcode 10.1 / iOS 12 на libstdc ++. 6.dylib - PullRequest
0 голосов
/ 23 ноября 2018

Мы используем MFP 7.0 для разработки наших мобильных приложений.На Xcode 9 у нас нет проблем, и все наши приложения работают без сбоев.Когда вышли Xcode 10 и iOS 12, мы обновили наши MacBook, но у нас возникли проблемы во время компиляции.Мы добавили библиотеку libstdc ++. 6.dylib в соответствии с рекомендациями форумов.Он работает нормально, когда мы запускаем на симуляторе, но если мы пытаемся протестировать на реальных устройствах (iPhone / iPad), мы получаем сообщение об ошибке " .. / native / Frameworks / libstdc ++. 6.dylib, отсутствует необходимая архитектура arm64".

Вот фактический журнал предупреждений / ошибок в моем xcode, когда я запускаю приложение для моего устройства iphone:

ld: предупреждение: игнорирование файла / Users / jm/Documents/App/native/Frameworks/libstdc++.6.dylib, отсутствует требуемая архитектура arm64 в файле /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylib (2 фрагмента) неопределенных символов для архитектуры arm64: "std :: basic_ostringstream, std :: allocator> :: basic_ostringstream (std :: _ Ios_Openmode) ", на который ссылаются из: + [NSNumber (UCUtils) doubleToString:] в libWorklightStaticLibProject.a (NSNumber-UCUtils.o)" std :: ostream:: operator << (double) ", ссылка из: + [NSNumber (UCUtils) doubleToString:] в libWorklightStaticLibProject.a (NSNumber-UCUtils.o)" std :: string :: c_str () const ", ссылка из: + [NSNumber (UCUtils) двойнойToString:] в libWorklightStaticLibProject.a (NSNumber-UCUtils.o) "std :: basic_string, std :: allocator> :: ~ basic_string ()", на который ссылается из: + [NSNumber (UCUtils) doubleToString:] в libWorklightStaticLibProject.a (NSNumber-UCUtils.o) "std :: basic_ostringstream, std :: allocator> :: str () const", на который ссылаются из: + [NSNumber (UCUtils) doubleToString:] в libWorklightStaticLibProject.a (NSNumber-UCUtils.o) "std:: basic_ostringstream, std :: allocator> :: ~ basic_ostringstream () ", на который ссылаются из: + [NSNumber (UCUtils) doubleToString:] в libWorklightStaticLibProject.a (NSNumber-UCUtils.o) ld: символы не найдены для архитектурыarm64 clang: ошибка: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

: - 1: игнорирование файла /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylibотсутствует необходимая архитектура arm64 в файле /Users/jm/Documents/App/native/Frameworks/libstdc++.6.dylib (2 среза)

: - 1: символы не найдены для архитектуры arm64

: - 1: команда компоновщикаошибка с кодом выхода 1 (используйте -v для просмотра вызова)

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Я пытался следовать на MFP v6.2, который работал нормально на устройстве.Вы можете попробовать то же самое.Можете ли вы дать более подробную информацию по вашему вопросу, откуда вы копировали библиотеки stdlibc ++.

  1. С вашего компьютера Xcode 9

скопируйте файл: (libstdc ++. 6.0.9.tbd) и (libstdc ++. 6.tbd) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib и /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib

Вставьте по следующему пути на компьютере Xcode 10

скопируйте файл: (libstdc ++. 6.0.9.tbd) и (libstdc ++. 6.tbd) в: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib и /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib

(обратите внимание на различие между «iPhoneOS» и «iPhoneSimulator»)

Добавить скопированные библиотеки (libstdc ++. 6.0.9.tbd) и (libstdc ++. 6.tbd) в путь «Build Phase-> Link library» для проекта Xcode.

очистить xcode и перестроить его.

Выполнить на устройстве iOS 12

Примечание. При проблемах с симулятором /usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator можно попробовать скопировать исходный файл: libstdc ++.6.0.9.dylib и libstdc ++. 6.dylib и libstdc ++. Dylib to: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib

Но иногда даже не работает, рекомендуется запустить на симуляторе iOS 11

0 голосов
/ 23 ноября 2018

Вы упомянули «Мы добавили библиотеку libstdc ++. 6.dylib, как рекомендовано на форумах».Кажется, библиотека libstdc ++. 6.dylib, которую вы скопировали из предыдущей версии XCode, создана не для arm64, а только для архитектуры симулятора.Лучший способ - это избавиться от библиотеки libstdc ++, заменив ее на libc ++ в связанных библиотеках на этапе сборки проекта Xcode. Это хорошо работает с версиями MobileFirst v7.1 и v8.0.

...