Ошибка при сборке мобильного приложения для iOS на 8.3.15.62

1. inord777 36 14.09.19 00:16 Сейчас в теме
В Xcode при компиляции приложения для iOS по проекту сделанному мобильной платформой 8.3.15.62 происходит ошибка:

Undefined symbols for architecture arm64:
"_SecCopyErrorMessageString", referenced from:
a761334670304447d176 in 1cem.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Проблема в платформе или в настройках схемы компиляции?

Актуально в связи http://1c.ru/news/info.jsp?id=26226
Найденные решения
2. inord777 36 24.09.19 14:53 Сейчас в теме
Ошибка была в устаревшем Xcode 9.2, который использует SDKs iOS 11.2

Согласно
https://developer.apple.com/documentation/security/1394686-seccopyerrormessagestring?language=objc

Функция SecCopyErrorMessageString добавлена SDKs iOS 11.3+.

После обновления macОS с 10.12.6 до 10.14.6 стала доступна новая версия Xcode 10.4. После обновления сборка прошла, но опубликовать приложение всё равно не получилось:

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_priva­cy [^]).

Согласно https://developer.apple.com/documentation/bundleresources/information_property_list/­nsbluetoothalwaysusagedescription

добавил в Info.plist новое свойство NSBluetoothAlwaysUsageDescription вручную и проверка Apple прошла успешно.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. inord777 36 24.09.19 14:53 Сейчас в теме
Ошибка была в устаревшем Xcode 9.2, который использует SDKs iOS 11.2

Согласно
https://developer.apple.com/documentation/security/1394686-seccopyerrormessagestring?language=objc

Функция SecCopyErrorMessageString добавлена SDKs iOS 11.3+.

После обновления macОS с 10.12.6 до 10.14.6 стала доступна новая версия Xcode 10.4. После обновления сборка прошла, но опубликовать приложение всё равно не получилось:

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_priva­cy [^]).

Согласно https://developer.apple.com/documentation/bundleresources/information_property_list/­nsbluetoothalwaysusagedescription

добавил в Info.plist новое свойство NSBluetoothAlwaysUsageDescription вручную и проверка Apple прошла успешно.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот