<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[干克小子]]></title><description><![CDATA[专注iOS]]></description><link>https://blog.youkuaiyun.com/u012390519</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012390519]]></copyright><item><title><![CDATA[动动脑（ShakeShake）隐私政策]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/157970335</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/157970335</guid><author>u012390519</author><pubDate>Wed, 11 Feb 2026 09:59:58 +0800</pubDate><description><![CDATA[最后更新日期：2026年2月11日欢迎使用"动动脑"（ShakeShake）。我们非常重视您的隐私保护。本隐私政策旨在向您说明我们如何收集、使用和保护您的信息。]]></description><category></category></item><item><title><![CDATA[江湖坛说/伏魔记重制版/NoDizzy/三国霸业重制版/RelaTree隐私政策]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/145736113</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/145736113</guid><author>u012390519</author><pubDate>Wed, 19 Feb 2025 18:30:12 +0800</pubDate><description><![CDATA[您在使用过程中产生的所有数据（如输入内容、位置信息、头像、生日、设置偏好等）仅存储在您的设备本地，我们不会以任何形式获取这些数据。我们高度重视用户的隐私保护，本政策将说明我们如何处理您的信息。本应用作为纯本地工具类应用，不会主动收集、传输或存储您的任何个人身份信息（包括但不限于姓名、电话号码、邮箱等）。[日历提醒权限]：RelationShip需要获取您的日历权限，以便为您用户生日和纪念日等醒服务等。[位置信息]：RelationShip需要获取您的位置信息，以便为您提供查看地图选择服务。]]></description><category></category></item><item><title><![CDATA[iOS依赖库版本一致性检测：确保应用兼容性]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/137827262</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/137827262</guid><author>u012390519</author><pubDate>Tue, 16 Apr 2024 15:31:49 +0800</pubDate><description><![CDATA[本文介绍一种iOS依赖库版本一致性检测方法，分析App包依赖的系统库列表及最低系统版本号V1，在官方API获取库最低支持版本号V2。比较V1与V2可快速准确地发现版本不一致问题，提高应用兼容性和安全性。]]></description><category></category></item><item><title><![CDATA[iOS多语言解决方案全面指南]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/131400359</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/131400359</guid><author>u012390519</author><pubDate>Mon, 26 Jun 2023 16:56:15 +0800</pubDate><description><![CDATA[本文以及相关工具和代码旨在为已上线的iOS项目提供一种快速支持多语言的解决方案。由于文案显示是通过hook实现的，因此对App的性能有一定影响；除了特殊场景的文案显示需要手动支持外，其他任务均已实现自动化。]]></description><category></category></item><item><title><![CDATA[Swift之struct二进制大小分析]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/128749610</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/128749610</guid><author>u012390519</author><pubDate>Sun, 22 Jan 2023 17:44:06 +0800</pubDate><description><![CDATA[随着Swift的日渐成熟和给开发过程带来的便利性及安全性，京喜App中的原生业务模块和基础模块使用Swift开发占比逐渐增高。本次讨论的是struct对比Class的一些优劣势，重点分析对包体积带来的影响及规避措施。]]></description><category></category></item><item><title><![CDATA[iOS灵动岛【电商秒杀】开发实践]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/127271851</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/127271851</guid><author>u012390519</author><pubDate>Tue, 11 Oct 2022 21:18:47 +0800</pubDate><description><![CDATA[iOS灵动岛【商品秒杀】开发实践]]></description><category></category></item><item><title><![CDATA[iPhone尺寸大全（包含iPhone16系列）]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/127209696</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/127209696</guid><author>u012390519</author><pubDate>Sat, 08 Oct 2022 15:28:09 +0800</pubDate><description><![CDATA[iPhone尺寸大全（包含iPhone16系列）]]></description><category></category></item><item><title><![CDATA[iOS番外-搞点音乐玩玩]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/123538297</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/123538297</guid><author>u012390519</author><pubDate>Wed, 16 Mar 2022 22:21:24 +0800</pubDate><description><![CDATA[这是一个可以让iOS小白用户，直接根据钢琴或者其他乐器的简谱，直接开发一个可以播放的简单教程，底层使用CoreMIDI.framework来实现，中层使用开源的MIKMIDI库来实现，上层将简谱设计成合理的数据结构，将简谱数据进行对象化管理，业务方简单调用进而直接上手使用。



