libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary

Marc Watson picture Marc Watson · Mar 20, 2013 · Viewed 9.1k times · Source

I have been testing prior to submission of an update... from iOS4, and have run into the following... 1) creating PDFs from my app. 2) appears to be inconsistent, as I can create new PDFs without issue in most cases. 3) the crash log indicates a crash at line 341 of ExportView, which I have configured so that the only item on the line is a CFRangeMake. Note in the console that there is a value, as the same value is used in several lines.

A few notes: using Xcode 4.6, target is iOS6, fully ARC, testing on new iPad.

Any help with this would be greatly appreciated!!

I've removed some of the crash log and console log to shorten this post! Apologies for it's length even now!

Methods for the strings to be applied to the PDF creation:

- (CFMutableAttributedStringRef) CreateAttributedString:(int*) dateLength
                                        titleLength:(int*) titleLength
{
    NSLog(@"Current EntryIndex: %d", _entryIndex);
    NSLog(@"Current Entry: %@", _currentEntry); // current entry is set from the parent view controller via PrepareForSegue

    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MMMM dd, yyyy, h:mm aaa"];
    NSString * dateString = [dateFormatter stringFromDate:_currentEntry.created];
    *dateLength = [dateString length];
    NSLog(@"DateString: %@", dateString);
    NSLog(@"2nd DateLength: %d", *dateLength);

    NSString *title = _entryTitle;
    *titleLength = [title length];

    NSString *bodyString = _entryText;
    NSString *contentString = [NSString stringWithFormat:@"%@\n\n%@\n%@", dateString, title, bodyString];
    NSLog(@"TitleString: %@", title);
    NSLog(@"BodyString: %@", bodyString);
    NSLog(@"TitleLength: %d", *titleLength);

    CFStringRef string = (__bridge CFStringRef)contentString;
    CFMutableAttributedStringRef attributedContentString  CFAttributedStringCreateMutable(kCFAllocatorDefault, 0);
    CFAttributedStringReplaceString (attributedContentString,CFRangeMake(0, 0), string);
    return  attributedContentString;
    }

 - (void) SetTextFontName:(int)dateLength titleLength:(int)titleLength forAttributedString:(CFMutableAttributedStringRef) text
{
    //date
    CTFontDescriptorRef dateFontDescriptor = CTFontDescriptorCreateWithNameAndSize((__bridge CFStringRef)_entryDateTimeFontName, _entryDateTimeFontSize);

    CTFontRef dateFont = CTFontCreateWithFontDescriptor(dateFontDescriptor, _entryDateTimeFontSize, NULL);
    NSLog(@"Font entryDateTimeFontSize, line 329: %d", _entryDateTimeFontSize);
    NSLog(@"DateFontDescriptor, line 329: %@", dateFontDescriptor);
    CFAttributedStringSetAttribute(text, CFRangeMake(0, dateLength), kCTFontAttributeName, dateFont);
    NSLog(@"DateLength... before crash: %d", dateLength);
    NSLog(@"DateLength... crashing: %d", dateLength);
    CFAttributedStringSetAttribute(text,
                               CFRangeMake(0, dateLength),    // this is line 341...
                               kCTForegroundColorAttributeName,
                               _entryDateTimeColor.CGColor);
    NSLog(@"Date length for line 332: %d", dateLength);
    NSLog(@"Text for line 332: %@", text);
    NSLog(@"Font name... font attributes line 332: %@", dateFont);
    NSLog(@"Date length for line 333: %d", dateLength);
    NSLog(@"Text for line 333: %@", text);
    NSLog(@"Date color for line 333: %@", _entryDateTimeColor.CGColor);
    CFRelease(dateFontDescriptor);
    CFRelease(dateFont);

    //title
    CTTextAlignment alignment = kCTCenterTextAlignment;
    CTParagraphStyleSetting _settings[] = {{kCTParagraphStyleSpecifierAlignment, sizeof(alignment), &alignment}};
    CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(_settings, sizeof(_settings) / sizeof(_settings[0]));
    CFAttributedStringSetAttribute(text, CFRangeMake(dateLength, dateLength + titleLength), kCTParagraphStyleAttributeName, paragraphStyle);

    CTFontDescriptorRef titleFontDescriptor = CTFontDescriptorCreateWithNameAndSize((__bridge CFStringRef)_entryTitleFontName, _entryTitleFontSize);

    CTFontRef titleFont = CTFontCreateWithFontDescriptor(titleFontDescriptor,_entryTitleFontSize, NULL);
    NSLog(@"TitleFontDescriptor: %@", titleFontDescriptor);
    CFAttributedStringSetAttribute(text, CFRangeMake(dateLength, dateLength + titleLength), kCTFontAttributeName, titleFont);
    CFAttributedStringSetAttribute(text, CFRangeMake(dateLength, dateLength + titleLength), kCTForegroundColorAttributeName, _entryTitleColor.CGColor);
    NSLog(@"TitleColor: %@", _entryTitleColor);
    NSLog(@"Titlecolor: %@", _entryTitleColor.CGColor);
    CFRelease(titleFontDescriptor);
    CFRelease(titleFont);

    //content
    CTFontDescriptorRef fontDescriptor = CTFontDescriptorCreateWithNameAndSize((__bridge CFStringRef)_entryTextFontName, _entryTextFontSize);
    CTFontRef font = CTFontCreateWithFontDescriptor(fontDescriptor, _entryTextFontSize, NULL);
    CFAttributedStringSetAttribute(text, CFRangeMake(dateLength + titleLength+2, CFAttributedStringGetLength(text) - dateLength - titleLength - 2), kCTFontAttributeName, font);
    CFAttributedStringSetAttribute(text, CFRangeMake(dateLength + titleLength+2, CFAttributedStringGetLength(text) - dateLength - titleLength - 2), kCTForegroundColorAttributeName, _entryTextColor.CGColor);
    CFRelease(fontDescriptor);
    CFRelease(font);
}

