将自己的类封成库供别人调用,非常方便,就行xcode中的许多类库一样。那么如何制作自己的类库呢?
本人在网上看过很多童鞋的文章,都没有试成功,最后在同事的帮助下搞定。今天有点空闲时间,赶紧记下来,一是跟大家分享,二是怕忘了,今天有同事问我,都感觉有点生了,所以有了这篇文章。
下面教大家一步步制作framework
1、 新建一个项目选择Framwork&Library中的Cocoa Touch Static Library。如图
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015223069.png[/img]
2、 命名项目名称
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015231365.png[/img]
3、 加载自己要封装的东西
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015240257.png[/img]
4、 加载自己的代码
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015243527.png[/img]
5、 选择设备和模拟器两种方式,编译生成libhello_world.a文件
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015250695.png[/img]
6、 查看是否生成两个文件
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015253860.png[/img]
7、 选择Fill——>New——>Taget弹出界面选择Aggregate
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015261093.png[/img]
8、 命名类库的名称
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015264869.png[/img]
9、 选择Taget :HelloWorld的Bulid Phases选项卡
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015272610.png[/img]
10、 添加Taget
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015275849.png[/img]
11、 点击又下角Add Build Phase,选择Add Run Script。贴上这段脚本
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015294764.png[/img]
12、 同样的方法添加另一个脚本,脚本的意思我没有研究,你可以详细看看
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" &&
DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" &&
UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" &&
UNIVERSAL_LIBRARY_PATH="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}" &&
FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}.framework" &&
# Create framework directory structure.
rm -rf "${FRAMEWORK}" &&
mkdir -p "${UNIVERSAL_LIBRARY_DIR}" &&
mkdir -p "${FRAMEWORK}/Versions/A/Headers" &&
mkdir -p "${FRAMEWORK}/Versions/A/Resources" &&
# Generate universal binary for the device and simulator.
lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}" &&
# Move files to appropriate locations in framework paths.
cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A" &&
ln -s "A" "${FRAMEWORK}/Versions/Current" &&
ln -s "Versions/Current/Headers" "${FRAMEWORK}/Headers" &&
ln -s "Versions/Current/Resources" "${FRAMEWORK}/Resources" &&
ln -s "Versions/Current/${PRODUCT_NAME}" "${FRAMEWORK}/${PRODUCT_NAME}"
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015301038.png[/img]
13、 点击右下角的Add Build Phase,选择Add Copy Files。在Destination选项中选择Absolute Path,在Subpath路径加载路径:${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal/${PRODUCT_NAME}.framework/Versions/A/Headers
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015302589.png[/img]
14、 点击“+按钮”,加载你要封装的.h文件
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015304926.png[/img]
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015310778.png[/img]
15、 选择Taget: HelloWorld进行编译
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015313170.png[/img]
16、 然后选择libhello_world.a文件,右键选择Show in Finder。Debug-iphoneuniversal就是生成的framework。
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015315088.png[/img]
17、 如果Headers文件夹里面为空,则把你封装的.h文件复制到里面,之后就可以在你的程序中使用了。
18、 至此framework制作完成,效果图:
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015320616.png[/img]
原文:[url]http://www.cnblogs.com/weilihua/articles/2457486.html[/url]
本人在网上看过很多童鞋的文章,都没有试成功,最后在同事的帮助下搞定。今天有点空闲时间,赶紧记下来,一是跟大家分享,二是怕忘了,今天有同事问我,都感觉有点生了,所以有了这篇文章。
下面教大家一步步制作framework
1、 新建一个项目选择Framwork&Library中的Cocoa Touch Static Library。如图
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015223069.png[/img]
2、 命名项目名称
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015231365.png[/img]
3、 加载自己要封装的东西
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015240257.png[/img]
4、 加载自己的代码
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015243527.png[/img]
5、 选择设备和模拟器两种方式,编译生成libhello_world.a文件
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015250695.png[/img]
6、 查看是否生成两个文件
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015253860.png[/img]
7、 选择Fill——>New——>Taget弹出界面选择Aggregate
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015261093.png[/img]
8、 命名类库的名称
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015264869.png[/img]
9、 选择Taget :HelloWorld的Bulid Phases选项卡
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015272610.png[/img]
10、 添加Taget
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015275849.png[/img]
11、 点击又下角Add Build Phase,选择Add Run Script。贴上这段脚本
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build
xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015294764.png[/img]
12、 同样的方法添加另一个脚本,脚本的意思我没有研究,你可以详细看看
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" &&
DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" &&
UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" &&
UNIVERSAL_LIBRARY_PATH="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}" &&
FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}.framework" &&
# Create framework directory structure.
rm -rf "${FRAMEWORK}" &&
mkdir -p "${UNIVERSAL_LIBRARY_DIR}" &&
mkdir -p "${FRAMEWORK}/Versions/A/Headers" &&
mkdir -p "${FRAMEWORK}/Versions/A/Resources" &&
# Generate universal binary for the device and simulator.
lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}" &&
# Move files to appropriate locations in framework paths.
cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A" &&
ln -s "A" "${FRAMEWORK}/Versions/Current" &&
ln -s "Versions/Current/Headers" "${FRAMEWORK}/Headers" &&
ln -s "Versions/Current/Resources" "${FRAMEWORK}/Resources" &&
ln -s "Versions/Current/${PRODUCT_NAME}" "${FRAMEWORK}/${PRODUCT_NAME}"
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015301038.png[/img]
13、 点击右下角的Add Build Phase,选择Add Copy Files。在Destination选项中选择Absolute Path,在Subpath路径加载路径:${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal/${PRODUCT_NAME}.framework/Versions/A/Headers
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015302589.png[/img]
14、 点击“+按钮”,加载你要封装的.h文件
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015304926.png[/img]
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015310778.png[/img]
15、 选择Taget: HelloWorld进行编译
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015313170.png[/img]
16、 然后选择libhello_world.a文件,右键选择Show in Finder。Debug-iphoneuniversal就是生成的framework。
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015315088.png[/img]
17、 如果Headers文件夹里面为空,则把你封装的.h文件复制到里面,之后就可以在你的程序中使用了。
18、 至此framework制作完成,效果图:
[img]http://pic002.cnblogs.com/images/2012/261356/2012042015320616.png[/img]
原文:[url]http://www.cnblogs.com/weilihua/articles/2457486.html[/url]