V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ricepig
V2EX  ›  程序员

求助遗留(Legacy)App 的编译问题(iOS)

  •  
  •   Ricepig ·
    ricepig · 2023-09-25 19:06:33 +08:00 · 1846 次点击
    这是一个创建于 430 天前的主题,其中的信息可能已经有所发展或是发生改变。

    事情是这样的,之前委托第三方开发了一个 iOS App ,使用了第四方的库。第四方库依赖 libstdc++

    众所周知,xcode 10 以后,需要迁移到 libc++了。但是第四方库已死,不再维护,当然也不会针对 libc++重新编译。

    开始是用网上找到的把 xcode 9 的 libstdc++.dylib 放到 xcode 后续版本上继续凑合用的方式,撑过了 xcode 10 、11 、12 。到 Xcode 13 这个方法不行了。

    然后又想了一招,通过从网上下载 support 文件的方式,苟延残喘到 iOS 15 。到 iOS 16 ,这个方法好像又不行了。

    网上搜了一下,似乎以上两个方法也不是完全不行,可能我打开方式不对。

    求助 iOS 高手,该怎么整,考虑有偿咨询。别建议我们重新开发,因为已经在重新开发了(换了一个第四方库),但是周期太长了

    19 条回复    2023-09-26 22:44:12 +08:00
    oxromantic
        1
    oxromantic  
       2023-09-25 19:34:44 +08:00
    把你们现在的 iOS 开发全开除了换一批新的就搞定
    Ricepig
        2
    Ricepig  
    OP
       2023-09-25 19:56:49 +08:00 via Android
    @oxromantic 朋友,希望提供一些可行的建议
    felixlong
        3
    felixlong  
       2023-09-25 20:48:39 +08:00   ❤️ 1
    @Ricepig iOS App 应该都是 Static Library 吧?可不可以直接强制 Link 到 libc++?
    Ricepig
        4
    Ricepig  
    OP
       2023-09-25 20:51:29 +08:00
    @felixlong 似乎是有 dylib 的,静态链接上去会报一坨符号冲突。
    32uKHwVJ179qCmPj
        5
    32uKHwVJ179qCmPj  
       2023-09-25 21:57:39 +08:00
    只要 iOS 16 系统内包含 libstdc++.dylib 那就没问题,自己弄个 tbd 或者用旧的 tbd 试试
    datou
        6
    datou  
       2023-09-26 00:15:48 +08:00
    iOS17 都发布了还在研究适配 iOS16 吗?
    liuidetmks
        7
    liuidetmks  
       2023-09-26 08:36:43 +08:00
    不如付费让第三方,更新。
    653513754
        8
    653513754  
       2023-09-26 09:21:26 +08:00
    尝试用 otool 修改四方库里面的依赖库,直接删除 libstdc++ 或者替换成 libc++
    Ricepig
        9
    Ricepig  
    OP
       2023-09-26 09:29:58 +08:00 via Android
    @7v9TEc53 编译就过不去,第四方库的.h 文件包含了 libstdc++头文件的引用,加上吧,又和 libc++头文件冲突
    Ricepig
        10
    Ricepig  
    OP
       2023-09-26 09:30:21 +08:00 via Android
    @datou ios17 同样的问题啊
    Ricepig
        11
    Ricepig  
    OP
       2023-09-26 09:31:15 +08:00 via Android
    @liuidetmks 第三方这个产品线砍掉了,估计开发都裁掉了
    Ricepig
        12
    Ricepig  
    OP
       2023-09-26 09:32:25 +08:00 via Android
    @653513754 直接不用代码重新编译,可以替换到 libc++?
    liuidetmks
        13
    liuidetmks  
       2023-09-26 09:35:04 +08:00
    @Ricepig 开发被柴了,代码应该还在,能不能找个认识的人,修改下就行了 (花些钱
    653513754
        14
    653513754  
       2023-09-26 09:39:14 +08:00
    @Ricepig 嗯,没有试,理论上没有什么问题
    linKnowEasy
        15
    linKnowEasy  
       2023-09-26 10:19:44 +08:00
    提供一个思路. 如果是 github 上面的. 可以看看能不能找到 fork 的人有没有继续更新
    c2const
        16
    c2const  
       2023-09-26 10:54:10 +08:00
    libstdc++、libc++、ios 新版本,坑不小。这坑想彻底解决,还是得重写,周期长就加人 :(
    32uKHwVJ179qCmPj
        17
    32uKHwVJ179qCmPj  
       2023-09-26 11:29:53 +08:00
    @Ricepig 头文件冲突是最简单的
    LLaMA2
        18
    LLaMA2  
       2023-09-26 18:54:11 +08:00
    关键的问题,所以,你说的第四方库到底叫什么,这才是问题的关键啊。
    Wander11
        19
    Wander11  
       2023-09-26 22:44:12 +08:00
    为啥要一直升级 Xcode ?一直需要使用新的特性吗?不升级 Xcode 和系统应该就可因解决编译问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5804 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:52 · PVG 10:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.