-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
394 lines (268 loc) · 31.9 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Doliant's Meditation World</title>
<subtitle>我心中曾经执剑的少年,此刻也混迹在市井之间</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="http://yoursite.com/"/>
<updated>2024-03-08T02:21:59.374Z</updated>
<id>http://yoursite.com/</id>
<author>
<name>Doliant</name>
</author>
<generator uri="http://hexo.io/">Hexo</generator>
<entry>
<title>我的2023</title>
<link href="http://yoursite.com/2024/03/07/%E6%88%91%E7%9A%842023/"/>
<id>http://yoursite.com/2024/03/07/我的2023/</id>
<published>2024-03-07T08:42:38.000Z</published>
<updated>2024-03-08T02:21:59.374Z</updated>
<summary type="html">
<p><img src="https://diary-notes.oss-cn-shanghai.aliyuncs.com/picgo/diary/202403081019.png" alt=""></p>
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>写于 2024 年 3 月第七日,是我第 32 个生日。于 2014 年大学本科毕业后,我养成了每年自我总结的习惯。2023 是我迟迟没有完成的一年,曾一度想要放弃,但我转念一想,已经坚持了将近10年了,实在不应该停下。</p>
</summary>
<category term="annual review" scheme="http://yoursite.com/categories/annual-review/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>迟到的2022总结</title>
<link href="http://yoursite.com/2023/01/28/%E8%BF%9F%E5%88%B0%E7%9A%842022%E6%80%BB%E7%BB%93/"/>
<id>http://yoursite.com/2023/01/28/迟到的2022总结/</id>
<published>2023-01-28T06:28:21.000Z</published>
<updated>2023-02-01T07:16:13.664Z</updated>
<summary type="html">
<p><img src="https://diary-notes.oss-cn-shanghai.aliyuncs.com/picgo/diarynikko-macaspac-6SNbWyFwuhk-unsplash.jpg" alt=""></p>
<h2 id="开篇"><a href="#开篇" class="headerlink" title="开篇"></a>开篇</h2><p>从未觉得年度总结有这么难写。回想过去的那一年,能记录的内容实在乏善可陈。果真是到了一定年纪,生活愈加趋于平淡。没进步也就罢了,还有好些退坡。疫情三年使得整体环境都显挣扎,家中幼儿也占用了相当精力,2022过的确不容易。</p>
<p>抛出三个问题,尝试给自己找找答案:</p>
<ol>
<li>2022年做成了什么事情?</li>
<li>2022年学到了什么知识技能(有什么成就)?</li>
<li>2022年认知有什么提升?</li>
</ol>
</summary>
<category term="annual review" scheme="http://yoursite.com/categories/annual-review/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>写在20岁的最后一年</title>
<link href="http://yoursite.com/2022/01/03/%E5%86%99%E5%9C%A820%E5%B2%81%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E5%B9%B4/"/>
<id>http://yoursite.com/2022/01/03/写在20岁的最后一年/</id>
<published>2022-01-03T03:29:02.000Z</published>
<updated>2022-01-03T05:20:06.000Z</updated>
<summary type="html">
<p><img src="https://mytest1oss.oss-cn-beijing.aliyuncs.com/mweb/2022_01_03/istockphoto1283271579170667a.jpeg" alt="istockphoto-1283271579-170667a"></p>
<blockquote>
<p>2021年度总结</p>
</blockquote>
<h2 id="概览"><a href="#概览" class="headerlink" title="概览"></a>概览</h2><p>2021年经历了相当多的变化,人生踏上了一个新的台阶。回顾2020年给2021年制定的年度目标,和前些年的差不多,依旧好些没完成。</p>
<p>所在的平台今年又兴起了<code>OKR</code>,<code>Google</code>在90年就提出的目标管理工具。其中有一个重要的点就是需要订立一些有挑战的目标,因此如果你的目标都被很好的完成了,可能是因为你的目标订的没有那么有挑战……</p>
<p>每年都有订立计划的习惯,2022年也不会例外。准备尝试一些不一样的东西,所以并不准备再把计划公开出来。可能会以里程碑的形式,在明年的复盘计划中展示出来。</p>
</summary>
<category term="annual review" scheme="http://yoursite.com/categories/annual-review/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>基于SwiftUI的组件化构建实践</title>
<link href="http://yoursite.com/2021/09/04/%E5%9F%BA%E4%BA%8ESwiftUI%E7%9A%84%E7%BB%84%E4%BB%B6%E5%8C%96%E6%9E%84%E5%BB%BA%E5%AE%9E%E8%B7%B5/"/>
<id>http://yoursite.com/2021/09/04/基于SwiftUI的组件化构建实践/</id>
<published>2021-09-04T14:12:08.000Z</published>
<updated>2021-09-04T14:53:18.000Z</updated>
<summary type="html">
<blockquote>
<p>阅读本文需要具备一定的iOS开发经验。</p>
</blockquote>
<blockquote>
<p>SwiftUI是Apple于2019年WWDC上发布的基于Swift语言构建的全新声明式UI框架,抛弃了之前Autolayout,Storyboard的布局方式,提供了Canvas实时预览功能,以提升UI开发的体验。</p>
</blockquote>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>某迭代了10年+的大型单体<code>iOS</code>项目,之前完成了部分功能从<code>Objective-C</code>向<code>Swift</code>语言迁移的工作。加上近两年该司推行整个大前端(web + mobile)向<code>MFE</code>(Micro-Front-End)迁移的策略,由此加入了一个<code>MFE</code>项目,工作内容是将主页功能剥离成独立的组件。</p>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>而立将至</title>
<link href="http://yoursite.com/2021/02/10/%E8%80%8C%E7%AB%8B%E5%B0%86%E8%87%B3/"/>
<id>http://yoursite.com/2021/02/10/而立将至/</id>
<published>2021-02-10T12:13:15.000Z</published>
<updated>2021-02-18T12:01:05.000Z</updated>
<summary type="html">
<p><img src="http://mytest1oss.oss-cn-beijing.aliyuncs.com/mweb/2021_02_18/titleimage-copy.png?x-oss-process=image/auto-orient,1/format,png" alt="title_image copy"></p>
<blockquote>
<p>2020年度总结</p>
</blockquote>
<h1 id="Overview"><a href="#Overview" class="headerlink" title="Overview"></a>Overview</h1><p><code>COVID-19</code>的出现,让每个人的2020过得都不那么容易。记得年初从木木家回成都的艰辛,刚从齐齐哈尔到哈尔滨,晚上得知直飞成都航班取消,连夜改签从北京中转回成都的航班,所幸按时到家。之后又经历了长时间的WFH,2020似乎是从三月正式开启的。</p>
<p>按照惯例先<code>high-level</code>的<code>review</code>2020的目标:</p>
</summary>
<category term="annual review" scheme="http://yoursite.com/categories/annual-review/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>我的2019</title>
<link href="http://yoursite.com/2020/03/02/%E6%88%91%E7%9A%842019/"/>
<id>http://yoursite.com/2020/03/02/我的2019/</id>
<published>2020-03-02T00:40:42.000Z</published>
<updated>2021-02-18T02:35:51.000Z</updated>
<summary type="html">
<p><img src="https://s2.ax1x.com/2020/03/02/32v3vQ.png" alt="封面图"></p>
<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>2014年从大学毕业之后,就强制自己写日记和年度总结。回看每年的年度总结,没有一篇是在当年年末完成的,17年的总结写于18年三月,18年的总结写于19年二月。这彷佛成为了一种习惯,19年的也不例外起笔于2020年的三月。</p>
<p>算上今年已经写了六年的年度总结,现在回看过去的文字还能回忆起当时的种种。不得不说站在现在看过去是一件很有意思的事情,也能体会到这些年的经历对自身的改变。总体而言能让自己感到骄傲的事情不多, 年轻时候强制让自己养成的一些习惯还得以保持算是一个。</p>
</summary>
<category term="annual review" scheme="http://yoursite.com/categories/annual-review/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>我的2018</title>
<link href="http://yoursite.com/2019/02/09/%E6%88%91%E7%9A%842018/"/>
<id>http://yoursite.com/2019/02/09/我的2018/</id>
<published>2019-02-09T06:06:05.000Z</published>
<updated>2021-02-18T02:36:17.000Z</updated>
<summary type="html">
<p><img src="https://s2.ax1x.com/2019/02/07/ktwDYt.jpg" alt="图片来自Pinterest"></p>
<blockquote>
<p>写本文的时候看了下去年的年度总结,完成时间是在3月份,这份总结跟去年相比也算提前了,不过年度总结还是应该在新年的首月完成,拖延症欠下的债便只能用春节的假期来弥补了。</p>
</blockquote>
<blockquote>
<p>以往的年度总结都是以时间线来进行的,这次换个写法按主题叙述。</p>
</blockquote>
</summary>
<category term="annual review" scheme="http://yoursite.com/categories/annual-review/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>利用fastlane进行项目的自动化构建</title>
<link href="http://yoursite.com/2018/05/19/%E5%88%A9%E7%94%A8fastlane%E8%BF%9B%E8%A1%8C%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E6%9E%84%E5%BB%BA/"/>
<id>http://yoursite.com/2018/05/19/利用fastlane进行项目的自动化构建/</id>
<published>2018-05-19T09:10:57.000Z</published>
<updated>2019-04-16T08:14:09.000Z</updated>
<summary type="html">
<p><img src="https://s2.ax1x.com/2019/02/07/ktw6l8.png" alt="fastlane"></p>
<blockquote>
<p>在一个iOS项目进行到了测试和发布阶段,一般都会经历一次又一次的打包-截图-上传及metadata填写及修改的过程。这点做服务器开发的同学就要比我们幸福太多了,因为这一部分的工作他们可以交付给运维同学来完成。那我们就只能自己手动去做这些重复且耗时的操作了么?答案并不是,fastlane就给我们提供了一整套工具来帮助我们实现自动化。</p>
</blockquote>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>将博客从Jekyll迁移至Hexo</title>
<link href="http://yoursite.com/2018/03/31/%E5%B0%86%E5%8D%9A%E5%AE%A2%E4%BB%8EJekyll%E8%BF%81%E7%A7%BB%E8%87%B3Hexo/"/>
<id>http://yoursite.com/2018/03/31/将博客从Jekyll迁移至Hexo/</id>
<published>2018-03-31T14:06:36.000Z</published>
<updated>2018-03-31T15:45:16.000Z</updated>
<summary type="html">
<h1 id="动机"><a href="#动机" class="headerlink" title="动机"></a>动机</h1><p> 之前很久没有更新自己的博客了,想着每一年都应该写点东西记录自己的成长。于是在<code>2018</code>年第一季度快要过去的时候,打开了自己那个风格早就过时的<code>blog</code>准备重构。先简单介绍一下迁移前后的框架:</p>
<blockquote>
<p>jekyll: 一个基于<code>ruby</code>的博客框架,不会在本地渲染静态页面,需要将整个页面上传至<code>github.io</code>,由<code>github.io</code>去渲染。<br>Hexo: 由<code>node.js</code>构建的博客框架,会在本地渲染静态页面,再上传到<code>github.io</code>上。</p>
</blockquote>
</summary>
<category term="other" scheme="http://yoursite.com/categories/other/"/>
<category term="blog" scheme="http://yoursite.com/tags/blog/"/>
</entry>
<entry>
<title>React-Native使用中出现的问题</title>
<link href="http://yoursite.com/2017/11/18/React-Native%E4%BD%BF%E7%94%A8%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E9%97%AE%E9%A2%98/"/>
<id>http://yoursite.com/2017/11/18/React-Native使用中出现的问题/</id>
<published>2017-11-18T12:39:40.000Z</published>
<updated>2021-02-09T02:14:02.000Z</updated>
<summary type="html">
<blockquote>
<p>之前项目的老代码有一部分是用RN写的,在迭代一个需求的时候出现了bug,因此必须与RN刚正面了。以前完全没有接触过RN、JS的实际开发,走了很多弯路算上看文档的时间差不多三天左右找出bug,4天的时间完成bug的修正(虽然还不是很完美)</p>
</blockquote>
<h2 id="1-Could-not-connected-to-development-server"><a href="#1-Could-not-connected-to-development-server" class="headerlink" title="1.Could not connected to development server."></a>1.Could not connected to development server.</h2><p><img src="https://mytest1oss.oss-cn-beijing.aliyuncs.com/RN_New/q1.png" alt="5E09428F-524A-4A89-99CB-0AFD43C76D78.png"></p>
<p><strong>问题分析</strong>:<br>这是一个纯新手才会犯的错误,问题的原因在于没有将本地的<code>node sever</code>启动。</p>
<p><strong>解决方案</strong>:</p>
<figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">npm start</span><br><span class="line">或者 </span><br><span class="line">yarn start</span><br></pre></td></tr></table></figure>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>Swift中可选绑定引发的值类型与引用类型的思考</title>
<link href="http://yoursite.com/2017/09/11/Swift%E4%B8%AD%E5%8F%AF%E9%80%89%E7%BB%91%E5%AE%9A%E5%BC%95%E5%8F%91%E7%9A%84%E5%80%BC%E7%B1%BB%E5%9E%8B%E4%B8%8E%E5%BC%95%E7%94%A8%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%80%9D%E8%80%83/"/>
<id>http://yoursite.com/2017/09/11/Swift中可选绑定引发的值类型与引用类型的思考/</id>
<published>2017-09-11T09:39:35.000Z</published>
<updated>2021-02-09T02:25:49.000Z</updated>
<summary type="html">
<h1 id="一、前言"><a href="#一、前言" class="headerlink" title="一、前言"></a>一、前言</h1><p> <code>Swift</code>相较于<code>OC</code>是一门类型更加安全的语言,其中引入的<code>Optional</code>类型便是为了增强取值可靠性的一种方式。然而在新旧语言的转换过程中总是会踩到坑中,由于自己对于这个概念的理解还没有到位,在最近一次的实践中就遇到了由于<code>Optional Binding</code>引发的问题。</p>
<h1 id="二、问题场景"><a href="#二、问题场景" class="headerlink" title="二、问题场景"></a>二、问题场景</h1><p> <code>textFiled</code>中的<code>text</code>属性是一个可选(<code>optional</code>)类型,在对输入状态进行处理的时候肯定会涉及到对输入内容的逻辑操作。在<code>OC</code>中这种操作还是很直接的,直接使用<code>.</code>语法(<code>textField.text</code>)获取属性进行判断。<br> 但在<code>swift</code>中<code>text</code>是一个可选属性,直接对属性进行操作就比较冗余了。因此我们往往会写出如下的代码。</p>
<figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">if</span> <span class="keyword">var</span> text <span class="operator">=</span> textField.text &#123;</span><br><span class="line"> <span class="comment">/// 逻辑操作</span></span><br><span class="line">&#125;</span><br><span class="line">``` </span><br><span class="line"></span><br><span class="line">这是swift中推荐的可选绑定的写法,在其中的逻辑操作中`text`就是`textField.text`解包出的值,因此可以通过判断`text`的状态,获知`textField.text`的状态<span class="operator">。</span></span><br><span class="line"></span><br><span class="line">那么问题来了,当我们判断完成需要对`textField.text`进行赋值的时候,一不小心就有可能直接写出这样的代码<span class="operator">。</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line">```swift</span><br><span class="line"><span class="keyword">if</span> <span class="keyword">var</span> text <span class="operator">=</span> textField.text <span class="operator">【</span></span><br><span class="line"> <span class="comment">/// 逻辑操作</span></span><br><span class="line"> text <span class="operator">=</span> <span class="string">&quot;XXXXXXX&quot;</span></span><br><span class="line">&#125;</span><br><span class="line"><span class="built_in">print</span>(textField.text<span class="operator">!</span>)</span><br></pre></td></tr></table></figure>
<p>打印<code>textField.text</code>就会发现并不是<code>text</code>赋值的值。<br>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>R.swift优雅的引入项目中的资源文件</title>
<link href="http://yoursite.com/2017/07/10/R.swift%E4%BC%98%E9%9B%85%E7%9A%84%E5%BC%95%E5%85%A5%E9%A1%B9%E7%9B%AE%E4%B8%AD%E7%9A%84%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6/"/>
<id>http://yoursite.com/2017/07/10/R.swift优雅的引入项目中的资源文件/</id>
<published>2017-07-10T01:39:35.000Z</published>
<updated>2019-09-11T03:04:10.000Z</updated>
<summary type="html">
<blockquote>
<p>R.swift是一个高效引入iOS资源的框架,避免了使用字符串引入资源文件导致程序崩溃的尴尬。<br>目前R.swift支持到Swift3.0版本</p>
</blockquote>
<h2 id="优势"><a href="#优势" class="headerlink" title="优势"></a>优势</h2><p>使用代码的方式来引入资源:</p>
<ul>
<li><strong>类型完整</strong>: 减少推断和转换方法返回值的类型</li>
<li><strong>编译时检查</strong>: 不会再因为不正确的字符串导致App产生运行时崩溃</li>
<li><strong>自动补全</strong>: 不再需要输入图片名称</li>
</ul>
<p>示例:</p>
<figure class="highlight swift"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">之前: </span><br><span class="line"><span class="keyword">let</span> image <span class="operator">=</span> <span class="type">UIImage</span>(named: <span class="string">&quot;imageName&quot;</span>)</span><br><span class="line"></span><br><span class="line"><span class="type">R</span>.swift: </span><br><span class="line"><span class="keyword">let</span> image <span class="operator">=</span> <span class="type">R</span>.image.imageName()</span><br></pre></td></tr></table></figure>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>在项目中使用RSA算法</title>
<link href="http://yoursite.com/2016/11/05/%E5%9C%A8%E9%A1%B9%E7%9B%AE%E4%B8%AD%E4%BD%BF%E7%94%A8RSA%E7%AE%97%E6%B3%95/"/>
<id>http://yoursite.com/2016/11/05/在项目中使用RSA算法/</id>
<published>2016-11-04T23:39:35.000Z</published>
<updated>2021-02-09T02:20:43.000Z</updated>
<summary type="html">
<p><img src="https://mytest1oss.oss-cn-beijing.aliyuncs.com/rsa/rsa.jpeg" alt="封面图"></p>
<blockquote>
<p>在正文开始之前先吐个槽,看自己上一篇发文已经是好几个月之前的了。之前的设想是每周输出一篇技术方面的文档,接着就被硬生生拖成了一个月,然后就不知道几个月去了……其间还是有有不少可以写的题材,都是因为这该死的拖延~~~好了进入正题。</p>
</blockquote>
<h1 id="1-前言"><a href="#1-前言" class="headerlink" title="1.前言"></a>1.前言</h1><p>契机是公司换了一套新接口,要求进行全报文加密。以前公司项目基本上都使用的对称加密的模式<code>3DES</code>、<code>AES</code>,由于对称加密的密钥只有一对,有很大的密钥泄露风险。身处金融这个极为敏感的行业,对安全的要求也是极高。趁着这个机会,把项目中的加密模式统一替换成<code>RSA</code>非对称加密。</p>
<h1 id="2-关于加密算法"><a href="#2-关于加密算法" class="headerlink" title="2.关于加密算法"></a>2.关于加密算法</h1><p>本篇不会对<code>RSA</code>加密算法原理进行详细的解释。在互联网异常发达的今天,<code>RSA</code>算法详细的资料很容易就能获取到。安全领域也是一个能够深挖的领域,本篇文章偏向工程向,仅对一些基本基本概念进行简单的解释。</p>
<ul>
<li><p><strong>对称加密和非对称加密</strong><br><strong>对称加密</strong> :加密和解密用的是同一套密钥,缺陷是密钥管理存在风险。常用的加密方式有:<code>DES</code>、<code>3DES</code>、<code>AES</code>等。<br><strong>非对称加密</strong> :加密和解密用的不同的密钥,公钥加密私钥解密。常用的加密方式有<code>RSA</code>。</p>
</li>
<li><p><strong>RSA常见用法</strong>:<br> 1.公钥加密,私钥解密;<br> 2.私钥签名;<br> 3.公钥验签。</p>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>静态库联调中的若干问题</title>
<link href="http://yoursite.com/2016/08/12/%E9%9D%99%E6%80%81%E5%BA%93%E8%81%94%E8%B0%83%E4%B8%AD%E7%9A%84%E8%8B%A5%E5%B9%B2%E9%97%AE%E9%A2%98/"/>
<id>http://yoursite.com/2016/08/12/静态库联调中的若干问题/</id>
<published>2016-08-12T02:39:35.000Z</published>
<updated>2021-02-09T02:24:01.000Z</updated>
<summary type="html">
<p><img src="https://mytest1oss.oss-cn-beijing.aliyuncs.com/static_lib/s1.png" alt="毫无意义的封面图"></p>
<h1 id="一-概述"><a href="#一-概述" class="headerlink" title="一.概述"></a>一.概述</h1><p>日常开发中,静态库的开发总是要花费开发者很大的精力。工作中我们一般都是在项目中进行代码编写,在需要的时候把代码提出来另行打包,若有需求修改或者调试时,总需要把代码或者库拿回原程序中进行测试修改。<br>由于工作需要我要经常修改静态库代码中的内容,恰好最近在静态库联调的时候出现了一些问题,记录下来以后避免踩到这些坑。<br>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
<entry>
<title>将代码发布到CocoaPods(trunk方式)</title>
<link href="http://yoursite.com/2016/07/06/%E5%B0%86%E4%BB%A3%E7%A0%81%E5%8F%91%E5%B8%83%E5%88%B0CocoaPods(trunk%E6%96%B9%E5%BC%8F)/"/>
<id>http://yoursite.com/2016/07/06/将代码发布到CocoaPods(trunk方式)/</id>
<published>2016-07-06T09:39:35.000Z</published>
<updated>2021-02-09T02:35:44.000Z</updated>
<summary type="html">
<h1 id="一、概述"><a href="#一、概述" class="headerlink" title="一、概述"></a>一、概述</h1><p>Cocoapods是当前iOS开发最流行的版本依赖工具,开发者使用Cocoapods进行项目的依赖管理会为开发节省不少时间。相信大家都尝试过通过Cocoapods管理自己的项目,但如何将自己开发的代码发布到Cocoapods上让别人也可以搜索使用呢?下面就将介绍trunk方式接入的方法,以及在过程中可能遇到的坑。</p>
<h1 id="二、注册"><a href="#二、注册" class="headerlink" title="二、注册"></a>二、注册</h1><p>接入的第一步就是要注册trunk,在注册trunk之前需要确认当前的CocoaPods版本必须在0.33以上。若低于该版本请打开Terminal使用ruby的gem命令更新pod:</p>
<figure class="highlight ruby"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo gem install cocoapods</span><br></pre></td></tr></table></figure>
<p>若OSX版本在10.11以上请使用以下安装命令</p>
<figure class="highlight ruby"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo gem install -n /usr/local/bin cocoapods</span><br></pre></td></tr></table></figure>
<p>版本更新结束之后我们开始注册trunk:</p>
<figure class="highlight ruby"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pod trunk register &lt;邮箱&gt; &lt;<span class="string">&#x27;用户名&#x27;</span>&gt; --description=<span class="string">&#x27;macbook pro&#x27;</span></span><br></pre></td></tr></table></figure>
<p>其中邮箱是最重要的,因为注册之后pod会往你的邮箱发一封激活邮件,所以邮箱名就当相当于你的trunkID了。至于用户名个人感觉写不写都不太有所谓,–description参数是cocoapods推荐添加的,若以后你在别的设备上登录了trunk方便判断终端信息,也是一个可有可无的参数。点击邮箱中的注册链接,使用下列命令就可以向trunk服务器查询到自己的注册信息。<br>
</summary>
<category term="mobile development" scheme="http://yoursite.com/categories/mobile-development/"/>
<category term="iOS" scheme="http://yoursite.com/tags/iOS/"/>
</entry>
</feed>