Crash Log:

Incident Identifier: D5D15E15-8A4C-4850-B751-9F1D546F1F71
CrashReporter Key:   54bfdcf0248d463bc97ac986b7553405b3b0f8b9
Hardware Model:      iPad3,4
Process:         TabletJournal [9876]
Path:            /var/mobile/Applications/109DCB8E-22D1-45E4-A347- 1B1F211F9044/TabletJournal.app/TabletJournal
Identifier:      TabletJournal
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-03-20 15:42:11.412 +0100
OS Version:      iOS 6.1.2 (10B146)
Report Version:  104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000000000defe
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   CoreFoundation                0x3272b4e0 0x32693000 + 623840
1   CoreFoundation                0x3271bc2c 0x32693000 + 560172
2   CoreFoundation                0x3277043c 0x32693000 + 906300
3   CoreFoundation                0x32697b4e 0x32693000 + 19278
4   CoreFoundation                0x32705e5e 0x32693000 + 470622
5   TabletJournal                 0x0005f3d8 -[ExportView SetTextFontName:titleLength:forAttributedString:] (ExportView.m:341)
6   TabletJournal                 0x0005ed58 -[ExportView saveJournalToPDF:andName:] (ExportView.m:196)
7   TabletJournal                 0x0005ec8a -[ExportView pdfButtonTapped:] (ExportView.m:179)
8   UIKit                         0x3464f082 0x34561000 + 974978
9   UIKit                         0x3464f036 0x34561000 + 974902
10  UIKit                         0x3464f010 0x34561000 + 974864
11  UIKit                         0x3464e8c6 0x34561000 + 972998
12  UIKit                         0x3464edb4 0x34561000 + 974260
13  UIKit                         0x345775f4 0x34561000 + 91636
14  UIKit                         0x345648dc 0x34561000 + 14556
15  UIKit                         0x345641ea 0x34561000 + 12778
16  GraphicsServices              0x362575f4 0x36251000 + 26100
17  GraphicsServices              0x36257222 0x36251000 + 25122
18  CoreFoundation                0x3272a3e4 0x32693000 + 619492
19  CoreFoundation                0x3272a386 0x32693000 + 619398
20  CoreFoundation                0x3272920a 0x32693000 + 614922
21  CoreFoundation                0x3269c238 0x32693000 + 37432
22  CoreFoundation                0x3269c0c4 0x32693000 + 37060
23  GraphicsServices              0x36256336 0x36251000 + 21302
24  UIKit                         0x345b82b4 0x34561000 + 357044
25  TabletJournal                 0x0002e35a main (main.m:22)
26  libdyld.dylib                 0x3aa02b1c 0x3aa01000 + 6940

Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x3ac440f0    r1: 0x00000000      r2: 0x00001200      r3: 0x3ac2ce44
    r4: 0x00000000    r5: 0x1ea52580      r6: 0x3272b4d9      r7: 0x2fdd26c4
    r8: 0x3ac47940    r9: 0x00000012     r10: 0x3acacd88     r11: 0x1ea52580
    ip: 0x00010201    sp: 0x2fdd26c0      lr: 0x3271bc2f      pc: 0x3272b4e0
  cpsr: 0xa0000030

Console log... the important parts:

Mar 20 15:50:54 Marcs-iPad TabletJournal[9947] <Warning>: SettingsModel, entries: (
"<JournalEntry: 0x1e296310>",
"<JournalEntry: 0x1e24be00>")
Mar 20 15:50:54 Marcs-iPad TabletJournal[9947] <Warning>: Export Loading
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: Current EntryIndex: 1
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: Current Entry: <JournalEntry: 0x1e296310>
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: DateString: marzo 20, 2013, 3:41 PM
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: 2nd DateLength: 23
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: TitleString: Test2
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: BodyString: I’m here in the Istanbul airport again, for another 5-hour layover! Plane is suppose to take off at 2:50 pm! Next time, I’m going to make sure my layovers are not more than 2 hours. That’ll leave room for delays. I ate a small pizza at this “Italian” diner. It was actually pretty good. Later, I’ll have to compare it with real Italian pizza. I’m dead tired. Gotta get some caffeine! Got the caffeine! Yow! I should wake up in a few minutes! There are posters of Italia here and I’ve found a couple of places I’d like to see. Lago D’Orta di Piemonte, Galleria Borghese di Lazio- Roma, Pisa.
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: TitleLength: 5
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: Font entryDateTimeFontSize, line 329: 13
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: DateFontDescriptor, line 329:     
CTFontDescriptor <attributes: <CFBasicHash 0x1d518f50 [0x3ac440f0]>{type = mutable dict, count = 2,
entries =>
1 : <CFString 0x3acad758 [0x3ac440f0]>{contents = "NSFontNameAttribute"} = <CFString 0x1e07a880 [0x3ac440f0]>{contents = "Copperplate"}
2 : <CFString 0x3acad8c8 [0x3ac440f0]>{contents = "NSFontSizeAttribute"} = <CFNumber 0x1d5cb1d0 [0x3ac440f0]>{value = +13.0000000000, type = kCFNumberFloat32Type}}
>
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: DateLength... before crash: 23
Mar 20 15:50:55 Marcs-iPad TabletJournal[9947] <Warning>: DateLength... crashing: 23
Mar 20 15:50:56 Marcs-iPad ReportCrash[9951] <Notice>: Formulating crash report for process TabletJournal[9947]
Mar 20 15:50:56 Marcs-iPad com.apple.launchd[1] (UIKitApplication:com.creativeappgroup.TabletJournalTM[0xe437][9947]) <Warning>: (UIKitApplication:com.creativeappgroup.TabletJournalTM[0xe437]) Job appears to have crashed: Trace/BPT trap: 5
Mar 20 15:50:56 Marcs-iPad ReportCrash[9951] <Error>: libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary
Mar 20 15:50:56 Marcs-iPad backboardd[25] <Warning>: Application 'UIKitApplication:com.creativeappgroup.TabletJournalTM[0xe437]' exited abnormally with signal 5: Trace/BPT trap: 5
Mar 20 15:50:56 Marcs-iPad ReportCrash[9951] <Notice>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/TabletJournal_2013-03-20-155055_Marcs-iPad.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0

Answer

Marc Watson picture Marc Watson · Mar 21, 2013

It turns out that the libModileGestalt had nothing do with the crashing. Found out via a tip on Apple forums that the CGColor was probably nil. After isolating and installing log statements before the actual call, that it was indeed the case. In fact, all of the colors... text, title and date were coming over as NULL. So, I've got the crashing to stop by installing a test and apply statement in the create PDF method. Now... to find out why the colors are not being passed over!