- 浏览: 395929 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (325)
- 神经网络 (1)
- javascript (11)
- 数据结构 (2)
- 计算机图形学 (11)
- 模式识别 (1)
- 前端开发 (14)
- 机器学习 (11)
- ios开发 (50)
- Python (9)
- HTML5 (4)
- 计算机视觉 (9)
- 数字图像处理 (7)
- 架构设计 (19)
- 数据库设计 (9)
- 算法设计 (59)
- Java (37)
- 其他 (3)
- 游戏开发 (5)
- c++ (17)
- Linux (3)
- TCP/IP (2)
- Flex (41)
- 健康 (6)
- AI (2)
- 工具 (1)
- 数据挖掘 (1)
- 性能优化 (6)
- 综合 (2)
- 网络通信 (12)
- Android (2)
- UML (3)
- 软件设计 (11)
- 编程经验 (7)
- J2EE (1)
- 多媒体技术 (3)
- 数学 (7)
- php (4)
- 设计 (1)
- CS (2)
- 计算机理论 (1)
- 信息安全 (1)
最新评论
-
ahead_zhan:
good good good
flex3控件_ModuleLoader -
lonerzf:
好样的。非常感谢楼主
OpenCV视频教程整理 -
lonerzf:
好样的。谢谢~
OpenCV视频教程整理 -
coding1688:
博主说的不错,我在实现瀑布流布局时也用的masonry插件,有 ...
Javascript 瀑布流式布局及其动态效果的实现 -
snowolf:
除非玩游戏,不然没啥win的事情,或者用win的银行客户端,通 ...
macbook安装操作系统的机理分析
转自:http://www.cnblogs.com/speeding/archive/2011/09/29/2195252.html
在xcode4中,为了将一些比较独立的功能封装起来,或者多人同时开发时,需要将程序打包成静态库,但在xcode4中设置工作区、工程和静态库等遇到了一系列问题,不知道是不是xcode的高版本中已经解决了这些问题?我用的是xcode4.0(4A304a), SDK是4.3。
从网上能够查到的写的比较全面的使用和建立静态库的文章是CarbonFive的这篇文章。但我按照这个文章逐个试验后,发现几个地方跑不通,经过一番尝试,终于在我的机器上把详细的设置步骤跑通了。
更新记录:
2011年9月29日,完成了初稿。
2011年10月30日,更正了目录结构,xcode中Location还是使用默认设置才对。
xcode4中的几个基本概念
工作区(Workspace):在xcode4中引入了这个概念,能够把project统一管理起来,这功能在VisualStudio中是很早就有的功能。
工程(Project):工作区里管理着一些工程,相关的源程序和资源都在这里面。
Scheme:这个概念取代了xcode3中的Active Target, Build Configuration, and Executable settings,具体含义不太了解,但只知道它执行了一组build动作,在xcode的顶端工具条上可以快速切换不同的scheme。
构建目标(Target):构建目标指定了一系列的编译和连接设置,对于静态库就是生成一个.a文件。
还有一个group不知道是什么概念,因为在文件的location属性中有个“Relative to Group”设置。
这些一大堆概念到现在还只是略知一二,后面用的多了会理解慢慢深刻一些吧。
生成静态库
在新建工程时,需要选择“cocoa Touch Static Library”这个模板,
一阵子Next后,可以建出一个工程,我这里取名为testlib。为了测试,我建了一个类MyClass,生成MyClass.h和MyClass.m两个文件。
(1)公开头文件
要选中.h文件,将Target Membership中设置为public。
(2)设置安装路径
在testlib的工程设置里面,找到testlib构建目标,在Build Settings中找到"Installation Directory"一项(可设置的项非常多,建议在搜索框中输入install来快速查找定位),填上“$(BUILT_PRODUCTS_DIR)”,将Skip Install设置为Yes。
$(BUILT_PRODUCTS_DIR)这个环境变量在工作区的build/debug-iphoneos路径下,最好在构建的过程中去打开Finder看看这个目录里有什么变化。
(3)设置公开头文件的路径
在英文的那篇博文中说将这里设置为“$(TARGET_NAME)”,是指将生成的头文件放在一个目录中,在本程序中,会在/build/debug-iphoneos/中生成一个testlib目录,在这个目录中有一个文件MyClass.h文件。
设置完成前面的三步,可以执行Build操作了,如果一切顺利,会在Products中看到libtestlib.a由红变黑了,表示这个文件生成了,点击这个文件可以看到详细信息,如果看不到,就说明哪个设置还是有问题的。
下面一步非常关键:
如果有问题,需要在xcode的系统设置中检查Locations设置,在xcode的Preferences…->Locations->Build Location里,选“Place build products in derived data location(recommended)”,设置完成后需重启xcode才能生效!用xcode的这个默认设置,那个.a文件一直放在一个长长的非常难看的路径中(/Users/xxx/Library/Developer/Xcode/DerivedData/xxxProgram-dalrvzehhtesxdfqhxixzafvddwe/Build/Products/Debug-iPhoneos),不知道apple为什么要这样做?是为了支持多个版本的静态库?
使用静态库
加上一个工程,我这里命名为mainprog,让它依赖testlib,我在主程序中加了一条#import "MyClass.h"语句,只要这条语句能够编译,整个工作区和工程应该设置的就没问题了。
(1)设置依赖关系
在mainprog工程的build phases中,将libtestlib.a加到link Binary With Libraries中。
(2)添加静态库的头文件搜索路径
这一步最迷惑人了,先在Build Settings中,将User Header Search Paths设置为“$(BUILT_PRODUCTS_DIR)”。
然后双击那个显示“<Multiple values>”的地方,弹出一个对话框(这个窗口隐藏的相当深,我找了足足半天才发现,一开始还以为我的xcode版本有点低呢),把Recursive勾上。
(3)设置Scheme
加上了依赖关系,按照以前VisualStudio的习惯,整个构建过程应该按照这些依赖关系的顺序来构建了吧,可发现xcode现在还没有这么聪明,需要再设置一下scheme,据说(从apple的xcode文档中查的)勾上那个Archive非常重要。
(4)让自动完成功能正常
待完成。
全部步骤完成了,选择mainprog的scheme,应该能够构建成功了!
补充一下:
那个目录结构也非常重要,用xcode建的工程会多产生出一级目录来,我建一个MyProduct目录,用Finder将工程目录和工作区文件都移到这里面,然后再重新打开工作区,将这些工程重新添加到工作区中,看起来就舒服多了。
2011年10月30日更正:上面所说的目录结构还是有问题的,使用xcode在一开始新建出来的默认结构是正确的,虽然一开始看起来不太习惯,但后来发现它的设置思路还是很清楚的。
MyProgram(工作区目录) ├─Project1(这是一个静态库项目) │ ├─build │ │ ├─Debug-iphoneos │ ├─Project1(这实际是一个分组,源程序应该放在这里) │ ├─Project1.xcodeproj │ └─Project1Tests ├─MyProgram.xcworkspace └─Project2(这是一个iOS项目)
├─build │ ├─Debug-iphonesimulator ├─Project2(这也是一个分组,源程序都在这里)
│ ├─iPad │ └─iPhone └─Project2.xcodeproj
虽然探索的过程非常艰苦,还得感谢国外的那个程序员CarbonFive,那篇文章给出了关键的步骤。
------------------------------------------------------------
作者:毒龙的程序人生{speeding} (http://www.cnblogs.com/speeding/)
版权声明:本文的版权归作者和博客园共有,转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
发表评论
-
IVEngine —— Objective-C的Spring
2013-12-15 20:35 0背景: 只要是Java程序员,相信都听说 ... -
XCode环境变量及路径设置
2013-11-17 16:05 1727转自:http://blog.csdn.net/freedo ... -
OVGap — 沟通 Objective-C 与 Javascript
2013-11-14 15:14 773Github 地址: https://github.com ... -
IOS开发常用命令
2013-10-11 10:41 598统计代码行数 打开terminal, cd到项目根目 ... -
提高在Xcode上的工作效率
2013-08-31 11:05 1052转自:http://liuminqian.github.io ... -
把ipa包上传到AppStore
2013-08-26 21:46 890转自:http://doc.appcan.cn/dev_io ... -
iPhone应用程序中App目录结构
2013-08-26 17:30 927转自:http://blog.csdn.net/justin ... -
iOS运行回路(RunLoop)总结
2013-08-05 13:37 715转自:http://www.cocoachina.com/i ... -
Simple iPhone Keychain Access
2013-08-04 15:54 701转自:http://useyourloaf.com/b ... -
IOS媒体层
2013-07-28 15:18 803转自:http://wd397.blog.163.com/b ... -
nginx上搭建HLS流媒体服务器
2013-07-28 13:31 1347转自:http://blog.csdn.net/ ... -
Compile ffmpeg for iOS 6, support Simulator & armv7 & armv7s
2013-07-23 17:03 770转自:http://witcheryne.iteye.co ... -
UITableView 修改编辑模式下的切图
2013-07-14 21:03 1122把以下代码放在点解 “编辑” 按钮时触发的方法中。 ... -
iOS平台UDID方案比较
2013-07-09 20:27 1476转自:http://www.cocoachina.com/b ... -
25 Free iOS Design Resources
2013-05-12 19:08 516Some great designers around th ... -
谈谈iOS Animation
2013-05-07 09:39 572转自:http://geeklu.com/2012/09/a ... -
IOS文件系统的管理
2013-05-06 17:11 589转自:http://blog.csdn.net/zhuzhi ... -
iOS应用的本地缓存机制设计
2013-05-06 16:18 634参考:http://www.cnblogs.com/peng ... -
iOS并发编程指南(3)
2013-04-28 14:37 706转自:http://mobile.51cto.com/iph ... -
iOS运行回路(RunLoop)总结
2013-04-27 23:24 646转自:http://www.cocoachina.com/i ...
相关推荐
适合开发ios的同志看,主要简介了Xcode的使用
雨松MOMO程序开发系列博文,IOS 入门开发之使用Xcode4制作静态库详解(五)你懂的。
Xcode 4和iOS的静态库 创建静态库是在项目中重用代码的好方法,但是使用Xcode 4,如果您不知道要设置它的以下步骤,则可能很难设置。 而且,如果您的静态库定义了动态的类别,则需要采取额外的步骤来确保您的实现...
iOS-Xcode制作静态库http://blog.csdn.net/wuming22222/article/details/43969455的示例代码文件.
iOS开发UI篇—IOS开发中Xcode的一些使用技巧.pdf
IOS APP应用开发 微博 Xcode 详细代码
通过阅读本书,你将学习 Swift 面向对象的概念、理解如何使用 Apple 的开发工具,以及探索 Cocoa 是如何提供 iOS 应用所需的底层功能的。
xcode8调试IOS11 Shift+Command+G进入 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 把解压后的文件复制进去。
Xcode开发,ios12.0(16A366)版本兼容包。适用于老旧mac,虚拟机Mac以及黑苹果,在不能更新mac版本无法升级Xcode时,使用该兼容包。可使低版本Xcode对ios11.4的真机进行真机测试
Xcode iOS 16真机调试包 开发调试 iOS16适配
xcode 制作静态库参考教程.ios初级教程参考.
Pro iOS 5 Tools: Xcode Instruments and Build Tools 392 pages Publisher: Apress; 1 edition (December 9, 2011) Language: English ISBN-10: 1430236086 ISBN-13: 978-1430236085 What you’ll learn ...
xcode支持iOS15.2和iOS15.4
提供大家一起下载 可以真机测试大家一起来用 】 、
iOS9.3.2,iOS10 SDK 让你你的xocde5、6支持调试iOS9,iOS10。 源自Xcode_8_beta6,2016-08-24
这是一个xcode静态库编译方法的文档 欢迎大家下载
Beginning iOS Storyboarding- Using Xcode 英文原版高清pdf 英文书,推荐英文好的童鞋学习
将Xcode适配可以调试、编译、运行、打包系统版本号为iOS 16.0 版本的设备,解决"Could not find Developer Disk Image"问题
IOS新升级后,Xcode运行程序到真机报错,提示Could not find developer disk image,Xcode Device栏处的真机右侧显示“(unavailable)” 博客地址:http://blog.csdn.net/xieyupeng520/article/details/46755317