#ios #cocoapods #xcframework
Вопрос:
У меня есть проект xcode со статической библиотекой и решением aggregate, в котором я добавил многоплатформенный скрипт на этапах сборки, чтобы я мог создавать xcframework:
SCHEME_NAME=${PROJECT_NAME} FRAMEWORK_NAME=${PROJECT_NAME} SIMULATOR_ARCHIVE_PATH="${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphonesimulator.xcarchive" DEVICE_ARCHIVE_PATH="${BUILD_DIR}/${CONFIGURATION}/${FRAMEWORK_NAME}-iphoneos.xcarchive" # Simulator xcarchieve xcodebuild archive -scheme ${SCHEME_NAME} -archivePath ${SIMULATOR_ARCHIVE_PATH} -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES # Device xcarchieve xcodebuild archive -scheme ${SCHEME_NAME} -archivePath ${DEVICE_ARCHIVE_PATH} -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES # Remove older version rm -rf "${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}" # Create Products amp;amp; Documentation amp;amp; SDK directories mkdir -p "${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}/Documentation" mkdir -p "${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}/SDK" # Create xcframwork combine of all frameworks xcodebuild -create-xcframework -library ${SIMULATOR_ARCHIVE_PATH}/Products/usr/local/lib/lib${FRAMEWORK_NAME}.a -headers ${SIMULATOR_ARCHIVE_PATH}/Products/usr/local/lib/${FRAMEWORK_NAME}Headers -library ${DEVICE_ARCHIVE_PATH}/Products/usr/local/lib/lib${FRAMEWORK_NAME}.a -headers ${DEVICE_ARCHIVE_PATH}/Products/usr/local/lib/${FRAMEWORK_NAME}Headers -output ${HOME}/Desktop/${FRAMEWORK_NAME}_${APPOXEE_SDK_VERSION}/SDK/${FRAMEWORK_NAME}.xcframework
что прекрасно создает xcframework. Внутри этой xcframework есть информация.plist
в котором говорится, что вся архитектура arm64, armv7 и i386, x86_64 присутствуют в xcfremework, те же результаты, которые я получаю, когда делаю lipo-info
Файл Подспец выглядит так:
Pod::Spec.new do |s| s.name = "TestSDK" s.version = "6.0.4" s.summary = "Test SDK enables developers to harnest the full power of Test Engage Platform on their iOS applications." s.description = lt;lt;-DESC Test SDK enables push notification in your iOS application, for engaging your application users and increasing retention. DESC s.homepage = "https://mapp.com" s.license = { :type =gt; "Custom", :file =gt; "Licence.txt" } s.author = { "Test Digital" =gt; "https://test.com/contact-us/" } s.source = { :git =gt; "https://github.com/TestCloud/TestSDK.git", :tag =gt; "6.0.4" } s.ios.framework = 'UserNotifications' s.platform = :ios, "10.0" s.ios.vendored_frameworks = "SDK/TestSDK.xcframework" s.preserve_paths = 'SDK/TestSDK.xcframework' s.resource_bundle = { 'TestSDKResources' =gt; 'SDK/TestSDKResources.bundle' } s.requires_arc = true end
and pod lib lint returns me an error: Unable to find matching .xcframework slice in ‘../../../../../../../../Users/ssad.ter/Desktop/private_pod/TestSDK/SDK/TestSDK.xcframework RwarSDK library ios-arm64_armv7 ios-i386_x86_64-simulator’ for the current build architectures (arm64 x86_64 i386).
but it contains those architecture as I explained.
единственный способ, когда pod lib lint прошел успешно, — это когда я добавляю в pod lib lint —конфигурация=Отладка
Но из сценария вы можете видеть, что для сборки для распространения установлено значение ДА, а для ПРОПУСКА УСТАНОВКИ-НЕТ, то же самое делается в настройках сборки в XCode. И архив, когда вы переходите к опции Редактирования схемы в XCode, настроен на режим выпуска.
Может ли кто-нибудь указать мне, в чем здесь может быть проблема?