作者：HarryDeng
链接：https://juejin.cn/post/7075638987712364580
来源：稀土掘金
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。]]></description><category></category></item><item><title><![CDATA[iOS代码覆盖率（二）-增量覆盖率自动化实践]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/122343295</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/122343295</guid><author>u012390519</author><pubDate>Thu, 06 Jan 2022 14:43:34 +0800</pubDate><description><![CDATA[全量代码覆盖率可以直观的看到整个App的代码的覆盖率情况，但是往往有用的或者被关注的是增量代码覆盖率数据。经过不断的学习和探索，发现在基于git diff能力，通过一系列的处理获取我们想要的增量的信息，结合覆盖率信息，得到一份增量的覆盖率信息。

一、获取代码diff

这里依旧以本工程demo为例进行说明

1、找到两次提交确认增量代码
通过 git log 找到最近一次（多次）的改动日志：
$ git log
commit a8692db2716eeb909aa9a9e48a89ac1a5368fa1.]]></description><category></category></item><item><title><![CDATA[iOS代码覆盖率（一）-全量覆盖率自动化实践]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/122343236</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/122343236</guid><author>u012390519</author><pubDate>Thu, 06 Jan 2022 14:42:14 +0800</pubDate><description><![CDATA[简介
这是一个统计基于 Swift &amp; Objective-C 工程的代码覆盖率的自动化脚本。之所以做成 Pod ，是便于更好的复用，该 Pod 只包含了收集生成代码覆盖率的脚本。整体比较简单方便。
这里只将流程，咱不讲原理。后续另外介绍
这里只将流程，咱不讲原理。后续另外介绍
使用
1、安装：
通过 CocoaPods 进行安装，在你的 Podfile 文件添加如下代码：
pod 'HDCoverage'

然后 pod install 安装下载相关脚本文件。
2、关联脚本：
在项目的 Xcode]]></description><category></category></item><item><title><![CDATA[Source-based Code Coverage]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/121096466</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/121096466</guid><author>u012390519</author><pubDate>Tue, 02 Nov 2021 11:09:40 +0800</pubDate><description><![CDATA[原文： Source-based Code Coverage
基于源码计算代码覆盖率
一、简介

这个文档展示如何通过 clang基于源码 条件下计算代码覆盖率特性。因为它是直接操作AST和预处理阶段，所有称为 “基于源码” 的代码覆盖率。并且能够生成非常准确的覆盖数据。

clang 提供两种代码覆盖率的实现：

SanitizerCoverage : 它在函数、基本块和边缘级别插入对用户定义函数的调用。提供了这些回调的默认实现并实现了简单的覆盖率报告和可视化。低开销、简单的代码覆盖率。
gcov：是GC]]></description><category></category></item><item><title><![CDATA[iOS站内推送UI效果实现]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/114016401</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/114016401</guid><author>u012390519</author><pubDate>Wed, 24 Feb 2021 12:13:35 +0800</pubDate><description><![CDATA[一、功能列表：

 一行代码实现站内推送UI效果
 多次点击展示兼容
 支持点击推送UI事件
 支持显示隐藏动画及自定义展示时长
 支持拖动推送UI效果
 支持拖动超过1/3自动消失，支持拖动小于1/3自动位置，并且展示时长重新计算

二、代码接入
HDNotifPopManager.swift
private func showNotifPopView() {
    let obj = HDNotifObj()
    obj.title = "消息中心"
    obj.text = "消息中心消息中]]></description><category></category></item><item><title><![CDATA[使用Xcodeproj修改依赖库顺序]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/109000857</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/109000857</guid><author>u012390519</author><pubDate>Sat, 10 Oct 2020 17:11:07 +0800</pubDate><description><![CDATA[基于某种特定的需求，需要动态的按照特定的顺序来对项目依赖的库进行排序，得知 Cocoapods 团队大佬已经开发了 Xcodeproj 来管理工程的配置，所以本次记录一下使用 Xcodeproj 来完成我的目的

具体的代码如下：
require 'xcodeproj'

def priorityDependencesFunction(dependencies)
    # 自定义依赖排序库（下面的排序优先级最高）
    priorityDependences = ["SDWebImage", "Coc.]]></description><category></category></item><item><title><![CDATA[iOS13下 'threading violation: expected the main thread' Crash分析及解决]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/103680390</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/103680390</guid><author>u012390519</author><pubDate>Tue, 24 Dec 2019 11:32:23 +0800</pubDate><description><![CDATA[HDCameraCrashDemo
问题描述
iOS13及以上的系统，使用Xcode11.2编译器运行，在特定的路径下唤起系统拍照/录像会直接Crash，使用该Demo的Crash的日志如下：
2019-12-24 10:28:40.709607+0800 HDCameraCrashDemo[3338:1286515] *** Assertion failure in -[FBSSerialQue...]]></description><category></category></item><item><title><![CDATA[webpack学习]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/79865291</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/79865291</guid><author>u012390519</author><pubDate>Mon, 09 Apr 2018 13:41:23 +0800</pubDate><description><![CDATA[webpack可以看做是模块打包机：它做的事情是，分析你的项目结构，找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言（Scss，TypeScript等），并将其转换和打包为合适的格式供浏览器使用。
  
  webpack的工作方式是：把你的项目当做一个整体，通过一个给定的主文件（如：index.js），webpack将从这个文件开始找到你的项目的所有依赖文件，使用lo...]]></description><category></category></item><item><title><![CDATA[Git上传大文件]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/79441706</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/79441706</guid><author>u012390519</author><pubDate>Mon, 05 Mar 2018 09:02:38 +0800</pubDate><description><![CDATA[
  最近开发项目中，使用了几个体积超过100M的第三方框架，这样导致在提交代码入库时，会被拒绝，以GitHub为例，单个文件超过50M入库会警告，超过100M会不然入库。




解决方案



1、将单个文件大于100M的文件不入库

GitHub官方解决方案 



git rm --cached giant_file
# Stage our giant file for removal, ...]]></description><category></category></item><item><title><![CDATA[Cocoapods制作pod时，依赖百度地图SDK的一些问题]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/78017999</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/78017999</guid><author>u012390519</author><pubDate>Mon, 18 Sep 2017 13:11:47 +0800</pubDate><description><![CDATA[1、制作一个pod时，依赖了百度地图sdk（静态库），这个时候，Cocoapods会在百度地图sdk这个pod中的podspec中为项目配置百度地图sdk需要的系统动态库及静态库。编译新做的pod，得到framework，分析它的二进制，没有多余的代码，但是二进制却有6.9M，使用 otool 分析得到：denglibing$ otool -L /Users/denglibing/Library/D]]></description><category></category></item><item><title><![CDATA[HDDNetworking网络组件]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/77934761</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/77934761</guid><author>u012390519</author><pubDate>Mon, 11 Sep 2017 16:38:40 +0800</pubDate><description><![CDATA[基于AFNetworking的v3.1.0进行网络请求，基于PINCache的v3.0.1进行网络数据缓存，支持清除指定url缓存、url及参数组合缓存，通过AFNetworkActivityLogger进行网络log打印。该代码使用灵活的请求方式，不包含任何业务代码，上层支持集中式、分布式网络接口管理方式，在请求前可以对请求进行配置，也支持对网络请求后返回的数据进行统一处理。
一、目的HDDNet]]></description><category></category></item><item><title><![CDATA[Mac执行定时任务之Launchctl]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/74542042</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/74542042</guid><author>u012390519</author><pubDate>Thu, 06 Jul 2017 14:20:17 +0800</pubDate><description><![CDATA[launchctl是一个统一的服务管理框架，启动、停止和管理守护进程、应用程序、进程和脚本。下面讲述一下如何在Mac上使用launchctl执行定时任务。
一、编写一个plist文件launchctl 将根据这个plist文件的信息来启动任务，plist文件中的关键字可以在 苹果官方文档  找到，值得注意的是 Label 对应的值需要保证唯一性，作为任务的唯一标示。可以使用如下命令来验证plist格]]></description><category></category></item><item><title><![CDATA[shell中的curl网络请求]]></title><link>https://blog.youkuaiyun.com/u012390519/article/details/74231606</link><guid>https://blog.youkuaiyun.com/u012390519/article/details/74231606</guid><author>u012390519</author><pubDate>Mon, 03 Jul 2017 17:59:08 +0800</pubDate><description><![CDATA[curl 是利用URL语法在命令行下工作的文件传输工具，1997年首次发行，支持文件上传和下载，结合shell脚本体验更棒。但按照传统习惯称 curl  为下载工具。
  
  curl 支持的通信协议有 有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP 等等，支持的平台有 Linux、MacOSX、Darwin、Windows、DOS、FreeBSD等等。
一、curl的作用：1、查看]]></description><category></category></item></channel></rss>