我有一个跨平台的共享库,并且正在使用GNU自动工具构建系统。我希望能够将该库打包为OS X上的框架。是否可以使用自动工具+其他脚本(例如ash?

有没有很好的文档可以做到这一点,或者有人知道一个可以复制的项目示例吗?

最佳答案

框架是一个美化的目录,其中包含元数据文件(Info.plist)和一个或多个库。我不确定是否有针对框架的自动工具支持,但类似:

# create/cd MyFramework.framework
mkdir MyFramework.framework
cd MyFramework.framework

# create/cd MyFramework.framework/Versions
mkdir Versions
cd Versions

# create/cd MyFramework.framework/Versions/A
mkdir A
cd A

# create MyFramework.framework/Versions/A/MyFramework (the dylib)
cp /path/to/mylibrary.dylib MyFramework

# create MyFramework.framework/Versions/A/Resources
mkdir Resources

# create MyFramework.framework/Versions/A/Resources/Info.plist
cp /path/to/Info.plist Resources

# cd to MyFramework.framework/Versions
cd ..

# create MyFramework.framework/Versions/Current -> A
ln -s A Current

# cd to Myframework.framework
cd ..

# create MyFramework.framework/MyFramework -> Versions/Current/MyFramework
ln -s Versions/Current/MyFramework MyFramework

# create MyFramework.framework/Resources -> Versions/Current/Resources
ln -s Versions/Current/Resources Resources

给定一个正确定义的Info.plist文件和mylibrary.dylib,就足够了。

有关框架目录结构和Info.plist内容的更多信息,请参见Framework Programming Guide

09-04 12:56