2014-09-30 60 views
3

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

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

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

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

回答

0

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

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

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

3)复制下面的脚本并粘贴。

4)选择聚合目标类型为iOS设备并运行。

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 
+0

karthikeyan viswanathan,结合你的脚本框架将无法正常工作(至少对于Swift框架)。还需要将-iphonesimulator的swiftmodule文件(位于Modules目录下)复制到通用框架目录的swiftmodule。 – 2015-01-21 13:18:31