Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 6和iOS静态框架_Ios_Objective C_Frameworks_Xcode6 - Fatal编程技术网

Xcode 6和iOS静态框架

Xcode 6和iOS静态框架,ios,objective-c,frameworks,xcode6,Ios,Objective C,Frameworks,Xcode6,许多iOS第三方框架都是围绕自定义框架构建的,您将在依赖应用程序中集成这些框架。 在新的iOS嵌入式框架只在iOS8中工作之前(请参阅我的文章),有两种优雅的解决方案(当您不选择创建脚本是因为时间和知识的问题) 路旁 及 路旁 当您必须创建一个.framework来为您的客户分发解决方案时,它们都很有效,是很好的解决方案 Xcode6一问世,由于不同类型的编译错误,我就无法第一个运行(详情请参阅) 所以我转向了iOS框架,令我惊讶的是,它仍然可以在XCode6上运行 因此,这条建议适用于那些正在

许多iOS第三方框架都是围绕自定义框架构建的,您将在依赖应用程序中集成这些框架。 在新的iOS嵌入式框架只在iOS8中工作之前(请参阅我的文章),有两种优雅的解决方案(当您不选择创建脚本是因为时间和知识的问题)

路旁

路旁

当您必须创建一个.framework来为您的客户分发解决方案时,它们都很有效,是很好的解决方案

Xcode6一问世,由于不同类型的编译错误,我就无法第一个运行(详情请参阅)

所以我转向了iOS框架,令我惊讶的是,它仍然可以在XCode6上运行

因此,这条建议适用于那些正在与iOS通用框架抗争,并且没有找到任何解决方案使其在Xcode6上工作的人

如中所述,如果您的部署目标是>=iOS7,苹果现在可以接受嵌入式框架,因此这是目前最好的定制解决方案,iOS通用框架的修复也会有所帮助。
我在它上面发现的所有问题都在5中描述。

这里是在Xcode 6中创建静态cocoa touch框架的步骤

打开Xcode并通过单击File\new\project并选择iOS\framework和Library\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架构构建,从而允许应用程序在大多数设备上运行

马赫数设置:静态库:

最终建造项目:

聚合目标要使用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

您可以在iOS 7中使用Xcode 6通用框架,-请参阅我的答案

我正在使用相同的框架。明天让我查一下我的。你的问题不清楚。但是,在早期版本的iOS上运行的应用程序可以加载动态框架。棒极了!谢谢!