`
lizaochengwen
  • 浏览: 663112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Xcode创建子工程以及工程依赖

 
阅读更多
转载地址 :(http://www.ganlvji.com/xcode_subproject_project_dependency/)
背景:由于创建一个app的时候需要引入大量的依赖三方库或者自己写的工具类,每次新建app这些事情都需要大量的时间。所以,就考虑建一个公共工程,每次新建项目,只是需要依赖这个工程就行了。

思路设计:①BaseApp,用于存放公共的库。②BaseAppSample用于写demo和示例,方面别人在使用的时候查看和借鉴。

具体步骤:

1、创建BaseApp工程,注意这里被依赖的工程要是Static Library。



2、创建BaseAppSample工程。在BaseAppSample的framework group上面右键,添加文件,选中BaseApp.xcodeproj,建立依赖关系。




行成如上图所示的依赖关系。

3、这样BaseAppSample里面就可以使用BaseApp里面的类了么?开始我以为可以了,可是我错了。在BaseAppSample里面import相关的类会出现找不到的error,会编译错误。需要进行下面的操作:



在Header Search Paths 里面添加引入头文件的路径,如上所示,这样就不会出现编译的error了。

4、等等,好像以为正确,comand + r。Oh,NO,还是有错误。还是编译还出现找不到相关的文件。

这个时候可以判断的是,编译的结果没有能够正确的依赖,进行下面的步骤

添加target的依赖关系,保证编译BaseAppSample的时候先编译BaseApp。

选中BaseAppSample Target,然后选中其Build phases选项,添加BaseApp target



然后把lib也引入依赖中,如下所示:



5、如果被依赖包(BaseApp)中有图片或者依赖文件怎么办?

要把相关的依赖图片copy出去:选中BaseApp target,进入Build phases选项,找到最下面的copy file栏,添加相关的文件:



到这一步,只要command+r,BaseAppSample中就能够正常地引入BaseApp里面的功能了。

以后有公共的组件,只是需要添加到BaseApp中,其他依赖的功能都能够使用了。

为了维护方便,可以把BaseApp用单独的SVN或者Git来维护。

分割线追加:

————————————————————————————————————————

今天右发现新的问题,如果存在category的时候,使用category会导致Crash

解决办法是在Sample里面添加编译的命令:



在Other Linker Flags添加 -Objc和-all_load选项,保证category能够被正常的引入。

原文地址:http://www.ganlvji.com/?p=128



分享到:
评论

相关推荐

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

    总结,Xcode创建和使用iOS的dylib动态库涉及到库的原理、创建过程、使用方法、版本管理、依赖处理以及模板和资源文件的处理等多个方面。熟练掌握这些知识点,可以提升iOS开发的效率和代码质量。通过不断实践和学习,...

    Xcode添加空工程模板(内含步骤 模板)

    本篇文章将详细介绍如何在Xcode中添加空工程模板,以及如何自定义这个模板,以适应不同的开发需求。 首先,我们需要了解Xcode工程模板的工作原理。Xcode的工程模板是一组文件,它们定义了新工程的基本结构、文件...

    xcode7 空工程Empty-Application

    在Xcode7中,创建一个“空工程”简单易行:只需在新建项目对话框中选择"Single View Application",然后取消选中"Include Unit Tests"和"Include UI Tests",即可得到一个纯粹的“空工程”。 在“空工程”中,主要...

    使用代码为 Xcode 工程添加文件1

    我们可以使用 CocoaPods 来管理项目中的依赖关系,并将其添加到 Xcode 工程中。 此外,我们还可以使用 Xcode 的 GUI 界面来添加新的文件。我们可以在 Xcode 中创建新的文件,然后将其添加到项目中。这种方法简单易...

    Unity导出xcode自动配置工具1

    Unity导出Xcode自动配置工具是一种提高iOS应用打包效率的解决方案,特别适用于无需更改Unity代码或资源,但需要创建多个渠道或带有不同参数的包的情况。这个工具在Unity4.x时期依赖于xupoter插件,然而从Unity5.x...

    Xcode15+Swift+制作XCFramework

    在iOS开发中,Xcode是Apple官方的集成开发环境(IDE),Swift则是一种强大的编程语言,用于构建iOS、macOS、watchOS以及tvOS的应用。XCFramework是苹果引入的一种新框架格式,允许开发者创建单一的框架包,可以在多...

    使用代码为 Xcode 工程添加文件 - 推酷1

    例如,iOS SDK提供了各种系统服务和API,NIB文件用于创建用户界面,而CocoaPods则是一种流行的依赖管理工具,它可以帮助你方便地导入和管理外部库。除此之外,学习动画库如LSAnimator和JHChainableAnimations可以使...

    xCode 单元测试指南

    配置Xcode工程以支持单元测试,主要分为两大类:**独立型**和**依赖型**。 - **独立型**:这种类型的测试目标与主执行程序分离,可以单独构建和运行。优点是易于建立和维护,但在需要频繁运行测试的情况下可能不够...

    XCode与C++/C混合编程与库文件的创建和调用

    本资源主要围绕如何在XCode中进行C++/C混合编程以及创建和调用库文件,如静态库和动态库(Dylib),这些都是iOS和macOS应用开发中的重要技能。 首先,让我们深入了解C++/C混合编程。在XCode中,你可以同时使用...

    Xcode6.0建立工程,对coreplot进行简单封装的例子

    在Xcode 6.0中创建工程,你需要首先确保你的项目配置正确。打开Xcode,选择"File" -> "New" -> "Project",然后选择"Single View Application"模板。在"Product Name"中输入你的工程名,选择合适的组织名和组织...

    Xcode项目集成Unity示例

    打开你的现有Xcode工程,确保它是支持CocoaPods的,因为Unity可能会依赖一些CocoaPods库。如果没有,需要在项目根目录下创建Podfile并添加必要的依赖。Unity生成的项目可能已经有了Podfile,可以参考其中的依赖。 ...

    skia源码已生成vs和xcode工程文件

    编译 Skia 时,需要检查依赖项是否安装正确,比如 Homebrew 安装的库,以及 Xcode 自带的 SDK。 在编译 Skia 之前,了解其构建系统也很重要。Skia 使用 Google 的 Bazel 构建工具,但预生成的工程文件简化了这个...

    xcode 混淆工具

    在Xcode中,代码混淆通常依赖于第三方工具,如Frida、Obfuscator-LLVM或Clang。以下是一些常见的混淆技术: 1. **类和方法重命名**:使用工具对类名、方法名进行加密或者随机化,使得阅读困难。 2. **字符串加密**...

    swift-SwiftPlate只要几秒钟执行时间即可生成跨平台框架Xcode项目

    SwiftPlate 是一个强大的工具,由 John Sundell 创建,旨在帮助Swift开发者快速地生成跨平台框架的Xcode项目。这个工具的出现显著提升了开发效率,使得在短短几秒钟内就能搭建起一个完整的、遵循最佳实践的框架工程...

    Jenkins Xcode 打包脚本

    "Jenkins Xcode 打包脚本"就是这样一个工具,它允许开发者创建一个自定义的脚本,该脚本可以集成到Jenkins中,以自动化Xcode项目的编译和打包过程。 首先,我们需要理解Jenkins的工作流程。在Jenkins中,每个任务...

    xcode6添加MKNetworkKit的步骤说明

    例如,你可以创建MKNetworkOperation对象发起GET或POST请求,使用MKNetworkEngine来管理网络请求队列,以及利用MKNetworkKit的缓存功能优化数据加载。 总的来说,虽然Xcode6中导入MKNetworkKit的过程比以前复杂,但...

    swift-pbxprojHelper可以让你通过原生UI应用来创建和修改Xcode工程

    Swift-PBXprojHelper 是一款专为Swift开发者设计的实用工具,它允许用户通过原生的图形用户界面(GUI)来创建和编辑Xcode项目文件(pbxproj)。这个工具是用Cocoa框架构建的,充分利用了Swift 3的特性,为iOS、macOS...

    优化Xcode编译时间

    优化Xcode的编译时间是一项系统性的工程,需要从多个角度入手。通过合理安排代码结构、简化语法以及利用工具辅助等方式,可以有效提升开发效率。对于大型项目而言,这一过程尤为重要,因为它直接影响到项目的迭代...

Global site tag (gtag.js) - Google Analytics