Форум КриптоПро
»
Средства криптографической защиты информации
»
Apple
»
Сборка приложения с библиотекой КриптоПро на iOS-симуляторе на M1
Статус: Участник
Группы: Участники
Зарегистрирован: 26.04.2024(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 4 раз
|
Здравствуйте! Мы используем библиотеку CPROCSP.framework в проекте iOS на Mac с Apple Silicon (M1). При сборке проекта на симуляторе iOS сталкиваемся с проблемой:
Без изменений в архитектурах: ld: building for 'iOS-simulator', but linking in object file (/.../librdrpcsc_empty.o) built for 'iOS' clang: error: linker command failed with exit code 1 (use -v to see invocation)
После добавления arm64 в Excluded Architectures для Any iOS Simulator SDK: Undefined symbol: _CertGetCertificateChain и т.д.
Описание ситуации: На M1 симуляторе Xcode по умолчанию пытается собрать проект под arm64. Добавление arm64 в Excluded Architectures переводит симулятор на x86_64, но при этом линкер не находит функции вроде _CertGetCertificateChain в CPROCSP.framework. На реальном устройстве (arm64) проект собирается корректно. В CPROCSP.framework есть папка ios-arm64_x86_64-simulator, однако Xcode не подхватывает корректный бинарь для симулятора на M1. Мы пробовали запускать Xcode через Rosetta, чтобы симулятор стал x86_64, но текущие версии Xcode для macOS Sequoia (15.6.1) официально не поддерживают Rosetta. ARM64 версии Xcode из App Store не имеют опции “Open using Rosetta”, поэтому на M1 симулятор через Rosetta запустить не получается.
Вопрос: Как правильно подключить текущий фреймворк и сборку на M1 симуляторе?
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.04.2024(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 4 раз
|
Также есть ошибка:
ld: warning: ignoring file 'Frameworks/CryptoPro/CPROCSP.framework/CPROCSP(libcsp_framework.o)': found architecture 'arm64', required architecture 'x86_64'
Вывод lipo -info Frameworks/CryptoPro/CPROCSP.framework/CPROCSP дает такой результат:
Non-fat file: CPROCSP is architecture: arm64
Что делать?
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 04.04.2022(UTC) Сообщений: 7  Поблагодарили: 1 раз в 1 постах
|
Добрый день! Полноценная поддержка arm64 симулятора была добавлена начиная с сертифитированного релиза 5.0.13000 ( https://www.cryptopro.ru...spx?g=posts&m=147372 ). Просьба обновиться до минимум этой версии для использования arm64 симулятора. Распаковывать xcframework на составные части не требуется, для линковки в Xcode надо использовать именно его. Скачать можете с нашего сайта https://cryptopro.ru/sit...csp/50/13000/ios-uni.tgzВнутри архива лежат папки Resources и сам CPROCSP.xcframework. Там же вы можете найти примеры приложений. Ваша изначальная ошибка была связана с использованием librdrpcsc_empty.o. Начиная с 5.0.13000 он был заменен на аналогичный rdrpcsc_empty.xcframework по тому же пути для поддержки arm64 симулятора.
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.04.2024(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 4 раз
|
Автор: Яковенко Иван  Добрый день! Полноценная поддержка arm64 симулятора была добавлена начиная с сертифитированного релиза 5.0.13000 ( https://www.cryptopro.ru...spx?g=posts&m=147372 ). Просьба обновиться до минимум этой версии для использования arm64 симулятора. Распаковывать xcframework на составные части не требуется, для линковки в Xcode надо использовать именно его. Скачать можете с нашего сайта https://cryptopro.ru/sit...csp/50/13000/ios-uni.tgzВнутри архива лежат папки Resources и сам CPROCSP.xcframework. Там же вы можете найти примеры приложений. Ваша изначальная ошибка была связана с использованием librdrpcsc_empty.o. Начиная с 5.0.13000 он был заменен на аналогичный rdrpcsc_empty.xcframework по тому же пути для поддержки arm64 симулятора. Здравствуйте, у нас используется версия 5.0.13000. Правильно ли я понимаю, что для билда на симуляторе мне нужно добавить arm64 в excluded arches для any iOS simulator как советовали здесь https://cryptopro.ru/for...aspx?g=posts&t=20868 и заменить файл librdrpcsc_empty.o на файл librdrpcsc_empty.a, который лежит по пути CPROCSP.xcframework/readers/rdrpcsc_empty.xcframework/ios-arm64_x86_64-simulator/librdrpcsc_empty.a? И все? Есть ли инструкция по запуску на симуляторе к версии 5.0.13000?
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 04.04.2022(UTC) Сообщений: 7  Поблагодарили: 1 раз в 1 постах
|
Автор: Mary13  Автор: Яковенко Иван  Добрый день! Полноценная поддержка arm64 симулятора была добавлена начиная с сертифитированного релиза 5.0.13000 ( https://www.cryptopro.ru...spx?g=posts&m=147372 ). Просьба обновиться до минимум этой версии для использования arm64 симулятора. Распаковывать xcframework на составные части не требуется, для линковки в Xcode надо использовать именно его. Скачать можете с нашего сайта https://cryptopro.ru/sit...csp/50/13000/ios-uni.tgzВнутри архива лежат папки Resources и сам CPROCSP.xcframework. Там же вы можете найти примеры приложений. Ваша изначальная ошибка была связана с использованием librdrpcsc_empty.o. Начиная с 5.0.13000 он был заменен на аналогичный rdrpcsc_empty.xcframework по тому же пути для поддержки arm64 симулятора. Здравствуйте, у нас используется версия 5.0.13000. Правильно ли я понимаю, что для билда на симуляторе мне нужно добавить arm64 в excluded arches для any iOS simulator как советовали здесь https://cryptopro.ru/for...aspx?g=posts&t=20868 и заменить файл librdrpcsc_empty.o на файл librdrpcsc_empty.a, который лежит по пути CPROCSP.xcframework/readers/rdrpcsc_empty.xcframework/ios-arm64_x86_64-simulator/librdrpcsc_empty.a? И все? Есть ли инструкция по запуску на симуляторе к версии 5.0.13000? Не так. В excluded arches ничего добавлять не нужно - в переводе с английского это «исключенные архитектуры». Вам исключать ничего не нужно. Файл librdrpcsc_empty.o надо заменить на rdrpcsc_empty.xcframework. Изнутри ничего доставать не нужно - это такой же цельный фреймворк. Инструкцию по запуску на симуляторе не делали, так как она не отличается от запуска на устройстве
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.04.2024(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 4 раз
|
Автор: Яковенко Иван  Автор: Mary13  Автор: Яковенко Иван  Добрый день! Полноценная поддержка arm64 симулятора была добавлена начиная с сертифитированного релиза 5.0.13000 ( https://www.cryptopro.ru...spx?g=posts&m=147372 ). Просьба обновиться до минимум этой версии для использования arm64 симулятора. Распаковывать xcframework на составные части не требуется, для линковки в Xcode надо использовать именно его. Скачать можете с нашего сайта https://cryptopro.ru/sit...csp/50/13000/ios-uni.tgzВнутри архива лежат папки Resources и сам CPROCSP.xcframework. Там же вы можете найти примеры приложений. Ваша изначальная ошибка была связана с использованием librdrpcsc_empty.o. Начиная с 5.0.13000 он был заменен на аналогичный rdrpcsc_empty.xcframework по тому же пути для поддержки arm64 симулятора. Здравствуйте, у нас используется версия 5.0.13000. Правильно ли я понимаю, что для билда на симуляторе мне нужно добавить arm64 в excluded arches для any iOS simulator как советовали здесь https://cryptopro.ru/for...aspx?g=posts&t=20868 и заменить файл librdrpcsc_empty.o на файл librdrpcsc_empty.a, который лежит по пути CPROCSP.xcframework/readers/rdrpcsc_empty.xcframework/ios-arm64_x86_64-simulator/librdrpcsc_empty.a? И все? Есть ли инструкция по запуску на симуляторе к версии 5.0.13000? Не так. В excluded arches ничего добавлять не нужно - в переводе с английского это «исключенные архитектуры». Вам исключать ничего не нужно. Файл librdrpcsc_empty.o надо заменить на rdrpcsc_empty.xcframework. Изнутри ничего доставать не нужно - это такой же цельный фреймворк. Инструкцию по запуску на симуляторе не делали, так как она не отличается от запуска на устройстве Файл rdrpcsc_empty.xcframework уже лежит по пути Frameworks/CryptoPro/CPROCSP.framework/readers/rdrpcsc_empty.xcframework После того как удалила librdrpcsc_empty.o, получаю ошибку для стимуляторе: Building for 'iOS-simulator', but linking in object file (../Frameworks/CryptoPro/CPROCSP.framework/CPROCSP[2](libcsp_framework.o)) built for 'iOS' Для реального девайса: Showing Recent Errors Only Undefined symbol: _SCardBeginTransaction Showing Recent Errors Only Undefined symbol: _SCardConnect
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.04.2024(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 4 раз
|
Полная ошибка для реального девайса:
Undefined symbols for architecture arm64: "_SCardBeginTransaction", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardConnect", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardDisconnect", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardEndTransaction", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardEstablishContext", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardListReaders", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardReconnect", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardReleaseContext", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) ... "_SCardStatus", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_SCardTransmit", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_g_rgSCardT0Pci", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) "_g_rgSCardT1Pci", referenced from: setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) setSelectionColor(UITableViewCell*) in CPROCSP[2](libcsp_framework.o) ld: symbol(s) not found for architecture arm64
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 26.04.2024(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 4 раз
|
У меня получилось запустить проект на реальном устройстве, заменив librdrpcsc_empty.o на rdrpcsc_empty.xcframework. Но для симулятора все так же ошибка:
Building for 'iOS-simulator', but linking in object file (../Frameworks/CryptoPro/CPROCSP.framework/CPROCSP[2](libcsp_framework.o)) built for 'iOS'
Поможете?
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 04.04.2022(UTC) Сообщений: 7  Поблагодарили: 1 раз в 1 постах
|
Автор: Mary13  Автор: Яковенко Иван  Автор: Mary13  Автор: Яковенко Иван  Добрый день! Полноценная поддержка arm64 симулятора была добавлена начиная с сертифитированного релиза 5.0.13000 ( https://www.cryptopro.ru...spx?g=posts&m=147372 ). Просьба обновиться до минимум этой версии для использования arm64 симулятора. Распаковывать xcframework на составные части не требуется, для линковки в Xcode надо использовать именно его. Скачать можете с нашего сайта https://cryptopro.ru/sit...csp/50/13000/ios-uni.tgzВнутри архива лежат папки Resources и сам CPROCSP.xcframework. Там же вы можете найти примеры приложений. Ваша изначальная ошибка была связана с использованием librdrpcsc_empty.o. Начиная с 5.0.13000 он был заменен на аналогичный rdrpcsc_empty.xcframework по тому же пути для поддержки arm64 симулятора. Здравствуйте, у нас используется версия 5.0.13000. Правильно ли я понимаю, что для билда на симуляторе мне нужно добавить arm64 в excluded arches для any iOS simulator как советовали здесь https://cryptopro.ru/for...aspx?g=posts&t=20868 и заменить файл librdrpcsc_empty.o на файл librdrpcsc_empty.a, который лежит по пути CPROCSP.xcframework/readers/rdrpcsc_empty.xcframework/ios-arm64_x86_64-simulator/librdrpcsc_empty.a? И все? Есть ли инструкция по запуску на симуляторе к версии 5.0.13000? Не так. В excluded arches ничего добавлять не нужно - в переводе с английского это «исключенные архитектуры». Вам исключать ничего не нужно. Файл librdrpcsc_empty.o надо заменить на rdrpcsc_empty.xcframework. Изнутри ничего доставать не нужно - это такой же цельный фреймворк. Инструкцию по запуску на симуляторе не делали, так как она не отличается от запуска на устройстве Файл rdrpcsc_empty.xcframework уже лежит по пути Frameworks/CryptoPro/CPROCSP.framework/readers/rdrpcsc_empty.xcframework После того как удалила librdrpcsc_empty.o, получаю ошибку для стимуляторе: Building for 'iOS-simulator', but linking in object file (../Frameworks/CryptoPro/CPROCSP.framework/CPROCSP[2](libcsp_framework.o)) built for 'iOS' Для реального девайса: Showing Recent Errors Only Undefined symbol: _SCardBeginTransaction Showing Recent Errors Only Undefined symbol: _SCardConnect Вот эти пути выглядят странно: Frameworks/CryptoPro/CPROCSP.framework/readers/rdrpcsc_empty.xcframework ../Frameworks/CryptoPro/CPROCSP.framework/CPROCSP В 5.0.13000 нет таких путей. Проверьте, что вы не исправляли руками внутреннюю структуру фреймворков и не копировали файлы. Если не так, скачайте заново https://cryptopro.ru/sit...csp/50/13000/ios-uni.tgzВам требуется использовать только: CPROCSP.xcframework CPROCSP.xcframework/readers/rdrpcsc_empty.xcframework Обратите внимание что никакие .framework не используются. Отличить xcframework от framework можно по цвету - xcframework синие:  use_cache_dir.png (268kb) загружен 1 раз(а).Общая инструкция доступна по адресу https://docs.cryptopro.ru/ios/cprocsp_integrationОтредактировано пользователем 21 ноября 2025 г. 16:53:20(UTC)
| Причина: Не указана
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Apple
»
Сборка приложения с библиотекой КриптоПро на iOS-симуляторе на M1
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close