Swift private Framework с обратной совместимостью с версией xcode

Это мой первый фреймворк, использующий язык Swift, и это частный фреймворк. Это работало как ожидалось до нового выпуска Xcode 9.3. После обновления новее Xcode есть такая проблема Module compiled with Swift 4.0.3 cannot be imported in Swift 4.1,

После этого только я понял, что фреймворк не поддерживает автоматическое обновление версии (Xcode/Swift). Был ли какой-то поиск найден Universal or Fat Binary Framework одиночная сборка вместо отдельной сборки для реального устройства и симулятора, которые я пропустил ранее.

UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

# Make sure the output directory exists

mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

# Next, work out if we're in SIM or DEVICE

xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build

# Step 2. Copy the framework structure (from iphoneos build) to the universal folder

cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework" "${UNIVERSAL_OUTPUTFOLDER}/"

# Step 3. Copy Swift modules from iphonesimulator build (if it exists) to the copied framework directory

BUILD_PRODUCTS="${SYMROOT}/../../../../Products"

cp -R "${BUILD_PRODUCTS}/Debug-iphonesimulator/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule/." "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule"

# Step 4. Create universal binary file using lipo and place the combined executable in the copied framework directory

lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_PRODUCTS}/Debug-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}"

# Step 5. Convenience step to copy the framework to the project's directory

cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}"

# Step 6. Convenience step to open the project's directory in Finder
open "${PROJECT_DIR}"
fi

В Edit Scheme -> Archive -> Post-Action -> Run Script

На этот раз я привык Swift Compiler - Language -> Swift 3.3

И я получил ожидаемый результат на этот раз в Xcode 9.3 с Swift 4.1

Когда я пытаюсь запустить проект с этим фреймворком в Xcode 9.2 это ошибка шоу, как этоModule compiled with Swift 4.1 cannot be imported in Swift 3.2.3:

Попробуйте решить с обратной совместимостью, и я не нашел. Как я могу запустить этот фреймворк в Xcode 9.2

Поддержка фреймворка: Swift а также Objective CМин ОС iOS 8.0

**Обновить**

Также есть что-то вроде этой ошибкиcompiled with newer version of Swift language (unknown ABI version 0x06) than previous files (4.0) file 'MAC location' for architecture armv7И попробовал это в моем проекте

0 ответов

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