Xcode 下载模拟器报错 Could not download iOS 17.4 Simulator (21E213).

刚升级了 Xcode 15.3,死活无法下载模拟器,也就无法编译代码:

image-20240415下午22232752

太恼人了,我觉得问题的关键在于无法断点续传,每次都下载了好几个G就断了。

image-20240415下午14837455

姑且按照官网的教程:Installing and managing Simulator runtimes,就是开发者官网的这个文章层级:

Documentation / Xcode / Devices and Simulator / Installing and managing Simulator runtimes

执行如下命令,用命令行下载:

sudo xcode-select -s /Applications/Xcode.app
xcodebuild -runFirstLaunch
xcodebuild -downloadAllPlatforms
# xcodebuild -downloadPlatform iOS

image-20240415下午14901189

等得焦急:

image-20240415下午20011254

它报错了,说我磁盘空间不够!之前下载失败,原来是这个原因啊,再回去看截图,确实报了这个报错,当时也没有仔细看。还是命令行童叟无欺:

image-20240415下午20356998

弄清楚原因了就简单了,清理之后再下载一次。

不容易:

image-20240415下午24011475

image-20240415下午23955946

不过看到最后,该断还是断,我从watchOS 、tvOS 到 visionOS 全都是网络断开。不过没所谓了,iOS ok已经可以先用着了。

image-20240415下午34537571

ps: 找到临时目录,刚才下载到一半的在这个位置,可以手动删掉,重启后也会自动删除:

/private/var/folders/sl/j0g8fv0d5h97tc_xxsy3fkyr0000gn/T

image-20240415下午40555976


xcode 清理存储空间

编译用的 Mac 存储已经不堪重负。这一篇整理一下清理内容。

  1. DerivedData 目录:全部清除

    Xcode的缓存文件,曾经在Xcode跑过的所有项目的索引、build的信息等都会保存在这里。删除后在下次打开项目编译的时候将会重新生成。

     ~/Library/Developer/Xcode/DerivedData
    
  2. iOS设备符号表目录:按需删除

    当插入一个新版本的 iOS 设备时,Xcode都会将该设备对应系统的符号表download下来,插入设备的版本越多,数据量越大。连接设备会重新生成。

     ~/Library/Developer/Xcode/iOS DeviceSupport
    
  3. 模拟器支持:按需删除不需要的模拟器

     ~/Library/Application Support/iPhone Simulator/
    
  4. 设备日志:全部删除

     ~/Library/Application Support/iOS Device Logs/
    
  5. Archives 产出目录:按需删除

    删除之后 Xcode->Organizer 下的那些打包文件就全被清空了。

    每次打包 App 的 dSYM 等数据就保存在这里,把一些没用的版本删了。如果是上线了的版本就保留。

     ~/Library/Developer/Xcode/Archives
     ~/Library/Developer/Xcode/Products
    
  6. 模拟器的数据/缓存数据: 全部删除

    ~/Library/Developer/CoreSimulator/Devices/
    ~/Library/Developer/CoreSimulator/Caches/
    

    每个文件夹里包含的就是一个特定系统版本的设备的数据。

    每个文件夹对应哪个设备可以在其下device.plist中查看。

  7. 旧版本的模拟器支持:按需删除

    不需要的就删除了

    ~/Library/Developer/CoreSimulator/Profiles/Runtimes/
    
  8. playground的项目缓存: 全部删除

    ~/Library/Developer/XCPGDevices/
    

苹果手机无法连接 App Store

一台搁置多年的iPhone 6s用来测试,iOS 11,发现死活无法登录 app store,显示 无法连接到App Store

img

要知道,我主要是想下载 testflight ,连app store 都无法连接,就真没戏了。(虽然后续才意识到,iOS版本低于14同样无法下载)

我做了以下几个步骤,最后可以访问 app store 了。

  1. 清除 App Store 缓存

    “设置”-“Safari”-“清除历史记录与网站数据”

  2. 重启手机

  3. 使用数据线连接MacBook

然后神奇的就可以访问app store了。


在 laravel 的错误日志中记录 IP

缘起是这种日志:

image-20240310上午92427013

一般来说这种日志在 nginx 上很常见,但穿透到 nginx 到实际的应用里,已经说明是有针对性的攻击行为了,需要记录在案。先把 IP 记录下来。

要在 Laravel 中的错误日志中打印客户端 IP,你可以使用 Laravel 的异常处理机制:

  1. 打开 app/Exceptions/Handler.php 文件。

  2. 导入 Illuminate\Http\Request 类。

    use Illuminate\Http\Request;
    
  3. 使用 PHP 默认的 $__SERVER 字段获取远端IP:

    image-20240310上午92905943

  4. 也可以用 request() 方法 :

    public function report(Exception $exception)
    {
        if ($this->shouldReport($exception)) {
            $this->logClientIP($exception, request());
        }
       
        parent::report($exception);
    }
    protected function logClientIP(Exception $exception, Request $request)
    {
        $ip = $request->ip();
        $message = $exception->getMessage();
        $trace = $exception->getTraceAsString();
        $log = "IP: $ip\nMessage: $message\nTrace: $trace";
       
        \Log::error($log);
    }
    

Mac 配置 minio 客户端 mc 命令行

参考 minio 官方文档 MinIO Client

  1. 安装

    brew install minio/stable/mc
    mc --help
    
  2. 配置 minio-server 信息

    mc alias set myminio https://minioserver.example.net ACCESS_KEY SECRET KEY
    
  3. 测试链接

    mc admin info myminio
    

    image-20240301上午110413014

  4. 拷贝

    mc cp "$IMAGE" "myminio/${IMAGE}"
    
  5. Quick Reference

    常用命令

    ``` mc alias list mc alias set

    mc cp mc du mc find mc ls mc rm

mc ls myminio # 查看文件 ```