Check server response of

Server response
NS records
Whois domain
Response headers
Request headers
Raw HTML code
301 Moved Permanently - devwl.com
HTTP Status: 301
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Server: nginx
Date: Wed, 30 Apr 2025 13:14:15 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://devwl.com/
Strict-Transport-Security: max-age=31536000

HTTP Code 301 Moved Permanently

301 status code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.

When is Code 301 used?

  • When changing a website domain
  • When modifying URL structures
  • When setting up redirects for SEO

What does Code 301 mean for the user?

The browser will automatically redirect the user to the new address, and search engines will update their indexes.

200 OK - https://devwl.com/
HTTP Status: 200
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Server: nginx
Date: Wed, 30 Apr 2025 13:14:16 GMT
Content-Type: text/html
Content-Length: 43641
Last-Modified: Thu, 07 Nov 2024 04:03:00 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: "672c3bf4-aa79"
Strict-Transport-Security: max-age=31536000
Accept-Ranges: bytes

HTTP Code 200 OK

200 status code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.

When is Code 200 used?

  • When loading a web page
  • When successfully receiving an API response
  • When processing a form or another HTTP request

What does Code 200 mean for the user?

The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.

GET / HTTP/1.1
Host: devwl.com
Accept: */*
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html>









<!-- `site.alt_lang` can specify a language different from the UI -->
<html lang="zh-CN"
  
>

  <!--
  The Head
-->

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  

    

    

  

  

  

  
    <!-- Begin Jekyll SEO tag v2.8.0 -->
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Ryn" />
<meta property="og:locale" content="zh_CN" />
<meta name="description" content="这里是Ryn的博客,用来记录一些技术和想法,主要专注于 iOS 开发。" />
<meta property="og:description" content="这里是Ryn的博客,用来记录一些技术和想法,主要专注于 iOS 开发。" />
<link rel="canonical" href="http://localhost:4000/" />
<meta property="og:url" content="http://localhost:4000/" />
<meta property="og:site_name" content="Ryn" />
<meta property="og:type" content="website" />
<link rel="next" href="http://localhost:4000/page2" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Ryn" />
<meta name="twitter:site" content="@" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebSite","description":"这里是Ryn的博客,用来记录一些技术和想法,主要专注于 iOS 开发。","headline":"Ryn","name":"Ryn","url":"http://localhost:4000/"}</script>
<!-- End Jekyll SEO tag -->

  

  <title>Ryn
  </title>

  <!--
  The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps
  Generated by: https://realfavicongenerator.net/
-->



<link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicons/favicon-16x16.png">
<link rel="manifest" href="/assets/img/favicons/site.webmanifest">
<link rel="shortcut icon" href="/assets/img/favicons/favicon.ico">
<meta name="apple-mobile-web-app-title" content="Ryn">
<meta name="application-name" content="Ryn">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/assets/img/favicons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">


  

    
      <link rel="preconnect" href="https://fonts.googleapis.com" >
      <link rel="dns-prefetch" href="https://fonts.googleapis.com" >
    
      <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
      <link rel="dns-prefetch" href="https://fonts.gstatic.com" crossorigin>
    
      <link rel="preconnect" href="https://fonts.googleapis.com" >
      <link rel="dns-prefetch" href="https://fonts.googleapis.com" >
    
      <link rel="preconnect" href="https://cdn.jsdelivr.net" >
      <link rel="dns-prefetch" href="https://cdn.jsdelivr.net" >
    

    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lato&family=Source+Sans+Pro:wght@400;600;700;900&display=swap">

  

  <!-- GA -->
  

  <!-- Bootstrap -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">

  <!-- Font Awesome -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css">

  <link rel="stylesheet" href="/assets/css/style.css">

  

  

  <!-- JavaScript -->

  <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>

  
    <!--
  Switch the mode between dark and light.
-->

<script type="text/javascript">
  class ModeToggle {
    static get MODE_KEY() { return "mode"; }
    static get MODE_ATTR() { return "data-mode"; }
    static get DARK_MODE() { return "dark"; }
    static get LIGHT_MODE() { return "light"; }
    static get ID() { return "mode-toggle"; }

    constructor() {
      if (this.hasMode) {
        if (this.isDarkMode) {
          if (!this.isSysDarkPrefer) {
            this.setDark();
          }
        } else {
          if (this.isSysDarkPrefer) {
            this.setLight();
          }
        }
      }

      let self = this;

      /* always follow the system prefers */
      this.sysDarkPrefers.addEventListener("change", () => {
        if (self.hasMode) {
          if (self.isDarkMode) {
            if (!self.isSysDarkPrefer) {
              self.setDark();
            }

          } else {
            if (self.isSysDarkPrefer) {
              self.setLight();
            }
          }

          self.clearMode();
        }

        self.notify();

      });

    } /* constructor() */

    get sysDarkPrefers() { return window.matchMedia("(prefers-color-scheme: dark)"); }

    get isSysDarkPrefer() { return this.sysDarkPrefers.matches; }

    get isDarkMode() { return this.mode === ModeToggle.DARK_MODE; }

    get isLightMode() { return this.mode === ModeToggle.LIGHT_MODE; }

    get hasMode() { return this.mode != null; }

    get mode() { return sessionStorage.getItem(ModeToggle.MODE_KEY); }

    /* get the current mode on screen */
    get modeStatus() {
      if (this.isDarkMode
        || (!this.hasMode && this.isSysDarkPrefer)) {
        return ModeToggle.DARK_MODE;
      } else {
        return ModeToggle.LIGHT_MODE;
      }
    }

    setDark() {
      $('html').attr(ModeToggle.MODE_ATTR, ModeToggle.DARK_MODE);
      sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.DARK_MODE);
    }

    setLight() {
      $('html').attr(ModeToggle.MODE_ATTR, ModeToggle.LIGHT_MODE);
      sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.LIGHT_MODE);
    }

    clearMode() {
      $('html').removeAttr(ModeToggle.MODE_ATTR);
      sessionStorage.removeItem(ModeToggle.MODE_KEY);
    }

    /* Notify another plugins that the theme mode has changed */
    notify() {
      window.postMessage({
        direction: ModeToggle.ID,
        message: this.modeStatus
      }, "*");
    }

  } /* ModeToggle */

  const toggle = new ModeToggle();

  function flipMode() {
    if (toggle.hasMode) {
      if (toggle.isSysDarkPrefer) {
        if (toggle.isLightMode) {
          toggle.clearMode();
        } else {
          toggle.setLight();
        }

      } else {
        if (toggle.isDarkMode) {
          toggle.clearMode();
        } else {
          toggle.setDark();
        }
      }

    } else {
      if (toggle.isSysDarkPrefer) {
        toggle.setLight();
      } else {
        toggle.setDark();
      }
    }

    toggle.notify();

  } /* flipMode() */

