iOS中创建,使用动态库(dylib)

原创 2013年06月05日 17:48:31

测试环境:

xcode4.5.2   Mac OS X 10.8.2

重要:由于苹果不支持自己创建动态库,所以这里需要替换两个文件

1:iOS Device 需要替换的文件

替换路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/

2:iOS 模拟器 需要替换的文件

替换路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications

具体可参照:http://blog.iosplace.com/?p=33    或者  http://www.cocoachina.com/bbs/simple/?t129814.html  


替换完成后重启Xcode



创建动态库


1:打开Xcode,新建项目,选择OS X --> Cocoa Library -->输入动态库的相关信息






















2:这样,动态库已经创建好,但是由于此项目是基于Mac OS X创建的,所以这里要将project的相关设置作修改


     1:Base  设置成 SDK iOS6.0


     2:Architectures  设置成 standrand (armv7 armv7s)


     3:Installation Directory  设置成 @executable_path/


     4:Mach-O Type  设置成 Dynamic Library


     5:Executable Prefix 设置成


     6:打开项目的project.pbxproj(文本编辑器打开)文件,在编辑器中将producttype 的值修改为 com.apple.product-type.library.dynamic


     7:选择合适的证书文件


3:将debug改为no





4:在动态库的相关类中添加一些测试方法

5:删除多余的framework文件。值添加Foundation.framework文件




 






Xcode--->Preferences--->Locations--->Advanced---->



























这样基本就可以编译dylib了,但是这里还有一个需要注意的地方。

编译证书的选择


编译分为 设备编译(iOS Device) 及 模拟器编译(iPad/iPhone Simulator)

在选择设备编译的时候,一定要选择某个有效的开发者证书。否则编译会出错。

相反,选择模拟器编译的时候,不需要选择证书(如果选了证书,也会报错)。


如果一切正常,那么在编译后的文件会出现在项目文件夹的Build/Products/.…文件夹中



浅析.tbd与.dylib

Xcode7 升级后 在引入动态库的时候 发现.tbd 取代了 .dylib出现在我们眼前 .dylib 去哪了 事实上.dylib 还在原来的位置,而且我们也可以通过解析.tbd 来找到他们...
  • zbh491163747
  • zbh491163747
  • 2016年05月18日 10:09
  • 3354

iOS Hacker 动态库 dylib 注入

iOS Hacker 动态库 dylib 注入很多情况下我们希望自己写的代码能够在其他应用中运行,如果代码简单的话,可以写 Tweak 或者使用 Cycript。但如果代码多的话,那最好是写一个动态库...
  • SysProgram
  • SysProgram
  • 2017年07月20日 23:30
  • 1273

转一个 Xcode 7 缺少 *.dylib库的解决方法

Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法。方法1. (heqin测...
  • smking
  • smking
  • 2015年10月08日 10:31
  • 26025

Xcode7缺失libsql3.dylib等文件的解决办法

这个问题是由于Xcode升级7.0之后,libsql3.dylib文件被libsql3.tbd取代,因此在Xcode的库文件目录里找不到相应的文件 因而只需要将所需的文件复制到相应的位置即可 打开终端...
  • q3964637
  • q3964637
  • 2015年12月16日 14:57
  • 1060

iOS 动态库与静态库的区别(framework,.a,.dylib)

使用静态库的好处1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用使用动态库的好处1使用动态库,可以将最终可执行文件体积缩小 2使用动态库,多个应...
  • jichunw
  • jichunw
  • 2015年03月11日 12:44
  • 2960

ios 9.1以后 添加libz.dylib 方法

1. 进入你项目的build phases  2.点击+号在弹出的对话框选择addother 3.在弹出的对话框中输入"cmd"+"shift"+"g"  4.输入/us...
  • u014760573
  • u014760573
  • 2015年11月25日 19:07
  • 5747

Xcode8添加dylib库

Xcode8中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,尝试后得到以下两种解决方法。 方法1. 在项目Target中的Li...
  • thanklife
  • thanklife
  • 2017年08月20日 17:03
  • 144

Xcode8添加dylib库

Xcode8中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,尝试后得到以下两种解决方法。 方法1. 在项目Target中的Li...
  • haochentao
  • haochentao
  • 2016年11月23日 14:54
  • 2041

如何在Mac OSX 中制作dylib和使用dylib

如何在Mac OSX 中制作dylib和使用dylib 本文本着简单易读的方式给朋友们,本人为原创 1.首先是构建一个函数库   编辑add.c   int add(int a...
  • ssihc0
  • ssihc0
  • 2013年12月13日 11:16
  • 4738

IOS安全–可执行文件dylib注入,无需越狱

转:http://www.blogfshare.com/inject-with-njb.html 简单来说就是通过修改可执行文件的Load Commands,增加一个LC_LOAD_DYLI...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2015年12月04日 11:06
  • 5051
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中创建,使用动态库(dylib)
举报原因:
原因补充:

(最多只允许输入30个字)