我有一个跨平台的共享库,并且正在使用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。