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/.…文件夹中



半透明窗体的又一种想法

其实很简单,现有任一种方法制作一个透明窗体,我试过捕获屏幕、设置窗体Brush属性、以及通过Windows API函数改变三种制作透明窗体的方法都行。然后在窗体上添加一个Shape,将其扩展至全屏幕,...
  • daiguan
  • daiguan
  • 2000-09-02 12:29:00
  • 954

Xcode创建和使用iOS的dylib动态库

  • 2013年03月19日 20:37
  • 108KB
  • 下载

Xcode4.6创建和使用iOS的dylib动态库

此为xcode4的方法,xcode3的方法请查看 Xcode3创建和使用iOS的dylib动态库 找到两个目录,最好用两个finder窗口分别打开: 目录一: /Applicatio...
  • hursing
  • hursing
  • 2013-05-20 19:51:47
  • 20618

Xcode8添加dylib库

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

ios 9.1以后 添加libz.dylib 方法

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

在ipa中注入动态库dylib并运行自己的代码

最近接到一个需求,要求将自己写的dylib注入到别人的ipa中,在启动该程序后可以运行自己的代码。这个需求主要分为两部分,第一部分是注入dylib,第二部分是运行自定义代码。于是乎四处去找实现方案,对...
  • kakaluo123
  • kakaluo123
  • 2015-09-07 13:37:12
  • 3073

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

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

编译dumpdecrypted.dylib

编译dumpdecrypted.dylib
  • HK_5788
  • HK_5788
  • 2016-09-03 21:10:52
  • 1587

IDA反汇编/反编译静态分析iOS模拟器程序(六)交叉引用

交叉引用cross reference是指 这个地址的 数据或代码 引用了哪个地址 以及 被哪些地址的代码所引用。引用了哪个地址,在反汇编就能看出来,一行汇编代码自然只会引用一个地址。但被引用是一对多...
  • hursing
  • hursing
  • 2013-05-30 14:43:10
  • 16976

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

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

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