</script>

  
</head>


  <body data-spy="scroll" data-target="#toc" data-topbar-visible="true">

    <!--
  The Side Bar
-->

<div id="sidebar" class="d-flex flex-column align-items-end">
  <div class="profile-wrapper text-center">
    <div id="avatar">
      <a href="/" class="mx-auto">
        
          
          <img src="/assets/images/avatar.png" alt="avatar" onerror="this.style.display='none'">
        
      </a>
    </div>

    <div class="site-title">
      <a href="/">Ryn</a>
    </div>
    <div class="site-subtitle font-italic">学习和折腾的备忘录</div>

  </div><!-- .profile-wrapper -->

  <ul class="w-100">

    <!-- home -->
    <li class="nav-item active">
      <a href="/" class="nav-link">
        <i class="fa-fw fas fa-home ml-xl-3 mr-xl-3 unloaded"></i>
        <span>首页</span>
      </a>
    </li>
    <!-- the real tabs -->
    
    <li class="nav-item">
      <a href="/categories/" class="nav-link">
        <i class="fa-fw fas fa-stream ml-xl-3 mr-xl-3 unloaded"></i>
        

        <span>分类</span>
      </a>
    </li> <!-- .nav-item -->
    
    <li class="nav-item">
      <a href="/tags/" class="nav-link">
        <i class="fa-fw fas fa-tag ml-xl-3 mr-xl-3 unloaded"></i>
        

        <span>标签</span>
      </a>
    </li> <!-- .nav-item -->
    
    <li class="nav-item">
      <a href="/archives/" class="nav-link">
        <i class="fa-fw fas fa-archive ml-xl-3 mr-xl-3 unloaded"></i>
        

        <span>归档</span>
      </a>
    </li> <!-- .nav-item -->
    
    <li class="nav-item">
      <a href="/about/" class="nav-link">
        <i class="fa-fw fas fa-info-circle ml-xl-3 mr-xl-3 unloaded"></i>
        

        <span>关于</span>
      </a>
    </li> <!-- .nav-item -->
    

  </ul> <!-- ul.nav.flex-column -->

  <div class="sidebar-bottom mt-auto d-flex flex-wrap justify-content-center align-items-center">

    
      <button class="mode-toggle btn" aria-label="Switch Mode">
        <i class="fas fa-adjust"></i>
      </button>

      
        <span class="icon-border"></span>
      
    

    
      

      
      <a href="https://github.com/" aria-label="github"
        

        
          target="_blank"
          
        

        

        rel="noopener noreferrer">

        <i class="fab fa-github"></i>
      </a>
      

    
      

      
      <a href="https://twitter.com/" aria-label="twitter"
        

        
          target="_blank"
          
        

        

        rel="noopener noreferrer">

        <i class="fab fa-twitter"></i>
      </a>
      

    
      

      
      <a href="javascript:location.href = 'mailto:' + ['admin','devwl.com'].join('@')" aria-label="email"
        

        

        

        >

        <i class="fas fa-envelope"></i>
      </a>
      

    
      

      
      <a href="/feed.xml" aria-label="rss"
        

        

        

        >

        <i class="fas fa-rss"></i>
      </a>
      

    

  </div> <!-- .sidebar-bottom -->

