iphone - 在 XCode 4.2 中为 iOS 创建框架

标签 iphone ios xcode macos

我正尝试在 XCode 4.2 中为 iOS 应用程序创建一个框架。

我正在开发自己的游戏框架。我通常只分发源代码和资源,但由于在我的框架中使用 ARC,我不得不分发静态库和框架。

我还没有决定我应该使用哪个。 虽然不支持开发 iOS 框架的方式,但最好将资源和头文件以及 Mach-O 文件分布在一个目录中(与框架相同)。

所以我想使用框架来分发我的游戏框架。 我用这个脚本创建了一个框架。 看来我成功地创建了一个框架并复制了 mach-O 和标题和资源。 但是这个框架的资源无法添加到我添加这个框架的应用程序中。

#!/bin/bash 

set -o errexit
set -o nounset

# Environment Variables
PANKIA_DIR="${SRCROOT}/Pankia"
PANKIA_CORE_DIR="${PANKIA_DIR}/Core"
PANKIA_PLATFORM_DIR="${PANKIA_DIR}/Platform"

FRAMEWORK_NAME="Pankia"
FRAMEWORK_VERSION=A
FRAMEWORK_VERSION_NUMBER=1.0
FRAMEWORK_BUILD_PATH="${SRCROOT}/build/${CONFIGURATION}-framework"
FRAMEWORK_DIR="${FRAMEWORK_BUILD_PATH}/${FRAMEWORK_NAME}.framework"
FRAMEWORK_PACKAGE_NAME="${FRAMEWORK_NAME}.${FRAMEWORK_VERSION_NUMBER}.zip"
FRAMEWORK_TARGET_NAME="libPankia"

# Clean directories
rm -rf "${FRAMEWORK_BUILD_PATH}"

# Build simulator and device binaries.
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator${IPHONEOS_DEPLOYMENT_TARGET} -target ${FRAMEWORK_TARGET_NAME} -configuration ${CONFIGURATION} clean build
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos${IPHONEOS_DEPLOYMENT_TARGET} -target ${FRAMEWORK_TARGET_NAME} -configuration ${CONFIGURATION} clean build

# create framework directories.
mkdir -p ${FRAMEWORK_DIR}
mkdir -p ${FRAMEWORK_DIR}/Versions
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Resources
mkdir -p ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION}/Headers

# create symlinks
ln -s ${FRAMEWORK_DIR}/Versions/${FRAMEWORK_VERSION} ${FRAMEWORK_DIR}/Versions/Current
ln -s ${FRAMEWORK_DIR}/Versions/Current/Headers ${FRAMEWORK_DIR}/Headers
ln -s ${FRAMEWORK_DIR}/Versions/Current/Resources ${FRAMEWORK_DIR}/Resources
ln -s ${FRAMEWORK_DIR}/Versions/Current/${FRAMEWORK_NAME} ${FRAMEWORK_DIR}/${FRAMEWORK_NAME}

# create the universal library
lipo ${SRCROOT}/build/${CONFIGURATION}-iphoneos/lib${FRAMEWORK_TARGET_NAME}.a ${SRCROOT}/build/${CONFIGURATION}-iphonesimulator/lib${FRAMEWORK_TARGET_NAME}.a -create -output "${FRAMEWORK_DIR}/Versions/Current/${FRAMEWORK_NAME}"

# copy files
cp ${PANKIA_PLATFORM_DIR}/GameInterface/Pankia.h ${FRAMEWORK_DIR}/Headers/
cp ${PANKIA_PLATFORM_DIR}/Models/Native/*.h ${FRAMEWORK_DIR}/Headers/
cp ${PANKIA_CORE_DIR}/Models/Native/*.h ${FRAMEWORK_DIR}/Headers/

cp -r ${PANKIA_PLATFORM_DIR}/Resources ${FRAMEWORK_DIR}/Resources/
cp -r ${PANKIA_PLATFORM_DIR}/RetinaResources ${FRAMEWORK_DIR}/Resources/
cp ${SRCROOT}/libPankia/Info.plist ${FRAMEWORK_DIR}/Resources/

# cp ${SRCROOT}/build/${CONFIGURATION}-iphoneos/usr/local/include/*.h ${FRAMEWORK_DIR}/Headers/

# cp Info.plist ${FRAMEWORK_DIR}/Resources

# zip (配布用に TestFramework.framework ディレクトリをZIP圧縮するだけなので、配布しないなら以下はコメントアウトしてもよい)
# cd ${FRAMEWORK_BUILD_PATH}
# zip -ry ${FRAMEWORK_PACKAGE_NAME} $(basename $FRAMEWORK_DIR)

你知道为什么吗?

有没有更好的方法来分发我的框架?

最佳答案

这是有关创建框架的有用教程。我用过,已经可以用框架打包资源了。

http://codefriend.blogspot.com/2011/09/creating-ios-framework-with-xcode4.html

关于iphone - 在 XCode 4.2 中为 iOS 创建框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788761/

相关文章:

ios - 无法将文件保存在 tmp 目录中

xcode - 为什么代码签名身份没有列出我的证书?

iphone - 向 NSMutableURLRequest 添加字段

ios - cellForRowAtIndexPath 的回调?

ios - 比NSUserDefaults更好的存储大量图像数据的位置

objective-c - 尽量减少重复代码?

ios - 2 个完全相同的 iOS 应用程序,除了数据库不同

c++ - 带有自定义模板的 STL 迭代器

iphone - iOS 单元测试 : How to set/update/examine firstResponder?

iphone - 在调用另一个方法时阻止 AppDelegate 加载 ViewController