美文网首页IOS自定义framework遇到的坑
iOS 生成debug和release的framework

iOS 生成debug和release的framework

作者: 机智的猪 | 来源:发表于2017-08-25 10:21 被阅读895次

    使用脚本一键构建通用版本的framework(真机、模拟器通吃的版本)
    步骤如下:
    build active architecture only 设置为No

    build active architecture only -> No

    新建一个target,用来构建通用版本framework[图片上传中。。。

    new target

    选择Cross-platform->other->Aggregate->Next[图片上传中。。。


    Aggregate

    命名为univeralBuilder,新建一个New Run Script Phase[图片上传中。。。

    新建New Run Script Phase

    在shell里面添加以下内容,注意将第九行的FRAMEWORK_NAME改为自己framework的名字。

    # Merge Script
    
    # 1
    # Set bash script to exit immediately if any commands fail.
    set -e
    
    # 2
    # Setup some constants for use later on.
    FRAMEWORK_NAME="Your framework name" 
    
    # 3
    # If remnants from a previous build exist, delete them.
    if [ -d "${SRCROOT}/build" ]; then
    rm -rf "${SRCROOT}/build"
    fi
    
    # 4
    # Build the framework for device and for simulator (using
    # all needed architectures).
    xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch arm64 -arch armv7 -arch armv7s only_active_arch=no defines_module=yes -sdk "iphoneos"
    xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch x86_64 -arch i386 only_active_arch=no defines_module=yes -sdk "iphonesimulator"
    
    # 5
    # Remove .framework file if exists on Desktop from previous run.
    if [ -d "${HOME}/Desktop/${FRAMEWORK_NAME}.framework" ]; then
    rm -rf "${HOME}/Desktop/${FRAMEWORK_NAME}.framework"
    fi
    
    # 6
    # Copy the device version of framework to Desktop.
    cp -r "${SRCROOT}/build/Release-iphoneos/${FRAMEWORK_NAME}.framework" "${HOME}/Desktop/${FRAMEWORK_NAME}.framework"
    
    # 7
    # Replace the framework executable within the framework with
    # a new version created by merging the device and simulator
    # frameworks' executables with lipo.
    lipo -create -output "${HOME}/Desktop/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}" "${SRCROOT}/build/Release-iphoneos/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}" "${SRCROOT}/build/Release-iphonesimulator/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}"
    
    # 8
    # Copy the Swift module mappings for the simulator into the
    # framework.  The device mappings already exist from step 6.
    cp -r "${SRCROOT}/build/Release-iphonesimulator/${FRAMEWORK_NAME}.framework/Modules/${FRAMEWORK_NAME}.swiftmodule/" "${HOME}/Desktop/${FRAMEWORK_NAME}.framework/Modules/${FRAMEWORK_NAME}.swiftmodule"
    
    # 9
    # Delete the most recent build.
    if [ -d "${SRCROOT}/build" ]; then
    rm -rf "${SRCROOT}/build"
    fi
    
    

    3.最后一步:选择Aggregate target和Simulator然后build,你会看到桌面由构建好通用版本的framework。参考资料:http://arsenkin.com/ios-universal-framework.html

    转自 http://www.jianshu.com/p/b92630896925

    相关文章

      网友评论

        本文标题:iOS 生成debug和release的framework

        本文链接:https://www.haomeiwen.com/subject/fhqudxtx.html