</div><!-- #sidebar -->


    <!--
  The Top Bar
-->

<div id="topbar-wrapper">
  <div id="topbar" class="container d-flex align-items-center justify-content-between h-100 pl-3 pr-3 pl-md-4 pr-md-4">
    <span id="breadcrumb">

    

    
      <!-- index page -->
      <span>首页</span>

    

    </span><!-- endof #breadcrumb -->

    <i id="sidebar-trigger" class="fas fa-bars fa-fw"></i>

    <div id="topbar-title">
      Ryn
    </div>

    <i id="search-trigger" class="fas fa-search fa-fw"></i>
    <span id="search-wrapper" class="align-items-center">
      <i class="fas fa-search fa-fw"></i>
      <input class="form-control" id="search-input" type="search"
        aria-label="search" autocomplete="off" placeholder="搜索...">
    </span>
    <span id="search-cancel" >取消</span>
  </div>

</div>


    <div id="main-wrapper" class="d-flex justify-content-center">
      <div id="main" class="container pl-xl-4 pr-xl-4">
        





<div class="row">

  <!-- core -->
  <div id="core-wrapper" class="col-12 col-lg-11 col-xl-9 pr-xl-4">
    <div class="post pl-1 pr-1 pl-md-2 pr-md-2">

    

    
      
      
        




<!-- Get pinned posts -->






<!-- Get default posts -->










<div id="post-list">



  <div class="post-preview">
    <h1>
      <a href="/posts/CoreMotion-API/">iOS17气压传感器失效的解决方法</a>
    </h1>

    <div class="post-content">
      <p>
        





        iOS17气压传感器失效的解决方法

原因

自iOS17.4开始,苹果永久性的更改了使用气压传感器的隐私权限,要求开启 运动与健身 权限。

解决方式

调用 CMMotionActivityManager 的查询方法:通过调用queryActivityStartingFromDate:toDate:toQueue:withHandler:方法来查询活动数据。尽管我们不需要运动数据,但这个...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1717862400"
    data-df="YYYY/MM/DD"
    >
  2024/06/09
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS,
            Objective-C
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/heap-and-stack/">iOS开发中的堆和栈</a>
    </h1>

    <div class="post-content">
      <p>
        





        什么是堆和栈

