许多iOS第三方框架都是围绕自定义框架构建的,您将把它们集成到您的依赖应用程序中。在新的只能在iOS8中工作的iOS嵌入式框架(参见我的帖子here)之前,有两个很好的解决方案(当你不选择创建脚本的时间和知识问题时)
kstenerud的iOS Universal Framework
和
当必须创建.framework来为您的客户分发解决方案时,它们都很有效,并且是很好的解决方案。
Xcode6一问世,由于不同类型的编译错误,我无法进行第一个工作(有关详细信息,请参阅here )。
所以我转向了iOS框架,令我惊讶的是,它仍然可以在XCode6上工作。
因此,这个建议是为那些正在为iOS通用框架而苦苦挣扎,并且找不到任何解决方案来使其在Xcode6上工作的人提供的。
正如1中所描述的,如果你的部署目标是>= iOS7,苹果现在可以接受嵌入式框架,这是目前最好的自定义解决方案,iOS通用框架的修复也可能会有所帮助。我在上面发现的所有问题都在5中描述了。
发布于 2014-12-20 13:06:01
下面是在Xcode6中创建静态可可触摸框架步骤。
打开Xcode并创建一个新的静态框架项目,方法是单击File\ new \Project并选择iOS\Framework和Library\Cocoa Touch framework。
您可以提供框架名称并将项目保存到一个空目录中。
自动为我们的框架创建保护伞标题。在这个头文件中,您应该使用#import这样的语句导入我们框架的所有公共头文件
静态框架项目由头文件和实现文件组成,编译后的头文件和实现文件构成框架本身。您可以使用Cocoa Touch类来创建类。
验证构建设置转到项目目标的构建设置并确认或将“架构”设置为“标准架构”。它们是arm64和armv7,并且很可能是默认设置。此外,我们还需要在设置中设置一些架构,因为iOS应用程序需要在许多不同的架构上运行。
armv7:用于最早的支持iOS 7的设备armv7s:用于iPhone 5和5C arm64:用于iPhone 5S中的64位ARM处理器i386:用于32位模拟器x86_64:用于64位模拟器
这意味着构建尽可能快。当您归档应用程序或在发布模式下构建时,Xcode将为所有ARM架构构建,从而允许应用程序在大多数设备上运行。
Mach-O设置:静态库:
最终构建项目:
聚合目标通过使用lipo将设备和模拟器框架组合在一起,您可以将以下脚本添加到聚合目标中。
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发布于 2015-03-12 18:49:47
您可以在iOS 7中使用Xcode6通用框架,请参阅我的答案here
https://stackoverflow.com/questions/25978291
复制相似问题