AskCleanAskClean

איך לנקות בבטחה את המטמון של Swift Package Manager

צוות AskClean · עודכן 2026-07-31

השתמשו ב-swift package clean עבור תוצרי הבנייה של החבילה הנוכחית, ב-reset לאיפוס כל מצבה המקומי וב-swift package purge-cache רק למטמון המאגרים הגלובלי. שמרו את Package.swift ואת Package.resolved: הם מגדירים תלויות ואינם מטמון חד-פעמי.

תרשים dependencies של Swift מופרד משכבות מטמון כפולות
נקו תחילה תוצרים מקומיים של החבילה ובצעו purge להורדות משותפות רק כשהן הגורם.

ל-SwiftPM יש כמה שכבות

חבילת שורת פקודה שומרת עותקי checkout ותוצרים ב-.build, ואילו SwiftPM מחזיק מטמון מאגרים משותף. Xcode עשוי לשמור תוצרי חבילות ב-DerivedData של הפרויקט. נקו את השכבה המצומצמת ביותר שמסבירה את הבעיה.

בחרו פקודה לפי הטווח

הפקודה swift package clean מוחקת את תוצרי הבנייה של החבילה הנוכחית. הפקודה reset רחבה יותר ומכינה מחדש את המצב המקומי. הפקודה purge-cache משפיעה על הורדות שמשותפות לכמה פרויקטים, ולכן הפתרון הבא עשוי לדרוש רשת וזמן נוסף.

  1. שמרו שינויים וודאו שקיימים Package.swift ו-Package.resolved.
  2. הריצו swift package clean משורש החבילה ובנו שוב.
  3. השתמשו ב-swift package reset רק אם המצב המקומי עדיין פגום.
  4. השתמשו ב-swift package purge-cache רק אחרי אימות בעיה במטמון המשותף.
  5. בדקו תלויות ובדיקות אחרי הניקוי.

הריצו swift package --help; פקודות המשנה הזמינות תלויות בגרסת Swift המותקנת.

שמרו קובצי resolution

Package.resolved מתעד גרסאות מסוימות. מחיקתו עלולה לבחור גרסאות מותרות אחרות ולהפוך ניקוי לעדכון. Package.swift, Sources, Tests, תוספים ותלויות מקומיות הם קוד מקור, לא מטמון.

טפלו ב-Xcode בנפרד

לבעיה שמופיעה רק ב-Xcode נסו File > Packages > Reset Package Caches ו-Resolve Package Versions או מחקו את DerivedData של אותו פרויקט. מדדו תיקיות .build לפני purge גלובלי. AskClean מוצא את הקטגוריה, אך פקודות Swift קובעות את הטווח.

שאלות נפוצות

מה מוחקת swift package clean?

את תוצרי הבנייה של החבילה הנוכחית; ה-build הבא ייצור אותם מחדש.

האם reset ו-purge-cache זהות?

לא. reset מכוונת לחבילה הנוכחית, ו-purge-cache למטמון ה-repository הגלובלי.

האם למחוק Package.resolved?

לא בניקוי רגיל. מחקו רק אם אתם רוצים בכוונה resolution חדש של גרסאות.

מקורות

מדריכים נוספים לאחסון של מפתחים