堆(Heap)

堆是一种动态内存分配的区域,在iOS开发中,它主要用于存储那些生命周期不确定的对象。当你创建一个类的实例或者动态分配空间时,这些数据通常存储在堆中。

特点:


  动态分配:内存的分配和释放是动态的,可以在运行时进行。
  管理灵活性:适用于生命周期不确定或大小可变的数据。
  性能开销:与栈相比,堆的内存分配和管理成本较高。


在iOS中,堆的使用是...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1684252800"
    data-df="YYYY/MM/DD"
    >
  2023/05/17
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS,
            Objective-C
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/OC/">OC面试题整理</a>
    </h1>

    <div class="post-content">
      <p>
        





        Objective-C中中strong,weak ,retain,copy,assign的特性及用途,以及它们的相似和区别。

OC 中的 strong, weak, retain, copy, 和 assign 是属性(property)修饰符,用于管理内存和对象引用。下面是它们的详细解释和比较:


  strong
    
      用途: 用于ARC(自动引用计数)环境。当你将一...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1681228800"
    data-df="YYYY/MM/DD"
    >
  2023/04/12
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS,
            Objective-C
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/Stable-Diffusion-Prompt/">Stable Diffusion Prompt</a>
    </h1>

    <div class="post-content">
      <p>
        





        照片质量 Photo Realistic

masterpiece, best quality, hires, intricate details, reflections, photographed on a Canon EOS R5, 50mm lens, F/2.8, HDR, 8k resolution, ray-tracing

Style 风格 


  artbook 原画
 ...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1679587200"
    data-df="YYYY/MM/DD"
    >
  2023/03/24
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            瞎折腾,
            AI
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/chatgpt-web/">Docker部署及反代ChatGPT-WEB</a>
    </h1>

    <div class="post-content">
      <p>
        





        OpenAI官方于2023年3月发布了最新的GPT-3.5 Turbo API,价格实惠,只需1k tokens/$0.002,相当于每输出100万个单词只需花费2.7美元。因此,许多技术高手开始基于ChatGPT API开发自己的项目。本文提供了一个指南,介绍如何在自己的服务器上利用Docker和Nginx Proxy Manager搭建属于自己的ChatGPT网站,从而可以使用ChatG...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1678550400"
    data-df="YYYY/MM/DD"
    >
  2023/03/12
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            瞎折腾,
            AI
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/stable-diffusion-webui/">M1 Mac部署Stable Diffusion WebUI和ControlNet</a>
    </h1>

    <div class="post-content">
      <p>
        





        Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述生成详细图像,它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词​(英语)指导下产生图生图的翻译。详细介绍看维基百科词条Stable Diffusion。

去年刚出的时候搭建门槛很高,对Mac用户极度劝退。后来有大佬开源了stable-diffusion-webui,把搭建难度从地...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1676649600"
    data-df="YYYY/MM/DD"
    >
  2023/02/18
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            瞎折腾,
            AI
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/copilot-for-mac/">如何在Xcode中使用Copilot</a>
    </h1>

    <div class="post-content">
      <p>
        





        Copilot是由OpenAI推出的一项AI语言模型技术,它可以帮助开发人员快速编写代码。Copilot虽然支持Swift代码,但官方支持的IDE并不包含Xcode。Github上有位大佬开源了一款Xcode插件CopilotForXcode实现了在Xcode上使用Copilot。


  该项目还处于早期阶段,后续版本很可能会有比较大的改动,建议读一遍README。


订阅GitHub ...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1675267200"
    data-df="YYYY/MM/DD"
    >
  2023/02/02
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS,
            工具
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/swift-concurrency/">Swift中的并发</a>
    </h1>

    <div class="post-content">
      <p>
        





        并发编程基础

并发编程是一种常见的编程方式,它允许应用程序同时处理多个任务或操作。并发编程在多核处理器和分布式系统中尤为重要,因为它可以更有效地利用资源,并提高应用程序的性能。

在并发编程中,你需要处理共享资源(如内存、文件等)以及多个线程可能同时访问这些资源所带来的竞争条件问题。为了避免这些问题,你需要使用特殊的工具和技术来确保线程安全。

多线程的概念

多线程是指在同一时间内执行多...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1635782400"
    data-df="YYYY/MM/DD"
    >
  2021/11/02
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS,
            Swift
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/SOLID/">设计模式:面向对象设计的六大原则</a>
    </h1>

    <div class="post-content">
      <p>
        





        本文主要讲的是面向对象设计应该遵循的六大原则,掌握这些原则能帮助我们更好的理解面向对象的概念,也能更好的理解设计模式。这六大原则分别是:


  单一职责原则
  开闭原则
  里式替换原则
  接口隔离原则
  依赖倒置原则
  迪米特原则


1. 单一职责原则 (Single Responsibility Principle, SRP)

单一职责原则指一个类应该只有一个引起它变化的原...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1623427200"
    data-df="YYYY/MM/DD"
    >
  2021/06/12
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



  <div class="post-preview">
    <h1>
      <a href="/posts/CocoaPods-for-m1-mac/">M1 Mac非兼容模式安装CocoaPods</a>
    </h1>

    <div class="post-content">
      <p>
        





        Mac系统自带低版本的Ruby,使用gem安装会连锁反应出现大量报错。Big Sur之后的系统Homebrew已经原生支持了arm64架构,使用Homebrew方式安装可以自动管理依赖和Ruby版本问题。

1. 安装Homebrew

/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/...
      </p>
    </div>

    <div class="post-meta text-muted d-flex">
      <div class="mr-auto">

        <!-- posted date -->
        <i class="far fa-calendar fa-fw"></i>
        <!--
  Date format snippet
  See: ${JS_ROOT}/utils/locale-dateime.js
-->





<em class=""
    data-ts="1615478400"
    data-df="YYYY/MM/DD"
    >
  2021/03/12
</em>


        <!-- categories -->
        
          <i class="far fa-folder-open fa-fw"></i>
          <span>
          
            iOS,
            工具
          </span>
        

      </div>

      

    </div> <!-- .post-meta -->

  </div> <!-- .post-review -->



</div> <!-- #post-list -->


  <!--
  The paginator for post list on HomgPage.
-->

<ul class="pagination align-items-center mt-4 pl-lg-2">
  <!-- left arrow -->
  

  <li class="page-item disabled">
    <a class="page-link btn-box-shadow" href="#" aria-label="previous-page">
      <i class="fas fa-angle-left"></i>
    </a>
  </li>

  <!-- page numbers -->
  
  

  

    
    
    
    
    

    

    
      <!-- show number -->
      <li class="page-item  active">
        <a class="page-link btn-box-shadow" href="/">1</a>
      </li>
    

  

    
    
    
    
    

    

    
      <!-- show number -->
      <li class="page-item ">
        <a class="page-link btn-box-shadow" href="/page2">2</a>
      </li>
    

  

    
    
    
    
    

    

    
      <!-- show number -->
      <li class="page-item ">
        <a class="page-link btn-box-shadow" href="/page3">3</a>
      </li>
    

  

    
    
    
    
    

    

    
      <!-- hide number -->
      
        <li class="page-item disabled">
          <span class="page-link btn-box-shadow">...</span>
        </li>
        
      
    

  

    
    
    
    
    

    

    
      <!-- hide number -->
      
    

  

    
    
    
    
    

    

    
      <!-- show number -->
      <li class="page-item ">
        <a class="page-link btn-box-shadow" href="/page6">6</a>
      </li>
    

  

  <!-- mobile pagination -->
  <li class="page-index align-middle">
    <span>1</span>
    <span class="text-muted">/ 6</span>
  </li>

  <!-- right arrow -->
  

  <li class="page-item ">
    <a class="page-link btn-box-shadow" href="/page2" aria-label="next-page">
      <i class="fas fa-angle-right"></i>
    </a>
  </li>

