V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
pscl
V2EX  ›  iDev

关于创建 iOS 静态库的问题

  •  
  •   pscl · 2016-03-28 17:22:53 +08:00 · 3145 次点击
    这是一个创建于 3157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个问题需要请问下大家,我本来有个 SDK 工程,里面是 C++的源文件,可以编译出.a 的静态库,但是现在有一第三方的 Framework ,我想把它加到我 SDK 工程里面,一起打包出来一个大的静态库。请问可以这样操作么?如果行的话,应该怎么操作呢? 谢谢!

    8 条回复    2016-03-28 20:46:15 +08:00
    LINAICAI
        1
    LINAICAI  
       2016-03-28 17:51:42 +08:00
    再开一个工程,把 Lib 和 Framework 拉进去?
    pscl
        2
    pscl  
    OP
       2016-03-28 18:02:13 +08:00
    @LINAICAI 目前就是准备这样做,扔 Framework 进去,打出来的.a 大小不变,应该是没包含,扔第三方 SDK 的.a 版本进去,打出来的.a 变大了,应该包进去了,只是还没测试验证。我在想是不是包 Framework ,需要我自己写个调用才能把里面的代码打进去呢?
    juxingzhutou
        3
    juxingzhutou  
       2016-03-28 18:20:45 +08:00
    在 Framework 类型的 target 的 Link Binary With Libraries 里面加上那个.a 文件只会在 framework build 时链接这个静态库,并不会包含这个静态库。

    想要结合两个静态库的话,可以使用 lipo 命令。.a 文件只是可重定位目标模块的集合,你可以看成一个目标模块的文件夹。
    juxingzhutou
        4
    juxingzhutou  
       2016-03-28 18:26:14 +08:00
    不过还是推荐不要合并两个静态库,特别是你打包出的大的静态库需要提供给其他人使用的情况下。因为这样人家想剔除符号冲突的静态库就麻烦了。以前有很多第三方框架为了方便用户使用(不用额外链接第三方框架依赖的其他库)而打包了一些常用库,结果在用户用了两个打包了同一个常用库的第三方库的时候就爆炸了。
    qq2511296
        5
    qq2511296  
       2016-03-28 18:27:02 +08:00
    应该可以的 你可以看看 ijkplayer 他是把 ffmpeg 的静态库 编译进了 ijkmedia.framework 里面去了
    artkernelzyc
        6
    artkernelzyc  
       2016-03-28 18:39:33 +08:00
    建议不要这样,还是提供 2 个 sdk 比较好
    skyline75489
        7
    skyline75489  
       2016-03-28 18:50:46 +08:00
    楼上 +1 ,还是分开好管理
    pscl
        8
    pscl  
    OP
       2016-03-28 20:46:15 +08:00   ❤️ 1
    @juxingzhutou 非常感谢,确实公司的想法和你说的情况类似,也是为了集成一个第三方的而去强行做所谓的简化手段,╮(╯▽╰)╭
    @qq2511296
    @artkernelzyc
    @skyline75489 非常感谢,主要是那要集成的不是我司的,只是我司在用,我倒是愿意提供两个独立的,都方便啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3738 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:38 · PVG 18:38 · LAX 02:38 · JFK 05:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.