<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sail的技术博客]]></title><description><![CDATA[位置不能带来自由；能力才能让人自由。]]></description><link>https://blog.youkuaiyun.com/Yj_sail</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Yj_sail]]></copyright><item><title><![CDATA[SwiftUI：多语言实现富文本插值]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/144842164</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/144842164</guid><author>Yj_sail</author><pubDate>Tue, 31 Dec 2024 10:08:42 +0800</pubDate><description><![CDATA[【代码】SwiftUI：富文本插值实现多语言。]]></description><category></category></item><item><title><![CDATA[AdAttributionKit：SKAdNetwork 升级的新归因框架]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/143632501</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/143632501</guid><author>Yj_sail</author><pubDate>Fri, 08 Nov 2024 18:38:33 +0800</pubDate><description><![CDATA[AdAttributionKit 是在建立 SKAdNetWork 基础上升级的新的广告归因框架。与 SKAdNetwork API 可以共存，以最后的展示的为准。为了保护隐私，人群数量增大，才能获取到更全的的归因数据。]]></description><category></category></item><item><title><![CDATA[SwiftUI：单个App支持设置多语言]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/143220740</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/143220740</guid><author>Yj_sail</author><pubDate>Thu, 24 Oct 2024 22:13:35 +0800</pubDate><description><![CDATA[SwiftUI 多语言方案]]></description><category></category></item><item><title><![CDATA[SwiftUI：NavigationView自定义返回按钮时左滑返回手势失效解决方案]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/141532199</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/141532199</guid><author>Yj_sail</author><pubDate>Sun, 25 Aug 2024 17:59:26 +0800</pubDate><description><![CDATA[【代码】SwiftUI：NavigationView自定义返回按钮时左滑返回手势失效解决方案。]]></description><category></category></item><item><title><![CDATA[SwiftUI：NavigationView页面跳转时隐藏TabBar]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/141532058</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/141532058</guid><author>Yj_sail</author><pubDate>Sun, 25 Aug 2024 17:48:32 +0800</pubDate><description><![CDATA[【代码】SwiftUI：NavigationView页面跳转时隐藏TabBar。]]></description><category></category></item><item><title><![CDATA[SwiftUI：TabView选中和非选中设置不同图片和文字颜色]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/141531968</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/141531968</guid><author>Yj_sail</author><pubDate>Sun, 25 Aug 2024 17:42:47 +0800</pubDate><description><![CDATA[【代码】SwiftUI：TabView选中和非选中设置不同图片和文字颜色。]]></description><category></category></item><item><title><![CDATA[【Android】Android模拟器抓包配置]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/140576777</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/140576777</guid><author>Yj_sail</author><pubDate>Sat, 20 Jul 2024 20:34:31 +0800</pubDate><description><![CDATA[从Android7.0之后开始，用户自行安装的证书在用户目录下，无法进行证书信任，导致Charles无法进行https抓包。]]></description><category></category></item><item><title><![CDATA[Apple Unity Plugins 接入GameCenter 崩溃解决方案]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/135277886</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/135277886</guid><author>Yj_sail</author><pubDate>Fri, 29 Dec 2023 09:43:18 +0800</pubDate><description><![CDATA[Thread 1: EXC_BAD_ACCESS (code=257, address=0x8000000000000002)
var fetchItemsResponse = await GKLocalPlayer.Local.FetchItems();
Library not loaded: @rpath/AppleCoreNative.framework/AppleCoreNative]]></description><category></category></item><item><title><![CDATA[iOS开发：苹果相关错误码]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/134978474</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/134978474</guid><author>Yj_sail</author><pubDate>Wed, 13 Dec 2023 18:00:39 +0800</pubDate><description><![CDATA[所属库：Foundation/FoundationErrors.h。所属库：Foundation/NSURLError.h。]]></description><category></category></item><item><title><![CDATA[SKAdNetwork：从0到1]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/129189446</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/129189446</guid><author>Yj_sail</author><pubDate>Thu, 23 Feb 2023 20:30:01 +0800</pubDate><description><![CDATA[一、什么是SKAdNetwork  
二、种类
三、归因流程
四、开发者回传归因数据示例 NSAdvertisingAttributionReportEndpoint
五、开发者归因回调链接的要求（针对服务器）
六、SKAdNetwork的版本生效规则
七、参考WWDC
]]></description><category></category></item><item><title><![CDATA[Github：fatal: Could not read from remote repository.]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/124388788</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/124388788</guid><author>Yj_sail</author><pubDate>Sun, 24 Apr 2022 18:23:22 +0800</pubDate><description><![CDATA[Github 仓库，执行 git pull 和 git push 时，报错如下：
kex_exchange_identification: Connection closed by remote host
Connection closed by 20.205.xx.xx port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repo]]></description><category></category></item><item><title><![CDATA[M1 MacBook：ERROR: While executing gem ... (Gem::FilePermissionError)]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/123879204</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/123879204</guid><author>Yj_sail</author><pubDate>Fri, 01 Apr 2022 17:18:32 +0800</pubDate><description><![CDATA[一、错误
sudo gem install cocoapods 

Password:
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.

二、解决
curl -L http]]></description><category></category></item><item><title><![CDATA[Unity：导Xcode工程报错 iOS framework addition failed due to a CocoaPods installation failure.]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/121343344</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/121343344</guid><author>Yj_sail</author><pubDate>Mon, 15 Nov 2021 21:07:53 +0800</pubDate><description><![CDATA[iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.

Unity导出Xcode工程时，由于其依赖了第三方的CocoaPods库，报错如下。
解决方案：
虽然错误中写的WARNING，但是解决了这个WARNING问题，也不再报错了。
cd ~
vim .profile  # 如没有，执行如下.]]></description><category></category></item><item><title><![CDATA[Swift：认识和使用 Swift Package Manager]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/119422119</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/119422119</guid><author>Yj_sail</author><pubDate>Thu, 05 Aug 2021 17:16:50 +0800</pubDate><description><![CDATA[Swift Package Manager 是一个用于管理 Swift 代码分发的工具。简称 SwiftPM 。它与 Swift 构建系统集成，以自动化下载、编译和链接依赖项的过程。
一款 苹果官方 第三方开源库管理工具，功能同 Cocopods、Carthage。

下面我们从以下几个方面来认识它。（建议大家下载 iOS版 Developer App 观看相关WWDC视频）

了解 Swift Package Manager Getting to Know Swift Package Manager
【W]]></description><category></category></item><item><title><![CDATA[C++：从0到1]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/117461191</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/117461191</guid><author>Yj_sail</author><pubDate>Wed, 02 Jun 2021 10:16:03 +0800</pubDate><description><![CDATA[函数指针
每个函数都占用一段连续的内存空间，函数指针就是指向函数起始地址的指针。
int (*pf)(int, char);  //pf就是一个函数指针
pf(1,'c'); //调用方式

函数指针用于可以对任意类型的数组进行排序，最后传入比较函数即可。
void qsort(void *base, int enlem, unsigned int width, int (*pfCompare)(const void *, const void *));

位运算
&amp;  按位与
|  按位或
^  ]]></description><category></category></item><item><title><![CDATA[面向对象：Objective-C 与 C++ 实现“多态”的原理]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/117417419</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/117417419</guid><author>Yj_sail</author><pubDate>Mon, 31 May 2021 16:20:02 +0800</pubDate><description><![CDATA[最近在学习 UE4（Unreal Engine）的相关知识，由于UE4引擎是使用C++实现的，因此对C++语言有了深一步的学习。我想，程序员在会某种语言的情况下，再学习其他语言时，总喜欢对比着学习，特别是同属于一类的，OC与C++同为编译型语言。C++也是一门使用C语言实现的面向对象语言。而OC的底层是C和C++。
OC与C++还是有很多不同的，比如OC的方法只声明不定义，编译可以通过，且可以只定义不声明，而C++声明和定义必须成对出现，且在其他地方调用的情况下，只声明不定义编译不通过。这是因为OC底层的有]]></description><category></category></item><item><title><![CDATA[Web服务器：Nginx 安装配置]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/115393557</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/115393557</guid><author>Yj_sail</author><pubDate>Fri, 02 Apr 2021 11:37:50 +0800</pubDate><description><![CDATA[笔者首次使用Nginx搭建Web服务器（新手），按照 Nginx 安装配置 | 菜鸟教程 操作时，发现中间有些步骤省略了，导致无法进行下去，安装期间请教了懂的人。感觉此教程对Web服务不熟的新手来说，不太友好，所以对其进行了补充。

Nginx 安装
系统平台：CentOS release 6.6 (Final) 64位。
登入服务器
ssh root@服务器IP地址

一、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool  op.]]></description><category></category></item><item><title><![CDATA[LLVM：CMake Error at CMakeLists.txt:38 (project):   No CMAKE_C_COMPILER could be found.]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/114977752</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/114977752</guid><author>Yj_sail</author><pubDate>Thu, 18 Mar 2021 14:37:50 +0800</pubDate><description><![CDATA[错误
执行 cmake -G Xcode ../llvm 生成 Xcode工程时，报错如下：

分析
CMake Error at CMakeLists.txt:38 (project):   No CMAKE_C_COMPILER could be found.
意思是： CMakeLists.txt 文件的第38行 找不到宏CMAKE_C_COMPILER，这个是 C 编译 的前端 clang 路径
解决
set(CMAKE_C_COMPILER "/Applications/Xcode.app/Con]]></description><category></category></item><item><title><![CDATA[LLVM：快速编译源码（最新）]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/114835218</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/114835218</guid><author>Yj_sail</author><pubDate>Mon, 15 Mar 2021 15:53:19 +0800</pubDate><description><![CDATA[Getting Started with the LLVM System

一、Checkout LLVM (including related subprojects like Clang):

git clone https://github.com/llvm/llvm-project.git


二、Configure and build LLVM and Clang:
1.Configure

brew install cmake （安装cmake）
brew install Ninja （安装Ni]]></description><category></category></item><item><title><![CDATA[Mac小技巧：如何在当前目录快速打开终端iTerm2并定位至当前目录]]></title><link>https://blog.youkuaiyun.com/Yj_sail/article/details/114823969</link><guid>https://blog.youkuaiyun.com/Yj_sail/article/details/114823969</guid><author>Yj_sail</author><pubDate>Mon, 15 Mar 2021 11:28:12 +0800</pubDate><description><![CDATA[一、手动打开

二、设置快捷键
shift+command+j打开新标签
shift+command+m打开新Window
注：此处的快捷方式可随意自行定义，默认是“无”


]]></description><category></category></item></channel></rss>