怎样修改dylib版本号

注入后程序闪退,查看崩溃日记有
Dyld Error Message:
Dyld Message: Library not loaded: @executable_path/test.dylib
Referenced from: /var/containers/Bundle/Application/3139A432-2148-4FD9-A627-C0D4E6680719/nd-inviting-component1453709578200.app/nd-inviting-component1453709578200
Reason: Incompatible library version: nd-inviting-component1453709578200 requires version 1.0.0 or later, but test.dylib provides version 0.0.0
Dyld Version: 390.7

原因是版本号太小,难道还能改version,求教。

MachOView自己改

MachOView在10.11.6启动没两分钟就奔掉。。。

gdbinit的fork哇

是说可以用gdbinit来改?

github.com/gdbinit/MachOView

哈哈,自己编译啊,已经解决,谢谢!

好像只能用来浏览啊,没法改啥。

……你再试试

请问你解决了么?我也是遇到一样的问题
Incompatible library version: buy requires version 1.0.0 or later, but BuyTweak.dylib provides version 0.0.0

MachOView之类的工具改一下就行了

make的时候有没有办法指定dylib的版本号为1.0呢

你看下ld的man page
我记得是ld参数加个dylib_current_version就行了

1 个赞

谢谢, 用MachOView修改version为1.0.0之后,可以成功注入 运行没问题了。

你说的dylib_current_version参数,我在终端 ‘man ld’ 里面没有找到,

对命令行接触不多:grin::grin:

1 个赞

Google就有
http://stackoverflow.com/questions/11412370/symbol-picked-up-from-wrong-dylib-on-linking

还没明白的话PM我,我先标记已解决了

dylib注入后,运行发生了错误:Incompatible library version;
请问大神们,用theos生成dylib时,如何控制最终生成的dylib的current version?

好像我也遇到了一样的问题,注入用theos tweak模板生成的lib。 签名安装成功后,运行闪退。
错误信息如下:

Dyld Error Message:
Dyld Message: Library not loaded: @executable_path/BuyTweak.dylib
Referenced from: /var/containers/Bundle/Application/987684D9-F902-470E-BE47-172FAF9EF3D5/buy.app/buy
Reason: Incompatible library version: buy requires version 1.0.0 or later, but BuyTweak.dylib provides version 0.0.0
Dyld Version: 390.7