合并 ios 静态库

合并 cordovaLib库:

lipo -create ‘Release-iphoneos/libCordova.a‘ "Release-iphonesimulator/libCordova.a" -output "libCordova.a"

查看:

lipo -info libCordova.a

合并cordova脚本:

define static library target name

LIB_NAME="Cordova"

# define output folder environment variable

UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

DEVICE_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos

SIMULATOR_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator

# Step 1. Build Device and Simulator versions

# insert such -arch i386 before BUILD_DIR assign arch

xcodebuild -target "${LIB_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

xcodebuild -target "${LIB_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

# Cleaning the oldest and make sure the output directory exists

if [ -d "${UNIVERSAL_OUTPUTFOLDER}" ]

then

rm -rf "${UNIVERSAL_OUTPUTFOLDER}"

fi

mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

# Step 2. Create universal binary file using lipo

lipo -create "${DEVICE_DIR}/lib${LIB_NAME}.a" "${SIMULATOR_DIR}/lib${LIB_NAME}.a" -output "${UNIVERSAL_OUTPUTFOLDER}/lib${LIB_NAME}.a"

# Last touch. copy the header files. Just for convenience

cp -R "${DEVICE_DIR}/include" "${UNIVERSAL_OUTPUTFOLDER}/"

?

#open the universal dir

open "${UNIVERSAL_OUTPUTFOLDER}/"

#delete DEVICE and SIMULATOR build file

#rm -rf "${DEVICE_DIR}"

#rm -rf "${SIMULATOR_DIR}"

时间: 2024-11-07 04:17:25

合并 ios 静态库的相关文章

iOS开发——装逼技术精选&全面了解 iOS 静态库开发

全面了解 iOS 静态库开发 简介 在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成静态库,只暴露头文件给程序员使用(比如:友盟.百度地图等第三方的sdk) 静态库和动态库的存在形式 静态库:.a 和 .framework 动态库:.dylib 和 .framework 静态库和动态库的区别 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统

ios静态库的使用

ios静态库的使用 2014-03-11 22:24 3906人阅读 评论(0) 收藏 举报 ios的静态库文件是*.a,如果需要使用它,我今天学的简单的方法,可通过,简单说说,如果有一个A手机项目,一个B的静态库项目,A想使用B.a,按以下的步骤: 1.在A项目里面拖进B项目.在B的product下面会看见红色的B.a,表示还没有编译通过(在工程设置里添加上你需要导出的.m文件). 2.选择好需要编译的对象,B下的某模拟器或者是B下的真机上进行编译(模拟器上生成的静态库和真机上生成的不能混用)

IOS静态库

如何在Xcode中创建C++静态库 http://jingyan.baidu.com/article/03b2f78c111fca5ea237ae26.html iOS 如何创建和使用静态库 http://blog.ibireme.com/2013/09/18/create-ios-static-framework/ iOS开发--创建你自己的Framework http://www.cocoachina.com/ios/20150127/11022.html https://www.raywe

iOS 静态库,动态库与 Framework

iOS 静态库,动态库与 Framework 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件.另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要 Link 一下,不会浪费编译时间. 上面提到库在使用的时候需要

iOS 8:【转】封装iOS静态库注意事项

源地址:http://fann.im/blog/2014/01/12/ios-static-library/ 做一个 iOS 静态库需要注意的东西: namespace 冲突.静态库用了某第三方库,项目也用了同样的第三方库,在编译的时候就会有 duplicate symbol 错误,因为有两份同样的第三方库.解决办法就是把用到的第三方库加上自定义前缀,包括类名.delegate 协议.常量名,尤其需要注意 Category 的方法名要修改. 封装静态库的时候应尽量避免引入重量级第三方库,多自己进

封装ios静态库碰到的一些问题(二)

在静态库建立好了之后呢,于是应用程序就引用它,加上拷贝的h文件,但是引用之后Build之后提示很多sybmbol 重复 于是进行检查,确实由于是从其他工程修改过来的,很多基础库都引用了,删除之,最后就只剩下xxx.h,死活就是报重复符号,我看来看去都没有 不得其解,后面突然想不过,使用了下definition,发现跳转到了一个文件,里面全部被注释的文件,于是明了,原来偷懒,有的代码是拷贝的,于是h和m文件都在,但是里面内容被注释了,结果xcode不买账啊,直接删除掉,Ok,解决问题 封装ios静

iOS静态库.a文件制作和导入使用

iOS静态库.a文件制作: 1.新建Cocoa Touch Static Library工程 新建工程 - 选择iOS-FrameWork&Libary,选择 Cocoa Touch Static Library工程. 2.Xcode的参数设置 "Build Active Architecture Only" 设置为"NO" "IOS Deployment Target" 设置为 "IOS 7.0" ,表示支持IOS7

iOS 静态库制作及使用问题

参考:http://blog.163.com/const_yixinyiyi/blog/static/180088172201211113333882/ 静态库使用目标:(.a ) > 自己制作一个静态库(可以使用)(前三步) > 制作模拟器版本和真机版本 (第四步) > 合并两个版本 (第六步) 创建静态库步骤: 1. 选择要创建的文件类型:Cocoa Touch Static Library (.a文件) 2.将需要封装的文件导入其中 选择工程找到target(静态库) ->

【转】iOS静态库 【.a 和framework】【超详细】

原文网址:https://my.oschina.net/kaqijiang/blog/649632 一.什么是库? 库是共享程序代码的方式. 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种.iOS中的静态库有 .a 和 .framework两种形式:动态库有.dylib 和 .framework 形式,后来.dylib动态库又被苹果替换成.tbd的形式. 二.静态库与动态库的区别? 静态库: 链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝.