יומן השינויים המלא של iOS 7 Gold Master זמין כעת

אתם מכירים את התרגיל: אפל שחררה זה עתה את ה-iOS 7 Gold Master build למפתחים וזהו הסופי בניית תוכנת iOS 7 של אפל זהה לגרסה שתהיה זמינה לציבור הבא שָׁבוּעַ. iOS 7 GM תואם לאייפון 5, אייפון 4S, אייפון 4, אייפד (דור שלישי ורביעי), אייפד מיני ו דגמי iPod touch (דור רביעי וחמישי), וקבצי ההורדה של מערכת ההפעלה זמינים כעת אצל המפתחים של אפל שַׁעַר. יחד איתם, כמו תמיד, יומן השינויים של אפל עבור המהדורה האחרונה הזו, עותק שלו נמסר זה עתה ל-BGR. iOS 7 GM תהיה הגרסה האחרונה של iOS שאינה ציבורית של אפל, לפני שה-iOS 7 יהפוך זמין לציבור בשבוע הבא לקראת השקות ה-iPhone 5S וה-iPhone 5C. יומן השינויים המלא של iOS 7 GM מופיע להלן.

טק. בידור. מַדָע. תיבת הדואר הנכנס שלך.

הירשם לחדשות הטכנולוגיה והבידור המעניינות ביותר שיש.

בהרשמה אני מסכים ל תנאי שימוש וסקרו את הודעת פרטיות.

הערות ובעיות ידועות

הבעיות הבאות קשורות לשימוש ב-iOS SDK 7.0 לפיתוח קוד.

פנקס הכתובות

הערות

השיעורים ב AddressBookUI המסגרת אוסרת כעת במפורש סיווג משנה. עבור אפליקציות המקושרות ל- iOS 7 SDK, ניסיון לאתחל תת-מחלקה של אחת מהמחלקות הללו מחזיר אפס. עבור אפליקציות המקושרות מול ערכות SDK ישנות יותר, שינוי ההתנהגות היחיד הוא אזהרה שנרשמה למסוף.

AirDrop

הערות

  • התמיכה באנשי קשר בלבד דורשת כי:
    • אתה מחובר ל-iCloud.
    • לשולח ולמקבל יש את כתובות האימייל של Apple ID זה ב-'אנשי קשר' במכשירים שלהם.

פריסת אפליקציה

הערות

משווה [[[UIDevice currentDevice] identifierForVendor] UUIDString] על מספר אפליקציות Enterprise או אפליקציות המותקנות באמצעות Xcode (לא ה-App Store), כאשר מזהי ה-bundleID שונים רק ברכיב האחרון, יגרמו למחרוזות זהות. אם ל-bundleID יש 3 רכיבים או פחות, התנהגות זו אינה משתנה מ-iOS 6.

זה נובע משינוי בהתנהגות בין iOS 6 ל-iOS 7 שבו -[UIDevice identifierForVendor] לוקח בחשבון את ה-bundleID אם אין מזהה ספק. מזהה ספק מוקצה רק לאפליקציות ב-App Store.

קרן AV

הערות

  • AVCaptureSession משתמש כעת באפליקציה שלך AVAudioSession כברירת מחדל.
  • +[AVPlayer playerWithPlayerItem:] מחזירה an AVPlayer אובייקט, אך הפריט הנוכחי יחזיר אפס אם הנגן נוצר על שרשור אחר.

אנשי קשר

בעיה ידועה

אם יצרת ימי הולדת באמצעות גרסת בטא של iOS 7, ייתכן שפרטי יום ההולדת נשמרו בצורה שגויה. כדי לתקן יום הולדת שכזה שמוצג בצורה לא נכונה, ערוך את איש הקשר ושנה את התאריך.

אנימציית ליבה

הערות

כאשר UIViewGroupOpacity המפתח אינו קיים, ערך ברירת המחדל הוא כעת YES. ברירת המחדל הייתה בעבר NO.

המשמעות היא שתצוגות משנה של תצוגה שקופה יורכבו תחילה על אותה תצוגה שקופה, ולאחר מכן תת העץ המורכב מראש יצויר בשלמותו על הרקע. הגדרת NO גורמת לשילוב פחות יקר, אך גם פחות מדויק: כל תצוגה בתת-עץ השקוף מורכב על מה שמתחתיו, לפי האטימות של ההורה, באלגוריתם של הצייר הרגיל להזמין.

קרן

