【问题标题】:Build .framework in XCode 6在 XCode 6 中构建 .framework
【发布时间】:2014-09-30 11:04:19
【问题描述】:

我从第 4 个测试版开始使用 XCode 6,现在我正在尝试为 iOS 创建和导出一个纯 Swift .framework。

我必须管理我在做这件事时遇到了很多问题。我想将 .framework 导出为通用的,这样我就可以在设备和模拟器上运行它。

现在,我的问题是,有没有办法实现它? 我尝试构建和存档,导出将 2 个结果与 lipo 合并的 .framework 产品,等等……Apple 文档似乎不完整。

我得到的唯一结果是 .framework 在使用其中一个声明的对象时立即上升 EXC_BAD_ACCESS,所以我想我做错了什么。

【问题讨论】:

    标签: ios swift frameworks xcode6


    【解决方案1】:

    您可以使用以下脚本组合框架。

    1) 您在框架项目中创建新的聚合目标。

    2) 在构建阶段添加运行脚本。

    3) 复制以下脚本并粘贴。

    4) 选择 Aggregate with target type as iOS Device and Run 。

    5) 您现在可以使用组合框架。

    FRAMEWORK_NAME="${PROJECT_NAME}"
    
    SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"
    
    DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"
    
    UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal"
    
    FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"
    
    xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -arch i386 -arch x86_64 -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator | echo
    
    xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -arch arm64 -arch armv7 -arch armv7s -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos | echo
    
    rm -rf "${UNIVERSAL_LIBRARY_DIR}"
    
    mkdir "${UNIVERSAL_LIBRARY_DIR}"
    
    mkdir "${FRAMEWORK}"
    
    cp -r "${DEVICE_LIBRARY_PATH}/." "${FRAMEWORK}"
    
    lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output"${FRAMEWORK}/${FRAMEWORK_NAME}" | echo
    

    【讨论】:

    • karthikeyan viswanathan,将框架与您的脚本结合起来将无法正常工作(至少对于 Swift 框架而言)。还需要将-iphonesimulator的swiftmodule(在Modules目录下)的文件复制到通用框架目录的swiftmodule中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多