mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-25 04:17:17 +00:00
docs: image url
This commit is contained in:
@@ -29,11 +29,11 @@ Project、Target、Scheme 主要管理什么?
|
||||
|
||||
#### 关键步骤
|
||||
|
||||
<img src="./../assets/MultipleTargetProjectConfig.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/MultipleTargetProjectConfig.png" style="zoom:30%" />
|
||||
|
||||
|
||||
|
||||
<img src="./../assets/XcodeMacroSupportedWithOCAndSwift.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeMacroSupportedWithOCAndSwift.png" style="zoom:30%" />
|
||||
|
||||
##### 管理配置文件
|
||||
|
||||
@@ -43,7 +43,7 @@ Project、Target、Scheme 主要管理什么?
|
||||
|
||||
当对某个 Target “Duplicate” 之后,会产生一份新的 plist 文件
|
||||
|
||||
<img src="./../assets/MultiplePListAfterDuplicateTarget.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/MultiplePListAfterDuplicateTarget.png" style="zoom:30%" />
|
||||
|
||||
- 在新 Target 的 `Build Settings` → `Packaging` → `Info.plist File` 指定新路径
|
||||
|
||||
@@ -93,19 +93,19 @@ Project、Target、Scheme 主要管理什么?
|
||||
|
||||
先选中 Project,然后在右侧选择 Info 选项卡,在 Configurations Section ,点击 "+" ,即可创建新的 Configuration。
|
||||
|
||||
<img src="./../assets/XcodeAddScheme.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeAddScheme.png" style="zoom:30%" />
|
||||
|
||||
|
||||
|
||||
创建好之后,该 Target 存在3份 Configuration 了。不同的 Configuration 有什么作用呢?设置宏定义的时候可以针对不同的 Configuration 进行设置。
|
||||
|
||||
<img src="./../assets/AddMacroForDifferentScheme.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/AddMacroForDifferentScheme.png" style="zoom:30%" />
|
||||
|
||||
|
||||
|
||||
针对 OC、Swift 分别设置了很多宏定义,接下去需要跑 Beta 配置的代码,怎么办?
|
||||
|
||||
<img src="./../assets/XcodeSwitchSchemeManually.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeSwitchSchemeManually.png" style="zoom:30%" />
|
||||
|
||||
点击 Edit Scheme,在 Run 里面选择对应的 Configuration。
|
||||
|
||||
@@ -117,13 +117,13 @@ Project、Target、Scheme 主要管理什么?
|
||||
|
||||
创建 Scheme 步骤:Xcode -> New Scheme,再弹出的方框内,选择对应的 Target,然后输入需要创建的 Scheme 名称。此次我们创建了:Debug、Beta 2个新的 Scheme。
|
||||
|
||||
<img src="./../assets/XcodeCreateScheme.png" style="zoom:40%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeCreateScheme.png" style="zoom:40%" />
|
||||
|
||||
|
||||
|
||||
创建好之后,可以看到实体 Configuration 和虚拟 Scheme 存在多对多的关系。但我们可以基于此,选择实体的 Scheme,然后在 Run 里面 “Build Configuration” 里面选择对应的 Configuration 与之对应。
|
||||
|
||||
<img src="./../assets/XcodeSchemeMatchWithConfigScheme.png" style="zoom:40%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeSchemeMatchWithConfigScheme.png" style="zoom:40%" />
|
||||
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ Project、Target、Scheme 主要管理什么?
|
||||
|
||||
完整如下图:
|
||||
|
||||
<img src="./../assets/SetValueUseDifferentSchemeAndUseViaPlist.png" style="zoom:40%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/SetValueUseDifferentSchemeAndUseViaPlist.png" style="zoom:40%" />
|
||||
|
||||
切换不同的 Scheme,可以运行不同的效果,当前 case 下,选择 Debug Scheme,输出不同结果 `HOST_URL: http://www.debug.baidu.com`
|
||||
|
||||
@@ -160,7 +160,7 @@ Xcode 自带的 Configuration Settings File 可以支持自定义一些宏,
|
||||
|
||||
第一:创建步骤如下:
|
||||
|
||||
<img src="./../assets/XcodeCreateXCConfig.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeCreateXCConfig.png" style="zoom:30%" />
|
||||
|
||||
文件命名为:`文件夹名称-项目名称.scheme名称.xcconfig`,比如 `Config-Xcconfig.debug.xcconfig`
|
||||
|
||||
@@ -170,13 +170,13 @@ Xcode 自带的 Configuration Settings File 可以支持自定义一些宏,
|
||||
|
||||
第二:修改和完善创建的 Xcconfig 配置文件里的内容。之后在 Xcode 的 Project 选项下,找到 Configurations,选择对应的 Target,然后选择右边对应的 Xcconfig 文件。如下图
|
||||
|
||||
<img src="./../assets/XcodeSpecifySchemeWithConfig.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeSpecifySchemeWithConfig.png" style="zoom:30%" />
|
||||
|
||||
|
||||
|
||||
我们只在 `Config-Xcconfig.debug.xcconfig` 文件中添加了 `OTHER_LDFLAGS = -framework "AFNetworking"`,Xcode 切换到 debug scheme 下,然后 Command + B 编译。
|
||||
|
||||
<img src="./../assets/XcodeDebugXcconfigSpecifyLDLinkFlags.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeDebugXcconfigSpecifyLDLinkFlags.png" style="zoom:30%" />
|
||||
|
||||
验证结果:
|
||||
|
||||
@@ -204,7 +204,7 @@ Xcode 自带的 Configuration Settings File 可以支持自定义一些宏,
|
||||
- 在 `.xcconfig` 文件里添加了:`HOST_URL=127.0.0.1`
|
||||
- 在 plist 中需要加一栏:key 为 `HOST_URL`,value为 `${HOST_URL}`
|
||||
|
||||
<img src="./../assets/XccofigValueUseInPlist.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XccofigValueUseInPlist.png" style="zoom:30%" />
|
||||
|
||||
- 代码中使用
|
||||
|
||||
@@ -309,7 +309,7 @@ TEMP_LDFLAGS = $(BASE_LDFLAGS) -framework "AFNetworking" -framework "SDWebImage"
|
||||
OTHER_LDFLAGS = $(TEMP_LDFLAGS)
|
||||
```
|
||||
|
||||
<img src="./../assets/XcodeXcconfigDemo1.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeXcconfigDemo1.png" style="zoom:30%" />
|
||||
|
||||
第三步:
|
||||
|
||||
@@ -320,7 +320,7 @@ OTHER_LDFLAGS = $(TEMP_LDFLAGS)
|
||||
|
||||
结果:编译工程,可以看到报错了。符合预期
|
||||
|
||||
<img src="./../assets/XcodeXcconfigDemo2.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcodeXcconfigDemo2.png" style="zoom:30%" />
|
||||
|
||||
原因:本 Demo 的目的就是通过 `xcconfig` 文件和继承关系来验证对 Xcode Build Settings 中的 `Other Linker Flags` GUI 面板来验证 xcconfig 及其层级关系会正确影响到最终的编译参数上。
|
||||
|
||||
@@ -358,7 +358,7 @@ end
|
||||
|
||||
为了测试 xcconfig 配置信息的继承,故意把生成的原始信息注释掉。去掉了 `-framework "ImageIO"`
|
||||
|
||||
<img src="./../assets/XcconfigGeneratedByCocoapods.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcconfigGeneratedByCocoapods.png" style="zoom:30%" />
|
||||
|
||||
第三步:创建 `Base.xcconfig` 文件。引入 Cocoapods 自动生成的 `Pods-LDExploreDemo.debug.xcconfig` 然后声明 `OTHER_LDFLAGS = $(inherited) -framework "ImageIO"`由2部分组成,一部分是 `$(inherited)` 一部分是新加的 `-framework "ImageIO"`
|
||||
|
||||
@@ -371,7 +371,7 @@ end
|
||||
NSLog(@"%@", policy);
|
||||
````
|
||||
|
||||
<img src="./../assets/XcconfigInheritedTest.png" style="zoom:30%" />
|
||||
<img src="https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/XcconfigInheritedTest.png" style="zoom:30%" />
|
||||
|
||||
说明:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user