转载地址 :(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 工程 mpaas project target 获取 Xcode 工程的 targets 信息 mpaas project import 向工程导入云端配置数据 mpaas project edit 增删 mPaaS 模块依赖 mpaas project upgrade 升级 mPaaS 模块依赖 SDK...
侧载使用 Xcode 7 的新侧载功能来创建“免费”配置文件。 需要以下依赖项: coda_network 美汤机械化库参数解析曲奇库所有这些都可以通过 pip 安装。用法 usage: sideload.py [-h] username password udid ...
常见的项目文件介绍 一、项目文件结构示意图 二、文件介绍 ...在旧版本xcode创建的工程中,这个配置文件的名字就叫做info.plist。 注意:因此在载入自己准备的plist文件的时候,不要以info命名。
AIR Makefiles 这是一组Makefile,其中包括简化了从命令行创建AIR项目(包括ANE的项目)...鉴于Xcode的依赖性,它不太可能在其他地方运行,但我想鉴于工具链可能会起作用... 你需要: 吉特Xcode命令行工具 Android SDK
显示的概念建筑概念依赖注入MVVM依赖关系管理其他概念本地化为2种语言,使用并检查缺少的翻译与Github Actions和Danger持续集成单元测试,包括使用(多个)情节提要板就像夸张的XIB 无法使用Storyboard时在代码中...
10.1 准备Xcode 工程 184 10.2 上传应用 192 10.3 使用TestFlight 进行Beta 测试 199 10.4 提交应用审核 200 10.5 小结 201 第11章 部署Android 应用 203 11.1 设置应用图标 203 11.2 生成release 版本的APK ...
0.在根目录下创建Xcode工程或workspace .├── CarthageSample├── CarthageSample.xcodeproj└── CarthageSample.xcworkspace1.为框架添加目标2. 共享方案3.检查建筑$ carthage build --no-skip-current 使用...
EZPlayer 预览 本机 React本地 介绍 基于AVPlayer封装的视频播放器,功能丰富,快速集成,可定制性强。 要求 iOS 9.0以上 Xcode 12.0+ 迅捷5.0+ ...本地视频,网络视频播放(支持...在工程的target->常规选项下,拖拽Ca
项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构更加清晰,一方面现有的工具Cocoapods提供了近乎完美的解决方案。这里我们来讨论一下如何在...
IDE:Xcode 9.0 及以上版本 (由于适配iPhone X使用iOS11api,所以请使用Xcode 9.0及以上版本) 使用/安装 第一种:手动 1.找到包含: AxcAE_TabBar.h.m、 AxcAE_TabBarBadge.h.m、 AxcAE_TabBarItem.h.m、 AxcAE_...
依赖关系 cmake >= 3.5 所有操作系统: 使 >= 4.1 Linux:大多数 Linux 发行版默认安装 make 苹果电脑: 视窗: gcc/g++ >= 5.4 Linux:大多数 Linux 发行版默认安装 gcc / g++ Mac:与 make 相同 - [安装 Xcode ...
Crowdbotics React Native支架 克隆此存储库后,您将需要安装依赖项: cd ProjectName yarn install 然后,您需要安装Podfile: cd ios pod install ... 最后,您需要通过xcode将GoogleService
依赖关系 cmake >= 3.5 所有操作系统: 使 >= 4.1 Linux:大多数 Linux 发行版默认安装 make 苹果电脑: 视窗: gcc/g++ >= 5.4 Linux:大多数 Linux 发行版默认安装 gcc / g++ Mac:与 make 相同 - [安装 Xcode ...