</ul> <!-- .pagination -->



      
    
    

    </div>
  </div> <!-- #core-wrapper -->

  <!-- panel -->
  <div id="panel-wrapper" class="col-xl-3 pl-2 text-muted">

    <div class="access">
      















  <div id="access-lastmod" class="post">
    <div class="panel-heading">最近更新</div>
    <ul class="post-content pl-0 pb-1 ml-1 mt-2">
      
        
        
        
      <li><a href="/posts/copilot-for-mac/">如何在Xcode中使用Copilot</a></li>
      
        
        
        
      <li><a href="/posts/france-is-bacon/">芝士就是力量,法国就是培根。</a></li>
      
        
        
        
      <li><a href="/posts/yahoo-api/">雅虎天气API</a></li>
      
        
        
        
      <li><a href="/posts/UITextField-Responder/">统一管理同一视图控制器中的多个UITextField键盘</a></li>
      
        
        
        
      <li><a href="/posts/vc-skip/">实现视图控制器的无限次跳转</a></li>
      
    </ul>
  </div> <!-- #access-lastmod -->



      















  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
      
        
        

  
    
    
    
    
      
    
  
    
    
    
    
      
        
        

  
    
    
    
    
      
    
  
    
    
    
    
      
    
  
    
    
    
    
      
        
        

  
    
    
    
    
      
    
  
    
    
    
    
      
    
  
    
    
    
    
      
    
  
    
    
    
    
      
        
        



  <div id="access-tags">
    <div class="panel-heading">热门标签</div>
    <div class="d-flex flex-wrap mt-3 mb-1 mr-3">

    
      
      <a class="post-tag" href="/tags/ui/">UI</a>
    
      
      <a class="post-tag" href="/tags/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/">动画效果</a>
    
      
      <a class="post-tag" href="/tags/bug/">bug</a>
    
      
      <a class="post-tag" href="/tags/hugo/">hugo</a>
    
      
      <a class="post-tag" href="/tags/stable-diffusion/">Stable Diffusion</a>
    
      
      <a class="post-tag" href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/">多线程</a>
    
      
      <a class="post-tag" href="/tags/api/">api</a>
    
      
      <a class="post-tag" href="/tags/as/">as</a>
    
      
      <a class="post-tag" href="/tags/async-await/">async/await</a>
    
      
      <a class="post-tag" href="/tags/auto-layout/">Auto Layout</a>
    

    </div>
  </div>


    </div>

    
  </div>

</div>

<!-- tail -->


      </div>

      <!--
  The Search results
-->
<div id="search-result-wrapper" class="d-flex justify-content-center unloaded">
  <div class="col-12 col-sm-11 post-content">
    <div id="search-hints">
      















  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
  
    
    
    
    
      
        
        

  
    
    
    
    
      
        
        

  
    
    
    
    
      
    
  
    
    
    
    
      
        
        

  
    
    
    
    
      
    
  
    
    
    
    
      
    
  
    
    
    
    
      
        
        

  
    
    
    
    
      
    
  
    
    
    
    
      
    
  
    
    
    
    
      
    
  
    
    
    
    
      
        
        



  <div id="access-tags">
    <div class="panel-heading">热门标签</div>
    <div class="d-flex flex-wrap mt-3 mb-1 mr-3">

    
      
      <a class="post-tag" href="/tags/ui/">UI</a>
    
      
      <a class="post-tag" href="/tags/%E5%8A%A8%E7%94%BB%E6%95%88%E6%9E%9C/">动画效果</a>
    
      
      <a class="post-tag" href="/tags/bug/">bug</a>
    
      
      <a class="post-tag" href="/tags/hugo/">hugo</a>
    
      
      <a class="post-tag" href="/tags/stable-diffusion/">Stable Diffusion</a>
    
      
      <a class="post-tag" href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/">多线程</a>
    
      
      <a class="post-tag" href="/tags/api/">api</a>
    
      
      <a class="post-tag" href="/tags/as/">as</a>
    
      
      <a class="post-tag" href="/tags/async-await/">async/await</a>
    
      
      <a class="post-tag" href="/tags/auto-layout/">Auto Layout</a>
    

    </div>
  </div>


    </div>
    <div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div>
  </div>
