打开终端。输入pwd 先看一下当前所在的目当路径。使用ls 查看当前目录下的文件夹。
cd /users/[用户名]/Desktop/fmwksqlite/DerivedData/fmwksqlite/build/products/release-iphoneos/tgfmwk.framework (Heqin注:这里可能会需要的路径是framework/tgfmwk)
然后使用lipo -info tgfmwk 查看一下库的信息。
看到输出Non-fat file: tgfmwk is architecture: armv7
这里表明只支持真机。
同样的再来看看模拟器的。
cd /users/[用户名]/Desktop/fmwksqlite/DerivedData/fmwksqlite/build/products/release-iphonesimulator/tgfmwk.framework
然后使用lipo -info tgfmwk 查看一下库的信息。
看到输出Non-fat file: tgfmwk is architecture: i386
可见要想真机和模拟器都可以使用该framework需要将这两个版本的tgfmwk文件进行合并。
使用命令lipo -create xxxx/tgfmwk
lipo -create Release-iphonesimulator/BDLBSLogger.framework/Versions/A/BDLBSLogger Release-iphoneos/BDLBSLogger.framework/Versions/A/BDLBSLogger -output BDLBSLogger
合并完成后,再把BDLBSLogger替换上面simulator文件夹或者iphoneos对应目录下的一个,然后这个文件夹就是可以用来同时供i386和arm使用 )其中xxxx表示路径,一个是真机的tgfmwk所在路径,一个是模拟器tgfmwk文件所在路径,然后输出tgfmwknew新的文件。输出后,只需要将这个tgfmwknew重命名为tgfmwk然后复盖原来的tgfmwk 文件即可。把复盖后的这个tgfmwk.framework考出来到具体使用的项目就可以实现真机和模拟器通用的framework 了。
看一下tgfmwknew的信息。
显示:Architectures in the fat file: tgfmwknew are : armv7
可见这个合并的文件已具备了armv7(真机)和i386(虚拟机)的能力。
Heqin:另外, Google上有一个可以生成伪framework的工具,可以下载下来使用,比较方便