הערות

  • א NSMetadataQuery עם היקף בכל מקום יכול כעת להשתמש kMDItemContentTypeTree בפרדיקטים. לדוגמה:
    • NSPredicate *p = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"kMDItemContentTypeTree"] rightExpression:[NSExpression expressionForConstantValue:@"public.rtf"] modifier: NSAnyPredicateModifier type: NSLikePredicateOperatorType options: 0];
  • כאשר קוראים לתוצאות המוחזרות על ידי שאילתות עם היקפים בכל מקום, -[NSMetadataItem valueForAttribute: NSMetadataItemDisplayNameKey] כעת מייצר את אותו ערך כמו -[NSURL getResourceValue: forKey: NSURLLocalizedNameKey], התאמת שאילתות שאינן נמצאות.

טיימרים דיוק גבוה

בעיה ידועה

בעת שינה או המתנה למרווחי זמן מדויקים במיוחד, הטיימרים עשויים להתעכב עד 1 אלפית שנייה.

iCloud

הערות

  • ה kSecAttrSynchronizable ממשקי API שהיו זמינים ב-Beta Seeds אינם זמינים ב-GM Seed.
  • נעילת הפעלה, תכונה חדשה של Find My iPhone, מופעלת באופן אוטומטי כאשר Find My iPhone מופעל בכל מכשיר שבו פועל iOS 7. נעילת הפעלה דורשת מהמשתמשים להזין את ה-Apple ID והסיסמה שלהם כדי לכבות את Find My iPhone, לצאת מ-iCloud, למחוק את המכשיר או להפעיל מחדש את המכשיר לאחר מחיקה. חשוב לבצע אחת מהפעולות הבאות לפני העברת מכשיר למשתמש חדש:
    • צא מ-iCloud.
    • כבה את נעילת ההפעלה בהגדרות > iCloud > מצא את האייפון שלי.

רדיו iTunes

הערות

אם השתמשת ב-iTunes Radio ב-seeds לפני ה-GM Seed, עליך לצאת מחשבונך ולהיכנס שוב. אחרת, התחנות שלך לא יתעדכנו. כדי לעשות זאת, עבור אל הגדרות > iTunes ו-App Store. בחר את ה-Apple ID שלך ולאחר מכן צא. לאחר מכן, הזן את מזהה Apple והסיסמה שלך, והיכנס.

MapKit

הערות

אם השיחות ל renderInContext על שכבת גיבוי an MKMapView עשויים מהחוט הראשי, יש לבטל אותם או להעבירם לחוט הראשי. אי ביצוע פעולה זו עלול לגרום לקריסת אפליקציה. במקום להשתמש renderInContext, השתמש בחדש MKMapSnapshotter ממשקי API.

כְּלֵי תִקְשׁוֹרֶת

הערות

iOS זוכר כעת את אפליקציית המדיה האחרונה שבה נעשה שימוש לאחר אתחול מחדש וקריסות אפליקציה. אפליקציות מדיה שיכולות לקבל אירועי שליטה מרחוק צריכות להיות מוכנות להפעלה ברקע ועשויות לקבל אירוע שלט רחוק כדי להתחיל בהפעלה. בנוסף, חשוב שאפליקציות מדיה יפקחו ויטפלו באירוע איפוס שרת המדיה, מכיוון שאפליקציית המדיה עשויה לקבל בקשה מרחוק לחדש את ההשמעה לאחר איפוס. התראות לניטור אירועי שרת מדיה אלו זמינות ב AVAudioSession וטיפול נכון מתואר ב המלצות כלליות לטיפול ב-kAudioSessionProperty_ServerDied.

קישוריות מרובה משתתפים

