聊聊Universal framework原理

使用universal framework进行编译。在使用xcode7编译时发现,由于系统生成的目录有变化,导致无法生成原始脚本依赖的相关文件目录结构。

XCode7编译错误总结

  • 错误A:用python脚本的universal framework。
/Users/fangying/Documents/project/XXX/DerivedData/XXX/Build/Products/Debug-iphoneos/XXX.framework/Versions/A
  • 错误B:用shell脚本的universal framework。虽然不会编译错误,但是编译输入的framework是错误的。具体请看下图:
    这里写图片描述

  • 错误C:用shell脚本的universal framework。出现下面的错误。

iPhoneOS.platform/Developer/usr/bin/libtool: No such file or directory

iPhone平台Framework简介

xxx.framework包是iPhone平台对于资源、二进制包、头文件集合。通过这个集合包可以方便提供给使用者提供业务bundle或者SDK的功能。

对于系统提供两种framework:

  • 静态framework
  • 动态framework,比如系统Fundation.framework、AudioToolBox.framework等等。该framework类似与系统动态库。而对于开发者的动态framework,需要把工程设置target to 8.0以上才能支持。

对于framework,iOS系统有严格规定:

# MyFramework.framework
# |-- MyFramework -> Versions/Current/MyFramework
# |-- Headers -> Versions/Current/Headers
# |-- Resources -> Versions/Current/Resources
# `-- Versions
#     |-- A
#     |   |-- MyFramework
#     |   |-- Headers
#     |   |   `-- MyFramework.h
#     |   `-- Resources
#     |       |-- Info.plist
#     |       |-- MyViewController.nib
#     |       `-- en.lproj
#     |           `-- InfoPlist.strings
#     `-- Current -> A

注意 对于Mac OS每个App都是一个bundle,对于每个bundle都有严格文件目录格式,以及严格文件名要求,这些严格要求就像App加载协议一样,系统通过该基于文件目录格式和文件名,加载、启动App。个人认为这个有利于app管理和动态部署。Mac OS重装系统,不用想Windows重装系统一样,重装系统后,Mac OS之前应用都可以正常使用,Window就完蛋了,需要重新安装,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值