Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "check_circular.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "checkbox_active.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "checkbox_default.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "chevron_left.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "chevron_right.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Comment on lines +1 to +12
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find the SVG file referenced in the Contents.json
find . -path "*cherrishIcon/chevron_right.imageset*" -type f

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 261


🏁 Script executed:

#!/bin/bash
# List all files in the imageset directory
ls -la Cherrish-iOS/Cherrish-iOS/Assets.xcassets/cherrishIcon/chevron_right.imageset/ 2>/dev/null || echo "Directory not found or does not exist"

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 310


🌐 Web query:

Xcode asset catalog "preserves-vector-representation" property SVG iOS

💡 Result:

Short answer

  • The asset-catalog boolean property preserves-vector-representation (Contents.json / "Preserve Vector Data" in the Attributes inspector) causes Xcode to keep the original vector file in the built app so iOS can render it at arbitrary sizes at runtime. [1][2]

Practical notes for SVGs in Xcode

  • Xcode 12+ supports SVG assets. Add an SVG to an imageset, set Scales = Single Scale, and enable "Preserve Vector Data" if you want the original vector shipped and used at runtime; otherwise Xcode will rasterize (produce PNGs) at build time. [2][3]
  • Historically Apple’s docs mention the preserves-vector-representation key specifically for PDF assets, but the same preserve-vector behavior applies to SVGs in modern Xcode versions. When enabled the vector data is included in the bundle; when disabled Xcode pre-renders bitmap @1x/@2x/@3x assets. [1][2][3]

If you want, I can show the exact Contents.json snippet or the steps in Xcode to set Scales + Preserve Vector Data.


🏁 Script executed:

#!/bin/bash
# Check other Contents.json files in cherrishIcon for preserves-vector-representation usage
grep -r "preserves-vector-representation" Cherrish-iOS/Cherrish-iOS/Assets.xcassets/cherrishIcon/ 2>/dev/null || echo "Property not found in any current files"

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 109


🏁 Script executed:

#!/bin/bash
# List all Contents.json files in cherrishIcon
find Cherrish-iOS/Cherrish-iOS/Assets.xcassets/cherrishIcon/ -name "Contents.json" -type f | head -5

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 511


🏁 Script executed:

#!/bin/bash
# Check content of the SVG file
cat Cherrish-iOS/Cherrish-iOS/Assets.xcassets/cherrishIcon/chevron_right.imageset/chevron_right.svg

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 800


SVG 벡터 보존 속성 추가 권장

참조된 chevron_right.svg 파일은 imageset 디렉토리에 정상적으로 존재합니다. 다만, SVG의 벡터 데이터를 보존하려면 "preserves-vector-representation" 속성 추가를 권장합니다. 이 속성이 없으면 Xcode가 빌드 시점에 SVG를 래스터화하여 PNG로 변환하게 됩니다.

다음과 같이 수정하세요:

권장 설정
 {
   "images" : [
     {
       "filename" : "chevron_right.svg",
       "idiom" : "universal"
     }
   ],
   "info" : {
     "author" : "xcode",
     "version" : 1
-  }
+  },
+  "properties" : {
+    "preserves-vector-representation" : true
+  }
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"images" : [
{
"filename" : "chevron_right.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "chevron_right.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
}
🤖 Prompt for AI Agents
In
@Cherrish-iOS/Cherrish-iOS/Assets.xcassets/cherrishIcon/chevron_right.imageset/Contents.json
around lines 1 - 12, Contents.json for the chevron_right.imageset is missing the
"preserves-vector-representation" flag, so Xcode may rasterize chevron_right.svg
at build time; update the Contents.json inside chevron_right.imageset to add
"preserves-vector-representation" : true (at the same level as
"filename"/"idiom" in the images entry or as a top-level imageset property) so
the SVG vector representation is preserved during builds.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "clock.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "close.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "deletebox.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "info.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "plus.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "radiobtn_default.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "radiobtn_selected.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "return.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "search.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "sun.svg",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Comment on lines +1 to +12
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# 설명: PR에 포함된 모든 아이콘 자산의 완전성 검증

# cherrishIcon 하위의 모든 imageset 개수 세기
icon_count=$(find . -path "*/Assets.xcassets/cherrishIcon/*.imageset" -type d 2>/dev/null | wc -l)
echo "추가된 imageset 개수: $icon_count"

# PR 설명상 16개인지 확인
if [ "$icon_count" -eq 16 ]; then
  echo "✅ 16개의 아이콘이 모두 추가되었습니다."
else
  echo "⚠️  경고: $icon_count개의 아이콘만 발견되었습니다. (예상: 16개)"
fi

# 찾은 모든 imageset 나열
echo -e "\n=== 발견된 imageset 목록 ==="
find . -path "*/Assets.xcassets/cherrishIcon/*.imageset" -type d 2>/dev/null | sort

# Contents.json과 SVG 파일의 매칭 확인
echo -e "\n=== SVG 파일과 Contents.json 매칭 검증 ==="
mismatches=0
for imageset_dir in $(find . -path "*/Assets.xcassets/cherrishIcon/*.imageset" -type d 2>/dev/null | sort); do
  icon_name=$(basename "$imageset_dir" .imageset)
  contents_file="$imageset_dir/Contents.json"
  
  if [ -f "$contents_file" ]; then
    # Contents.json에서 filename 추출
    filename=$(grep -o '"filename"[[:space:]]*:[[:space:]]*"[^"]*"' "$contents_file" | cut -d'"' -f4)
    expected_filename="${icon_name}.svg"
    
    if [ "$filename" != "$expected_filename" ]; then
      echo "❌ 불일치: $icon_name (Contents.json: $filename, 예상: $expected_filename)"
      ((mismatches++))
    else
      echo "$icon_name: Contents.json filename 일치"
    fi
  else
    echo "❌ Contents.json 누락: $icon_name"
    ((mismatches++))
  fi
done

if [ "$mismatches" -eq 0 ]; then
  echo -e "\n✅ 모든 파일명이 일치합니다."
else
  echo -e "\n⚠️  $mismatches개의 불일치가 발견되었습니다."
fi

# 각 imageset 내 SVG 파일 확인
echo -e "\n=== 각 imageset 내 SVG 파일 검증 ==="
svg_mismatches=0
for imageset_dir in $(find . -path "*/Assets.xcassets/cherrishIcon/*.imageset" -type d 2>/dev/null | sort); do
  icon_name=$(basename "$imageset_dir" .imageset)
  expected_svg="${imageset_dir}/${icon_name}.svg"
  
  if [ ! -f "$expected_svg" ]; then
    echo "❌ SVG 파일 누락: $expected_svg"
    ((svg_mismatches++))
  else
    echo "✅ SVG 파일 존재: $icon_name"
  fi
done

if [ "$svg_mismatches" -eq 0 ]; then
  echo -e "\n✅ 모든 SVG 파일이 존재합니다."
else
  echo -e "\n⚠️  $svg_mismatches개의 SVG 파일이 누락되었습니다."
fi

Repository: TEAM-Cherrish/Cherrish-iOS

Length of output: 2360


16개 아이콘 중 15개만 추가되었습니다. 누락된 아이콘 확인 필요

PR 설명에서 16개의 아이콘 자산이 추가될 예정이었으나, 현재 다음 15개만 발견되었습니다:
check_circular, checkbox_active, checkbox_default, chevron_left, chevron_right, clock, close, deletebox, info, plus, radiobtn_default, radiobtn_selected, return, search, sun

다행히 추가된 15개 아이콘은 모두 일관된 xcassets 메타데이터 구조를 따르고 있으며, 각 Contents.json의 filename 필드와 SVG 파일명이 정확히 일치합니다. 다만 다음을 확인하세요:

  • 누락된 1개 아이콘이 의도적으로 제외된 것인지
  • 아니면 추가되어야 할 아이콘이 누락되었는지

PR 설명을 업데이트하거나 누락된 아이콘을 추가해주세요.

🤖 Prompt for AI Agents
In
@Cherrish-iOS/Cherrish-iOS/Assets.xcassets/cherrishIcon/sun.imageset/Contents.json
around lines 1 - 12, The PR claims 16 icons were added but only 15 assets are
present; confirm whether the missing "check_circular" icon was intentionally
excluded and if not, add its asset bundle (create a check_circular.imageset with
a Contents.json whose "filename" matches the check_circular.svg and
"idiom":"universal", following the same metadata structure as the other
imagesets such as sun.imageset/Contents.json), then update the PR description to
reflect the actual count or note intentional omission.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.