הערות

  • השיטה החדשה הבאה על MCSession יושם:
    • - (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID error:(NSError **)error

    שיטת נציג זו יושמה:

    • - (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
  • השיטה החדשה הבאה על MCSession יושם:
    • - (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandler

    שיטת האציל להתחיל בקבלת משאב מעמית מרוחק יושמה כ:

    • - (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress

    שיטת האציל לסיים את קבלת משאב מעמית מרוחק ושמירת התוכן במיקום זמני מיושמת כך:

    • - (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error
  • MCAdvertiserAssistant הוא שיעור נוחות להטמעת מפרסם, המטפל בהזמנות וחיבורים ל- MCSession.
  • MCSession יש חדש initWithPeer: שיטה.
  • sendResource הוסיף "עם" ל- completionHandler.
  • פסק הזמן הקצוב הוסר מ connectPeer: withNearbyConnectionData.

למידע נוסף על ממשקי API אלה, צפו WWDC 2013: רשת בקרבת מקום עם קישוריות מרובה משתתפים.

ריבוי משימות

הערות

  • AVAudioSession כבר לא יכול להיות פעיל על ידי אפליקציות ברקע שמתעוררות עקב אחזור רקע, העברות רקע ואירועי התראות מרחוק.
  • מגבלת הזמן להשלמת המשימה ירדה מ-10 הדקות שהיה ב-iOS 6.

רשת

הערות

שני ממשקי API לרשת ברמה נמוכה שבעבר החזירו כתובת MAC מחזירים כעת את הערך הקבוע 02:00:00:00:00:00. ממשקי ה-API המדוברים הם sysctl (NET_RT_IFLIST) ו ioctl (SIOCGIFCONF). מפתחים המשתמשים בערך של כתובת ה-MAC צריכים לעבור למזהים כגון -[UIDevice identifierForVendor]. שינוי זה משפיע על כל האפליקציות הפועלות ב-iOS 7.

זמן ריצה של Objective-C

הערות

עקב שינויים באופן שבו isa השדה מיושם, *self עשוי להשתנות במהלך הספירה (לדוגמה, אם המיכל נשמר).

פתרון עוקף: בעת יישום countByEnumeratingWithState, לא להגדיר state->mutationsPtr = self.

פנקס חשבונות

הערות

  • Passbook הוסיפה תמיכה עבור התחומים העיקריים והקטנים כדי להתאים טוב יותר לשאר המערכת האקולוגית של iBeacon. החדש major ו minor המפתחות משתנים באופן עצמאי ואופציונליים לצדם proximityUUID (חובה) בכל מילון ב- beacons מַעֲרָך.
  • בגרסאות קודמות של iOS SDK, Passbook לא אימתה את השדות האחוריים בכרטיסים לחלוטין. כללי האימות לא השתנו, אבל האימות כולל כעת שדות אחורי. אנא בדוק את יומן המסוף עבור יומנים נוספים.
  • PKPassLibraryDidCancelAddPasses הוא קוד סטטוס חדש ב- PKPassLibraryAddPassesStatus enum. זה מסמל שהמשתמש הקש על ביטול בהתראה על הוספת מעברים.

תמונות

הערות

עם שדרוג ממקור מוקדם יותר, תמונות ממוזערות באפליקציית התמונות לא יופיעו לזמן קצר.

ספארי

בעיה ידועה

אם משדרגים ל-GM Seed מזרע מוקדם יותר, ייתכן שהעדפות Safari יאבדו.

פתרון: השבת את נעילת קוד הגישה לפני השדרוג.

בִּטָחוֹן

הערות

  • -[UIDevice uniqueIdentifier] לא מתקבל יותר בהגשות ל-App Store. ב-iOS 7, אפליקציות שכבר נמצאות בחנות או במכשירים של משתמשים הקוראים ל-API שהוסר זה לא יקבלו עוד את ה-UDID. במקום זאת, -[UIDevice uniqueIdentifier] יחזיר מחרוזת בת 40 תווים שמתחילה ב- FFFFFFFF, ואחריו הערך הקבוע של -[UIDevice identifierForVendor]. חשוב לשקול כיצד זה ישפיע על אפליקציות קיימות. שקול לשלוח עדכונים שאינם ניגשים יותר ל-UDID.
  • iOS מבקש כעת את הסכמת המשתמש לאפליקציות להשתמש בקלט שמע בכל מכשירי iOS 7. עבור מכשירים הנמכרים בסין, iOS יבקש גם את הסכמת המשתמש לאפליקציות להשתמש בחומרת המצלמה. מערכת ההפעלה תציג את התראת ההסכמה כאשר תגדיר את הקטגוריה של המופע AVAudioSession. ה AVAudioSession קטגוריות שיציגו את ההתראה הן AVAudioSessionCategoryRecord ו AVAudioSessionCategoryPlayAndRecord.אם המשתמש לא מאפשר גישה, נתוני הפעלת האודיו יהיו כולם אפסים (שקט). עבור מכשירים שבהם הגישה למצלמה מתבקשת ונדחית על ידי המשתמש, הפעלת צילום הווידאו היא מסך שחור.
  • ה-API gethostuuid() הוסר ולא יתקבל להגשה לחנות, ללא קשר למערכת ההפעלה הממוקדת. עבור אפליקציות קיימות הפועלות ב-iOS 7, הפונקציה תחזיר א uuid_t ייצוג של מזהה הספק (-[UIDevice identifierForVendor]).

חֶברָתִי

הערות

  • דרך iOS 6, בעת שימוש TWTweetComposeViewController ו SLComposeViewController (האחרון רק לטוויטר ולווייבו, אבל לא לפייסבוק), אם המתקשר מספק א completionHandler, המסופק completionHandlerאחראי לפטר את בקר התצוגה. החל מ-iOS 7, אם האפליקציה מתחברת ל- iOS 7 SDK, בקר התצוגה יפטור את עצמו גם אם המתקשר מספק completionHandler. כדי להימנע מכך, של המתקשר completionHandlerלא צריך לבטל את בקר התצוגה.
  • בעת שימוש ב- iOS 6.1 SDK ב-OS X v10.8 Mountain Lion, אם אתה משתמש ב- iOS 5.0 או iOS 5.1 Legacy SDK ב- iOS סימולטור, לא תוכל להשתמש בתכונות טוויטר: ניסיון להיכנס לטוויטר דרך חלונית ההגדרות יעשה זאת להיכשל, וTwitter.framework לא יפעל כראוי. אם אתה צריך לבדוק תכונות של טוויטר, תצטרך לבחור ביעד להפעלת סימולטור iOS 6.1 או iOS 6.0, או שאתה יכול לבדוק עם iOS 5.x במכשיר.

מַקפֵּצָה

הערות

  • נגיעות פעילות אינן מבוטלות עוד כאשר המשתמש מצלם צילום מסך.
  • טפט דינמי אינו זמין באייפון 4.

חנויות

תוקן ב-GM Seed

הורדות אפליקציות כבר לא נתקעות במצב "ממתין".

UIKit

תוקן ב-GM Seed

שדות סיסמה לא הוצגו בתצוגות התראה עבור אפליקציות לרוחב (לדוגמה, אימות Game Center או רכישה בתוך האפליקציה).

בעיות ידועות

  • אם UITextField או א UILabel שמיושר לקו הבסיס עם אילוצים יש תכונות המשתנות לאחר שהאילוצים נוספו, ייתכן שהפריסה לא נכונה. החריג לכך הוא -setFont: עַל UILabel, שאמור לעבוד כצפוי. פתרון לעקיפת הבעיה: הימנע מביצוע שינויים ב UITextField אוֹ UILabel לאחר הוספת אילוצי יישור בסיס. אם עליך לבצע שינויים, עליך להסיר את האילוצים ולאחר מכן להחיל אותם מחדש לאחר מכן. שימו לב שזהו להיט ביצועים, אז אל תעשו זאת אלא אם כן יש צורך בכך.
  • ה backIndicatorTransitionMask מלוח תכנון או מ-xib לא יתפרשו כהלכה בזמן ריצה. דרך לעקיפת הבעיה: הגדר את backIndicatorTransitionMask בקוד.

הערות

  • כאשר אין מספיק מקום בפריסת סרגל הניווט עבור הטקסט המלא של כותרת כפתור הקודמת, סרגל הניווט יחליף כותרת אחורית קצרה גנרית (באנגלית, "Back"). אם אפילו המחרוזת הזו ארוכה מדי, הסרגל יציג את שבר המחוון האחורי ללא כותרת.
  • +[UIPasteboard pasteboardWithName: create:] ו +[UIPasteboard pasteboardWithUniqueName] כעת ייחודי השם הנתון כדי לאפשר רק לאותן אפליקציות באותה קבוצת יישומים לגשת ללוח. אם המפתח ינסה ליצור לוח עם שם שכבר קיים והם אינם חלק מאותה חבילת אפליקציות, הם יקבלו לוח דביק ייחודי ופרטי משלהם. שימו לב שזה לא משפיע על לוחות ההדבקה המסופקים על ידי המערכת, כללית וחיפוש.
  • אפליקציות כברירת מחדל לשימוש במערכת ניהול שורת המצב החדשה מבוססת בקר התצוגה. כדי לבטל את הסכמתך לכך, הוסף ערך של NO עבור ה- UIViewControllerBasedStatusBarAppearance מפתח ל-Info.plist שלך.
  • בעת שימוש ב-Auto Layout למיקום א UIButton, אם תגדיר את התנגדות דחיסת התוכן או עדיפות חיבוק התוכן למינימום, ללחצן תהיה פריסה מעורפלת. פתרון עוקף: אל תשתמש בעמידות לדחיסת תוכן או בעדיפות חיבוק תוכן של פחות מ-2 עבור UIButton.
  • UIScreenEdgePanGestureRecognizer מאפשר לך לבצע פעולות בתגובה להחלקות מעל קצה המסך באמצעות אותן היוריסטיות שבהן המערכת משתמשת למחוות שלה. השתמש בזה אם יש לך סמנטיקת ניווט משלך שאין בה שימוש UINavigationController אבל צריך לכלול את המחווה הזו (למשל, Safari). לזיהוי המחוות הזה יש מאפיין שמתאר את הקצוות שבהם הוא פעיל. UIRectEdge הוא סוג enum חדש שמאפיין זה ו -[UIViewController edgesForExtendedLayout] יכול לשתף. UIRectEdge מחליףUIExtendedEdge, אשר יוסר. לחברים של שניהם אותם ערכים. השתמש ב-Xcode כדי להחליף את כל המופעים של "UIExtendedEdge" בפרויקט שלך ב-"UIRectEdge".
  • UIButtonTypeInfoLight, UIButtonTypeInfoDark, ו UIButtonTypeDetailDisclosure הכפתורים כולם נראים אותו הדבר.
  • שכבות מטושטשות אינן זמינות באייפון 4.
  • Parallax אינו זמין באייפון 4.
  • טקסט בדפוס אינו זמין באייפון 4.

מזג אוויר

הערות

תנאי מזג האוויר אינם מונפשים באייפון 4.

WebKit

הערות

  • בעבר, כאשר שונו הפרמטרים של נקודת התצוגה, הפרמטרים הישנים מעולם לא נמחקו. זה גרם לפרמטרים של נקודת התצוגה להיות תוספים. לדוגמה, אם התחלת עם רוחב=רוחב התקן ולאחר מכן שינית את זה ל קנה מידה התחלתי=1.0, בסופו של דבר קיבלת נקודת מבט ממוחשבת של רוחב=רוחב התקן, קנה מידה התחלתי=1.0.

    ב-iOS 7, זה טופל. עכשיו אתה מסיים עם נקודת מבט מחושבת של קנה מידה התחלתי=1.0.

  • בעבר, בעת שימוש, הסולם עלול להיות שגוי לאחר סיבוב. כעת, אם משתמש לא קנה קנה מידה מפורש של העמוד, העמוד ישוחזר לקנה המידה הראשוני שלו. כמו כן, הסולם הנוכחי מוגבל כעת כהלכה בתוך min-scale, max-scale גבולות.
  • חלק מהתמונות עבור התקני תצוגה ברשתית מופיעות בגודל פי שניים מהגודל שהן אמורות, במקום להיות מוקטן ב-50%. בעיה זו יכולה להתרחש גם עם כל תמונה שיש לשנות אותה, שהיא גדולה יותר מהמיכל שלה ומשתמשת ב-background-size רכוש או ה -webkit-background-size תכונה. בעיה זו משפיעה הן על אפליקציות מקוריות המציגות תוכן אינטרנט והן על דפי אינטרנט שנצפו ב-Safari עבור iPhone. ה background מאפיין קיצור של CSS מאפס כעת את הערך של background-size רכוש ל auto כאשר גודל הרקע לא מצוין. התנהגות חדשה זו היא לפי מפרט CSS, וההתנהגות הישנה זמינה רק עבור אפליקציות המקושרות ל-SDK לפני iOS 7.0 כאשר הן פועלות ב-iOS 7 ואילך.

    פתרון לעקיפת הבעיה: ציין את background-size רכוש או ה -webkit-background-size נכס לאחר ה background מאפיין קיצור בגיליון הסגנונות של CSS עבור תוכן האינטרנט המוצג.

  • אפליקציות אינטרנט וקטעי אינטרנט שנוצרו לפני Seed 4 לא יישארו בתיקיות במהלך האתחול מחדש. פתרון: מחק את אפליקציית האינטרנט או קליפ האינטרנט הישן וצור אותם מחדש ב-Seed זה על ידי טעינת התוכן ב-Safari, הקשה על כפתור הפעולה ולאחר מכן "הוסף למסך הבית".

ההודעה האחרונה בבלוג

Insider אומר שסירי וקורטנה הקליטו כל מילה שאי פעם אמרת להן
October 28, 2023

כתבנו בהרחבה על חששות אבטחה בשבועות האחרונים, אבל זו עשויה להיות ההתפתחות המזעזעת ביותר עד כה. משתמש Reddit FallenMyst פרסם ביום שלישי שהוא התחיל ל...

Blackberry Bolds הגיעו לניו יורק, נמכרו
October 21, 2023

טק. בידור. מַדָע. תיבת הדואר הנכנס שלך.הירשם לחדשות הטכנולוגיה והבידור המעניינות ביותר שיש.בהרשמה אני מסכים ל תנאי שימוש וסקרו את הודעת פרטיות.ניו ...

סיקור חי של אירוע האייפון X ההיסטורי של אפל
October 21, 2023

גבירותי ורבותי, בנים ובנות, סוף סוף השעה בפתח. אחרי יותר משנה של הדלפות ושמועות, אפל עומדת סוף סוף להוריד את העטיפה מהאייפון ליום השנה העשירי שלה. ...