manajay

Valar Morghulis Valar Dohaeris

静下心来,用心观察 处处都透着生活的美.


项目 project 与 target 动态库 静态库的知识

本文是阅读笔记, 原本在 最下面

项目 project 与 target 动态库 静态库的知识

  1. project就是一个项目,或者说工程,一个project可以对应多个target
  2. targets之间完全没有关系。但target和project有关系,target的setting会从project settings中继承一部分
  3. Copy Bundle Resources 是指生成的product的.app内将包含哪些资源文件
  4. Compile Sources 是指将有哪些源代码被编译
  5. Link Binary With Libraries 是指编译过程中会引用哪些库文件

编译变量 设置开发和发布版的宏名

编译变量

#if DEBUG
// 这是正式版咯
#else
// 这是开发版咯
#endif

这里补充一种方法 , Xcode中可以利用Compiler Flags来设置宏 可以通过设置Compiler Flags来定义宏,然后就可以在代码中使用这些宏,来进行条件编译的操作。有三种方式设置:

// 在Target>Build Setting>Custom Compiler Flags>Other C Flags
OTHER_CFLAGS (Other C Flags)

// 在Target>Build Setting> Preprocessing > Preprocessor Macros
GCC_PREPROCESSOR_DEFINITIONS (Preprocessor Macros)

// 在Target>Build Setting> Packaging > Info.plist Preprocessor Definitions
INFOPLIST_PREPROCESSOR_DEFINITIONS (Info.plist Preprocessor Definitions)

依赖

在主工程的 Build Phases > Target Dependencies 中添加 Module,并且添加一个 New Copy Files Phase。

Dependencies

这样,打包时会将生成的 Module.framework 添加到 main bundle 的根目录下。

引用

参考 travin 的文章: 我的阅读笔记 参考 Leon_Lizi 静态库和动态库的链接 特别全

最近的文章

Reveal - 界面调试利器

@Manajay:我的简书Reveal 时时查看 真机或模拟器 的UI 显示 情况; 界面动态修改UI 控件的参数,无需代码,无需重启程序 一切 xib 中有的参数,都可以调整,包括约束更新 对于越狱机器 , 还可以在逆向工程中大展拳脚, 学习他人的 布局技巧Reveal 的安装与配置问题然而,上述好处的 所有种种, 前提是 你配置好了 相关的 软件.下面我就将我遇到的相关问题 和 解决办法 罗列出来, 希望其他人不要再踩坑.动态方式配置 Reveal OC模拟器首先创建ll...…

iOS开发技巧继续阅读
更早的文章

开发中 warning 的 解决方案

过期方法的 warning 消除#pragma clang diagnostic push#pragma clang diagnostic ignored "警告标识的描述" // 例如 -Wdeprecated-declarations// 过期的方法 //#pragma clang diagnostic pop// for example #pragma clang diagnostic push#pragma clang diagnostic ignored "-...…

iOS开发技巧继续阅读