matsuda
4/4/2017 - 12:13 AM

universal frameworkの作成スクリプト

universal frameworkの作成スクリプト

INFO_PLIST="Info.plist"
FRAMEWORK_NAME=${PROJECT_NAME}
FRAMEWORK_VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" ${SRCROOT}/${PROJECT_NAME}/${INFO_PLIST})
FRAMEWORK_VERSION=A
FRAMEWORK_BUILD_PATH="${SRCROOT}/build/${CONFIGURATION}-framework"
FRAMEWORK_DIR="${FRAMEWORK_BUILD_PATH}/${FRAMEWORK_NAME}.framework"
FRAMEWORK_PACKAGE="${FRAMEWORK_NAME}-${FRAMEWORK_VERSION_NUMBER}"
FRAMEWORK_PACKAGE_NAME="${FRAMEWORK_PACKAGE}.zip"

[ -d "${FRAMEWORK_BUILD_PATH}" ] && rm -rf "${FRAMEWORK_BUILD_PATH}"

xcodebuild OTHER_CFLAGS="-fembed-bitcode" -project ${PROJECT_NAME}.xcodeproj \
    -sdk iphonesimulator \
    -target "${PROJECT_NAME}" \
    -configuration ${CONFIGURATION} clean build

xcodebuild OTHER_CFLAGS="-fembed-bitcode" -project ${PROJECT_NAME}.xcodeproj \
    -sdk iphoneos \
    -target "${PROJECT_NAME}" \
    -configuration ${CONFIGURATION} clean build

mkdir -p ${FRAMEWORK_DIR}
mkdir -p ${FRAMEWORK_DIR}/Versions
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Resources
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Headers

ln -s ./${FRAMEWORK_VERSION} ${FRAMEWORK_DIR}/Versions/Current
ln -s ./Versions/Current/Headers ${FRAMEWORK_DIR}/Headers
ln -s ./Versions/Current/Resources ${FRAMEWORK_DIR}/Resources
ln -s ./Versions/Current/${FRAMEWORK_NAME} ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}

lipo -create \
    ${SRCROOT}/build/${CONFIGURATION}-iphoneos/lib${FRAMEWORK_NAME}.a \
    ${SRCROOT}/build/${CONFIGURATION}-iphonesimulator/lib${FRAMEWORK_NAME}.a \
    -output "${FRAMEWORK_DIR}/Versions/Current/${FRAMEWORK_NAME}"

cp ${SRCROOT}/${PROJECT_NAME}/*.h ${FRAMEWORK_DIR}/Headers/
cp ${SRCROOT}/${PROJECT_NAME}/${INFO_PLIST} ${FRAMEWORK_DIR}/Resources

cd ${FRAMEWORK_BUILD_PATH}

zip -ry ${FRAMEWORK_PACKAGE_NAME} $(basename $FRAMEWORK_DIR)

#FRAMEWORK_ARCHIVE_PATH="${FRAMEWORK_BUILD_PATH}/${FRAMEWORK_PACKAGE}"
#[ ! -d "${FRAMEWORK_ARCHIVE_PATH}" ] && mkdir -p ${FRAMEWORK_ARCHIVE_PATH}
#[ -e "${FRAMEWORK_ARCHIVE_PATH}/${FRAMEWORK_PACKAGE_NAME}" ] && rm -f "${FRAMEWORK_ARCHIVE_PATH}/${FRAMEWORK_PACKAGE_NAME}"
#cp -R ${FRAMEWORK_DIR} ${FRAMEWORK_ARCHIVE_PATH}/
#zip -ry ${FRAMEWORK_PACKAGE_NAME} $(basename $FRAMEWORK_ARCHIVE_PATH)
#[ -d "${FRAMEWORK_ARCHIVE_PATH}" ] && rm -rf "${FRAMEWORK_ARCHIVE_PATH}"