רשימות נכסים הן בעצם קובצי XML עם סיומת .plist. הנה איך לערוך אותם באמצעות שורת הפקודה ב-macOSאפליקציית טרמינל.
XMLהוא פורמט נתונים פתוח שזכה לפופולריות באמצע שנות ה-90, כאשר האינטרנט הפך למסחור לראשונה. זהו פורמט מבוסס טקסט המשתמש בצמדי מפתח/ערך לאחסון נתונים. מפתחות מספקים תוויות נתונים, וערכים מאחסנים את הנתונים הקשורים לכל מפתח.
סוגי נתונים ב-XML כוללים בוליאניות (true/false), מספרים, תאריכים, מחרוזות (טקסט), מערכים, מילונים ונתונים רגילים. מילון הוא רק טבלת ערכים מאגדת גם עם סט מפתחות משלו - אחד עבור כל פריט נתונים.
על ידי שילוב והטמעה של סוגי נתונים אלה בקובץ XML, אתה יכול לאחסן מגוון של נתונים מקוננים כמעט לכל דבר. בעוד ש-XML מאוחסן בדרך כלל כטקסט רגיל, הוא גם הפך לסטנדרט אחד להחלפת נתוני מידע ברחבי האינטרנט - למרות שכיום הוא הוחלף בעיקר על ידי JSON (Javascript Object Notation), שהוא דומה במקצת.
XML בפלטפורמות של אפל
כאשר הגרסה הראשונה של Mac OS X נשלחה בשנת 2000, אפל הבהירה שהיא מאמצת XML כפורמט קובץ עבור רובמקמַעֲרֶכֶת הַפעָלָה. אפל משתמשת בפורמט קובץ מקורי שנקרארשימות נכסים(.plist) שהוא XML רגיל עם מידע מותאם אישית של כותרת Apple XML בחלק העליון של כל קובץ.
ייתכן שראית קבצי .plist בתיקיות העדפות macOS שלך ב-/Library/Preferences, או ~/Library/Preferences. אלו הם קובצי XML פשוטים המכילים רשימות של נתוני XML שניתן לקרוא על ידי אפליקציות או macOS עצמה כדי לאחסן העדפות.
לדוגמה, קובץ ההגדרות של macOS Finder נמצא בתיקייה Preferences ושמוcom.apple.Finder.plist. רוב קובצי ההגדרות של .plist משתמשים בצורה זו של סימון DNS הפוך: הרכיב השני בשם הקובץ מזהה את החברה שמייצרת את התוכנה, לאחר מכן את שם האפליקציה ולאחר מכן את סיומת ה-.plist.
אתה יכול לפתוח קובץ .plist באפליקציית TextEdit של אפל כדי לקרוא אותו כטקסט גולמי, או שאתה יכול לפתוח אותו ב-IDE למפתחים של אפל,Xcode- או ברוב כל אפליקציית עורך טקסט רגיל אחרת.
ל-Xcode תכונת עיצוב מיוחדת המציגה קובץ .plist כעורך טבלה כאשר כל סוג נתונים בשורה מכיל את סוג הנתונים והמפתח שלו. על ידי לחיצה על תפריט קופץ ליד כל פריט בטבלה, תוכל לשנות את סוגו לכל סוג פורמט ידוע.
נתוני .plist מסוגים גנריים, לא ידועים או אטומים מטופלים כגוש נתונים - או במקרה של פלטפורמת אפל שמתכנתת סוג נתונים שלData
(במָהִיר), אוNSData
ב-Objective-C.
אפליקציות גם מאגדות קבצי Plist ב-macOS, iOS,iPadOS, וwatchOSגם לתאר אפליקציות וגם לאחסן תוכן. הקובץ Info.plist, למשל, מתאר כל אפליקציה והיכולות שלה למערכת ההפעלה.
ישנם ממשקי API של מערכת במערכות ההפעלה של אפל לשינוי והסדרה של XML ו-.plists לפורמטים אחרים של נתונים וממנו.
עריכת רשימות נכסים
כאמור, אתה יכול לערוך קבצי .plist ישירות על ידי פתיחתם בעורך טקסט רגיל, או ב-Xcode.
אם תפתח קובץ .plist ב-TextEdit למשל, תראה XML לא מעוצב עם תגים. כדי לשנות את הנתונים של קובץ .plist בעורך טקסט, תצטרך להבין תגי XML וכיצד הם פועלים. תגי XML דומים מאוד לתגי HTML.
ב-Xcode אתה יכול פשוט לפתוח קובץ .plist, או להוסיף אותו לחלון פרוייקט Xcode ואז ללחוץ עליו בלחיצה אחת ב-Project Navigator בצד שמאל. זה מציג את התוכן של .plist בחלונית מימין:
עריכת קובץ .plist ב-Xcode של אפל.
החלון שלמעלה מציג את קובץ version.plist עבור אפליקציית השחמט של אפל: כל שורה היא פריט נתונים אחד, המפתחות לכל פריט מופיעים בעמודה השמאלית, כל סוג נתונים מוצג בעמודה המרכזית, וערך כל מפתח בעמודה על הימין.
כדי לשנות את הנתונים של קובץ .plist ב-Xcode, לחץ לחיצה אחת על נתוני שורה אחת או הקש והקלד מידע חדש, או לחץ על התפריט המוקפץ הקטן בעמודה המרכזית בשורה כדי לשנות את סוגו. בתפריט הקופץ הידוע בלבד, מפורטים סוגי הנתונים המותרים של .plist.
לאחר שתבצע את כל השינויים שאתה רוצה, פשוטקובץ->שמורקובץ ה-.plist (או הקשCommand-Sבמקלדת שלך).
יתרון עצום אחד ל-XML הוא שאתה יכול לערוך את הקבצים בכל פלטפורמה, לשמור אותם ואז להעתיק אותם בין מחשבים מבלי להמיר אותם. תוֹכנָהלוקליזציהלעתים קרובות נעשה כך - עם מחרוזות של טקסט המאוחסנות בקבצי .strings לתרגום בין שפות. קובצי מחרוזות מכילים גם XML סטנדרטי באמצעות צמדי מפתח/ערך.
קבצי InfoPlist.strings המצורפים בתוך אפליקציות מכילים גרסאות מקומיות של מחרוזות שנמצאו במידע התיאורי לזיהוי אפליקציה. זה הטקסט שמופיע, למשל כשאתה עושה אקובץ->קבל מידעבאפליקציה ב-Finder.
לאחרונה, קובץ version.plist המצורף בתוך כל אפליקציה עשוי להכיל את פרטי הגירסה של האפליקציה המאוחסנים בפורמט XML באמצעות מקשי Apple כגוןCFBundleVersion
וCFBundleShortVersionString
.
לאפל יש סעיף בתיעוד המפתחיםדניםמידע על רשימות נכסים.
יש גם אמידע רשימת נכסים הפניה למפתחות- למרות שזה בן עשרות שנים ומפתחות רשימת הנכסים שהוזכרו אינם שלמים.
הקידומת "CF" במפתחות .plist של Apple מייצגתקרן ליבה- API מבוסס C המשמש לתמרן סוגי נתונים בסיסיים ו-.plists בפלטפורמות של Apple.
קבצי מחרוזות בפיתוח פלטפורמת אפל
בפיתוח Apple, מחרוזות מאוחסנות לרוב בקובץ .strings או בטבלת מחרוזות לצורך לוקליזציה. מפתחים יכולים לבצע מיקור חוץ של קבצי המחרוזות שלהם לצורך לוקליזציה לחברות תרגום, כך שלא יצטרכו לבצע את התרגום.
אם תסתכל בתוך החבילה (תיקיה) של אפליקציה, ייתכן שתראה כמה קבצי .strings המאוחסנים בתיקיות שפה, כאשר כל תיקיה מסתיימת ב-".lproj" ועם קידומת של שני תווים בתקן ISO לשם המדינה. על ידי שכפול ושינוי התוכן של כל גרסה של קבצי מחרוזות, מפתחים יכולים להוסיף שפות חדשות לממשקי אפליקציות מבלי לדעת את השפות.
macOS וiOSהם חכמים מספיק כדי לטעון את קובץ המחרוזות או הטבלה המקומית הנכונים עבור השפה הנוכחית בשימוש במכשיר Apple.
על ידי שימוש במחרוזות נפרדות ובקבצי .plist, ניתן לשנות את ממשק המשתמש של אפליקציה בזמן ריצה או מאוחר יותר - ללא צורך להדר את הטקסט לקוד הבינארי של האפליקציה. זה ידוע בשםטעינה דינמית.
זו הסיבה שאתה יכול לשנות את שפת המערכת בהגדרות במכשיר אפל ולבקש מאותה אפליקציה לעדכן את טקסט ממשק המשתמש שלה עבור השפה החדשה שנבחרה. במערכות הפעלה ישנות יותר, ספקים היו צריכים לשלוח גרסאות נפרדות של אפליקציה ספציפית לשפה עבור כל מדינה או שפה.
טעינה דינמית מפחיתה גם את טביעת הזיכרון של אפליקציה בזמן ריצה מכיוון שהמחרוזות אינן נטענות לזיכרון עד שהן בשימוש בפועל.
תוכל ללמוד עוד על פורמטי .plist וסוגי CF בטרמינל על ידי הקלדת "man plist".
עריכת רשימות נכסים בטרמינל
macOS כולל אפליקציית (UNIX) Terminal (מעטפת) המאפשרת לך להנפיק פקודות בשורת הפקודה לביצוע פעולות. אחד השימושים החזקים ביותר בטרמינל הוא עיבוד אצווה וכתיבת סקריפטים לאוטומציה של תהליכים.
פקודות טרמינל רבות כוללות-r
דגל (רקורסיבי) כדי לומר לפקודה להמשיך ולעבד את כל הקבצים שהיא מוצאת בתיקייה נתונה, לא משנה עד כמה קבצים אלה עשויים להיות מקוננים.
אתה יכול להשתמש ב-Terminal לעיבוד ידני ואוטומטי של קבצי .plist ו-.strings לעריכה מהירה יותר.
זה יכול לחסוך זמן, למשל אם יש לך אצווה של קבצים למספר שפות וברצונך להחליף את כל הערכים שלהם בטקסט מקומי חדש מטבלאות שפות או קלט אחר. לחלופין, ייתכן שתרצה לשנות את כל המפתחות עבור פריט מסוים בקבוצת קבצים בבת אחת מבלי שתצטרך לערוך כל קובץ באופן ידני.
לא ניכנס לאוטומציה של סקריפטים של מעטפת במאמר זה, אך ישנם ספרים רבים וטוביםהדרכות מקוונותלכתיבת סקריפטים של מעטפת לעיבוד אצווה.
OS X היה מגיע בקופסאות
עריכת רשימת נכסים בטרמינל באופן ידני
כדי לערוך קובץ .plist בטרמינל, השתמש בקובץ המובנהdefaults
פְּקוּדָה.defaults
מאפשר לך לערוך ולהציג קבצי .plist, כמו גם להגדיר הגדרות מערכת עבור קבצי .plist ידועים של מערכת ההפעלה באמצעות שמות.
לשימוש מלא בdefaults
פקודות, בסוג מסוף:
man defaults
ולחץלַחֲזוֹרבמקלדת שלך.
כדי לצאת ממערכת האיש בטרמינל לחץControl-Z.
האפשרות העיקרית לdefaults
כדי לשנות ערך בקובץ .plist קיים הואwrite
אפשרות ואחריה הנתונים החדשים שייכתבו.
כפי שמזכיר דף האיש, הנתונים החדשים חייבים להיות בפורמט מסוים (בדרך כלל אחר .plist או מילון) וחייבים להכיל את המפתחות והערכים שייכתבו. הפורמט של נתונים אלה חייב להיות מדויק, אחרת הפקודה עלולה להיכשל או שנתוני הקובץ עלולים להיפגם.
לדוגמה, דף האיש מדגים שינוי של מערך ב-.plist בעל השם "צבע ברירת מחדל" לערך חדש של (255,0,0). לשם כך תשתמש בפקודה:
defaults write com.companyname.appname "Default Color" '(255, 0, 0)'
כאשר "appname" הוא שם האפליקציה עבור החברה "companyname".
אתה יכול גם להחליף ערכים קיימים ב-.plist עם .plist אחר. לְדוּגמָה:
defaults write com.companyname.appname '{ "Default Color" = (255, 0, 0); "Default Font" = Helvetica; }';
בדוגמה זו נתוני ה-.plist החדשים מוקפים בסוגריים מסולסלים, ומכילים שני זוגות מפתח/ערך: "צבע ברירת מחדל" ו"גופן ברירת מחדל".
היזהר בעת כתיבה לקבצי הגדרות קיימים מכיוון שאם אתה משחית את הנתונים בקובץ .plist המשמש את macOS, ייתכן שה-Mac שלך יפסיק לפעול כהלכה.
יש גםdelete
אפשרויות עבורdefaults
, אבל שימו לבdelete
מסוכן אפילו יותר מהwrite
אוֹפְּצִיָה. חלק מהdelete
אפשרויות הורסים נתונים - ואף יכולים למחוקכֹּלנתונים בדומיין עם פקודה אחת.
אתה יכול להדפיס רשימה של כל הדומיינים ב-Mac שלך באמצעות ה-domains
אוֹפְּצִיָה:
defaults domains
תוכל ללמוד עוד על פורמטים של .plist בטרמינל על ידי הקלדת "man plist".
עריכת קובץ רשימת נכסים מחוץ לתחום הגדרות
כדי לערוך כל קובץ .plist שרירותי שנמצא בכל מיקום שניתן לכתיבה במערכת הקבצים, השתמש ב-filepath
אוֹפְּצִיָה. זה מאפשר לך לערוך .plist באותו אופן שעשית לעיל עבור קובצי הגדרות, אבל עבור כל קובץ .plist בכל נתיב נתון.filepath
עובד גם עםread
פְּקוּדָה.
לְדוּגמָה:
defaults read ~/Library/Containers/com.apple.TextEdit/Data/Library/Preferences/com.apple.TextEdit.plist
קורא את קובץ ההגדרות של אפליקציית TextEdit שנמצא בתיקיית הספרייה של המשתמש.
אבל הfilepath
אפשרות עובדת עבורכֹּלקובץ .plist - לא רק עבור קבצי הגדרות או קבצים השייכים לאפליקציות.
על ידי כתיבה ושילובdefaults
פקודות לתוך קובץ סקריפט אוטומטי, תוכל לראות כמה קל יהיה לעבד קבצי .plist באצווה בלי יותר מדי מאמץ.
למעשה, הרבה תוכנת אפל של צד שלישי בנויה כך: בדרך כלל מהנדס בנייה כותב סקריפטים אוטומציה כדי לאחזר בסיס קוד משרת, מעבד קבצי .plist ו-strings מקומיים באצווה, ואז מריץ קבצי בנייה על כל רכיבי התוכנה. Builds מעובדים בדרך כלל לאחר מכן באמצעות סט אחר של קבצי סקריפטים כדי להרכיב את התוכנה הסופית לשחרור.
הdefaults
לפקודה יש גם אפשרויות להוספה או החלפה של סוגים ספציפיים של נתונים לקובץ .plist.
מערכת ברירת המחדל קיימת ב-macOS, Mac OS X ו-iOS במשך עשרות שנים ולמעשה הייתה אחת הטכנולוגיות המקוריות בשימוש ב-NeXTStep - המקשרת לרוב מערכות ההפעלה של אפל כיום.
לאחר שתשלוט במערכת ברירת המחדל, תמצא את עצמך משתמש בה רבות כדי לבדוק ולשנות את הגדרות macOS ולערוך קבצי .plist. רק ודא שאתה נוח ובטוח לעשות זאת לפני שאתה משתמש בו.
לאפל יש קטע קצר במדריך למשתמש של טרמינלהמתאר כיצד להשתמש במערכת ברירת המחדל כדי לערוך קבצי .plist והגדרות.
אם אתה משתמש במחשב Windows, בדוק את כלי עריכת ה-XML המגניבים באמת שנוצרו על ידיאלטובה.