</div>


    </div> <!-- #main-wrapper -->

    <!-- The Footer -->

<footer>
  <div class="container pl-lg-4 pr-lg-4">
    <div class="d-flex justify-content-between align-items-center text-muted ml-md-3 mr-md-3">
      <div class="footer-left">
        <p class="mb-0">
          © 2024
          <a href="">Ryn</a>.
          
          <span data-toggle="tooltip" data-placement="top"
            title="除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。">保留部分权利。</span>
          
        </p>
      </div>

      <div class="footer-right">
        <p class="mb-0">本站由 <a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a> 生成,采用 <a href="https://github.com/cotes2020/jekyll-theme-chirpy" target="_blank" rel="noopener">Chirpy</a> 主题。
        </p>
      </div>
    </div>
  </div>
</footer>


    

    <div id="mask"></div>

    <a id="back-to-top" href="#" aria-label="back-to-top" class="btn btn-lg btn-box-shadow" role="button">
      <i class="fas fa-angle-up"></i>
    </a>

    
      <div id="notification" class="toast" role="alert" aria-live="assertive" aria-atomic="true"
        data-animation="true" data-autohide="false">
        <div class="toast-header">
          <button type="button" class="ml-2 ml-auto close" data-dismiss="toast" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="toast-body text-center pt-0">
          <p class="pl-2 pr-2 mb-3">发现新版本的内容。</p>
          <button type="button" class="btn btn-primary" aria-label="Update">
            更新
          </button>
        </div>
      </div>
    

    <!--
  Jekyll Simple Search loader
  See: <https://github.com/christian-fei/Simple-Jekyll-Search>
-->





<script src="https://cdn.jsdelivr.net/npm/[email protected]/dest/simple-jekyll-search.min.js"></script>

<script>
SimpleJekyllSearch({
  searchInput: document.getElementById('search-input'),
  resultsContainer: document.getElementById('search-results'),
  json: '/assets/js/data/search.json',
  searchResultTemplate: '<div class="pl-1 pr-1 pl-sm-2 pr-sm-2 pl-lg-4 pr-lg-4 pl-xl-0 pr-xl-0">  <a href="{url}">{title}</a>  <div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1">    {categories}    {tags}  </div>  <p>{snippet}</p></div>',
  noResultsText: '<p class="mt-5">搜索结果为空</p>',
  templateMiddleware: function(prop, value, template) {
    if (prop === 'categories') {
      if (value === '') {
        return `${value}`;
      } else {
        return `<div class="mr-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`;
      }
    }

    if (prop === 'tags') {
      if (value === '') {
        return `${value}`;
      } else {
        return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`;
      }
    }
  }
});
</script>


    <!--
  JS selector for site.
-->

<!-- layout specified -->







  

  

  







  
    

    

  



  
    

    

  



  
    

    

  



  
    

    

  




  <script src="https://cdn.jsdelivr.net/combine/npm/[email protected]/dayjs.min.js,npm/[email protected]/locale/zh.min.js,npm/[email protected]/plugin/relativeTime.min.js,npm/[email protected]/plugin/localizedFormat.min.js"></script>








<script defer src="/assets/js/dist/home.min.js"></script>



<!-- commons -->

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>




  </body>

</html>

                               

Whois info of domain

Domain Name: DEVWL.COM
Registry Domain ID: 2567450769_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.dnspod.cn
Registrar URL: http://www.dnspod.cn
Updated Date: 2021-11-10T07:46:53Z
Creation Date: 2020-10-22T06:04:33Z
Registry Expiry Date: 2025-10-22T06:04:33Z
Registrar: DNSPod, Inc.
Registrar IANA ID: 1697
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +86.4009100100
Domain Status: ok https://icann.org/epp#ok
Name Server: NS3.DNSV2.COM
Name Server: NS4.DNSV2.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2025-04-30T13:16:32Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
NOTICE: The expiration date displayed in this record is the date the
TERMS OF USE: You are not authorized to access or query our Whois
by the following terms of use: You agree that you may use this Data only
to: (1) allow, enable, or otherwise support the transmission of mass