Fontinator crashes on open with numbers of fonts

Hi there,

A little while ago I imported a large (~1200) number of fonts from Google Fonts into Fontinator. When trying to generate the configuration profile, Fontinator crashed after a few minutes. Now when trying to open the app, the iPad momentarily freezes, then crashes. It seems like it’s trying to load and parse each font file, and is getting killed by iOS for using up too much memory.

I’ve attached the crash log below:

Crash log
{"app_name":"Fontcase","timestamp":"2021-10-03 15:23:48.00 +1100","app_version":"1.0.1","slice_uuid":"4805fb17-be8c-3320-b43a-71ec3e8343e2","adam_id":"1536274709","build_version":"3","platform":2,"bundleID":"com.linearity.fontinator","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"iPhone OS 15.0 (19A346)","incident_id":"46B9AAF1-66C3-447D-9C22-33177234956E","name":"Fontcase"}
{
  "uptime" : 72000,
  "procLaunch" : "2021-10-03 15:23:27.4816 +1100",
  "procRole" : "Foreground",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "iPad7,5",
  "procStartAbsTime" : 1744660552485,
  "coalitionID" : 910,
  "osVersion" : {
    "isEmbedded" : true,
    "train" : "iPhone OS 15.0",
    "releaseType" : "User",
    "build" : "19A346"
  },
  "captureTime" : "2021-10-03 15:23:47.6483 +1100",
  "incident" : "46B9AAF1-66C3-447D-9C22-33177234956E",
  "bug_type" : "309",
  "pid" : 1554,
  "procExitAbsTime" : 1745144086351,
  "cpuType" : "ARM-64",
  "procName" : "Fontcase",
  "procPath" : "\/private\/var\/containers\/Bundle\/Application\/D2D07189-0833-4F2D-8411-3C9712831BA3\/Fontcase.app\/Fontcase",
  "bundleInfo" : {"CFBundleShortVersionString":"1.0.1","CFBundleVersion":"3","CFBundleIdentifier":"com.linearity.fontinator","DTAppStoreToolsBuild":"12A7402a"},
  "storeInfo" : {"storeCohortMetadata":"7|date=1603483200000&sf=143460&pgtp=Software&pgid=1536274709&prpg=Software_1536274709&ctxt=Search&issrch=1","itemID":"1536274709","deviceIdentifierForVendor":"4AD8FB5A-CB34-4B8D-BB32-DE4D70F001EA","softwareVersionExternalIdentifier":"838358736","thirdParty":true,"applicationVariant":"1:iPad7,5:13"},
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.linearity.fontinator",
  "crashReporterKey" : "a30e6cf80aed8ccf6d826f05790e310c2892b8ef",
  "isCorpse" : 1,
  "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGKILL"},
  "termination" : {"flags":6,"code":2343432205,"namespace":"FRONTBOARD","reasons":["<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-create watchdog transgression: application<com.linearity.fontinator>:1554 exhausted real (wall clock) time allowance of 19.88 seconds","ProcessVisibility: Foreground","ProcessState: Running","WatchdogEvent: scene-create","WatchdogVisibility: Foreground","WatchdogCPUStatistics: (","\"Elapsed total CPU time (seconds): 39.600 (user 39.600, system 0.000), 100% CPU\",","\"Elapsed application CPU time (seconds): 18.056, 45% CPU\"",") reportType:CrashLog maxTerminationResistance:Interactive>"]},
  "ktriageinfo" : "VM - Fault hit memory shortage\nVM - Fault hit memory shortage\nVM - Fault hit memory shortage\nVM - Fault hit memory shortage\nVM - Fault hit memory shortage\n",
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":237301,"queue":"com.apple.main-thread","frames":[{"imageOffset":121192,"symbol":"CFStringCompareWithOptionsAndLocale","symbolLocation":7912,"imageIndex":0},{"imageOffset":249816,"symbol":"__CFSimpleMergeSort","symbolLocation":348,"imageIndex":0},{"imageOffset":249724,"symbol":"__CFSimpleMergeSort","symbolLocation":256,"imageIndex":0},{"imageOffset":249724,"symbol":"__CFSimpleMergeSort","symbolLocation":256,"imageIndex":0},{"imageOffset":82432,"symbol":"CFSortIndexes","symbolLocation":312,"imageIndex":0},{"imageOffset":288240,"symbol":"CFQSortArray","symbolLocation":260,"imageIndex":0},{"imageOffset":370140,"symbol":"CFArraySortValues","symbolLocation":412,"imageIndex":0},{"imageOffset":602248,"symbol":"CreateSortedArrayWithSet(__CFSet const*, CFComparisonResult (*)(void const*, void const*, void*), void*)","symbolLocation":328,"imageIndex":1},{"imageOffset":809584,"symbol":"TDescriptorSource::CopyAvailableNames(void (*)(void const*, void*), CFComparisonResult (*)(void const*, void const*, void*)) const","symbolLocation":180,"imageIndex":1},{"imageOffset":1189864,"symbol":"CTFontManagerCopyAvailablePostScriptNames","symbolLocation":40,"imageIndex":1},{"imageOffset":118760,"imageIndex":2},{"imageOffset":116476,"imageIndex":2},{"imageOffset":63164,"imageIndex":2},{"imageOffset":51736,"imageIndex":2},{"imageOffset":1689716,"symbol":"-[UIViewController _sendViewDidLoadWithAppearanceProxyObjectTaggingEnabled]","symbolLocation":104,"imageIndex":3},{"imageOffset":1700328,"symbol":"-[UIViewController loadViewIfRequired]","symbolLocation":1020,"imageIndex":3},{"imageOffset":2728912,"symbol":"-[UINavigationController _updateScrollViewFromViewController:toViewController:]","symbolLocation":172,"imageIndex":3},{"imageOffset":2714228,"symbol":"-[UINavigationController _startTransition:fromViewController:toViewController:]","symbolLocation":188,"imageIndex":3},{"imageOffset":4913560,"symbol":"-[UINavigationController _startDeferredTransitionIfNeeded:]","symbolLocation":872,"imageIndex":3},{"imageOffset":3731176,"symbol":"-[UINavigationController __viewWillLayoutSubviews]","symbolLocation":164,"imageIndex":3},{"imageOffset":2873260,"symbol":"-[UILayoutContainerView layoutSubviews]","symbolLocation":224,"imageIndex":3},{"imageOffset":1563544,"symbol":"-[UIView(CALayerDelegate) layoutSublayersOfLayer:]","symbolLocation":2584,"imageIndex":3},{"imageOffset":248908,"symbol":"CA::Layer::layout_if_needed(CA::Transaction*)","symbolLocation":532,"imageIndex":4},{"imageOffset":195904,"symbol":"CA::Layer::layout_and_display_if_needed(CA::Transaction*)","symbolLocation":140,"imageIndex":4},{"imageOffset":275620,"symbol":"CA::Context::commit_transaction(CA::Transaction*, double, double*)","symbolLocation":496,"imageIndex":4},{"imageOffset":311436,"symbol":"CA::Transaction::commit()","symbolLocation":660,"imageIndex":4},{"imageOffset":3386252,"symbol":"__34-[UIApplication _firstCommitBlock]_block_invoke_2","symbolLocation":40,"imageIndex":3},{"imageOffset":445688,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__","symbolLocation":20,"imageIndex":0},{"imageOffset":449228,"symbol":"__CFRunLoopDoBlocks","symbolLocation":408,"imageIndex":0},{"imageOffset":43564,"symbol":"__CFRunLoopRun","symbolLocation":788,"imageIndex":0},{"imageOffset":122252,"symbol":"CFRunLoopRunSpecific","symbolLocation":572,"imageIndex":0},{"imageOffset":6560,"symbol":"GSEventRunModal","symbolLocation":160,"imageIndex":5},{"imageOffset":5169176,"symbol":"-[UIApplication _run]","symbolLocation":1080,"imageIndex":3},{"imageOffset":2630300,"symbol":"UIApplicationMain","symbolLocation":2060,"imageIndex":3},{"imageOffset":393884,"imageIndex":2},{"imageOffset":98704,"symbol":"start","symbolLocation":444,"imageIndex":6}]},{"id":237321,"queue":"com.apple.UIKit.KeyboardManagement","frames":[{"imageOffset":5972,"symbol":"__ulock_wait","symbolLocation":8,"imageIndex":7},{"imageOffset":19332,"symbol":"_dlock_wait","symbolLocation":52,"imageIndex":8},{"imageOffset":18800,"symbol":"_dispatch_thread_event_wait_slow$VARIANT$mp","symbolLocation":52,"imageIndex":8},{"imageOffset":71744,"symbol":"__DISPATCH_WAIT_FOR_QUEUE__","symbolLocation":320,"imageIndex":8},{"imageOffset":70756,"symbol":"_dispatch_sync_f_slow","symbolLocation":136,"imageIndex":8},{"imageOffset":3494268,"symbol":"__37-[_UIRemoteKeyboards startConnection]_block_invoke_3","symbolLocation":112,"imageIndex":3},{"imageOffset":133344,"symbol":"__invoking___","symbolLocation":144,"imageIndex":0},{"imageOffset":247224,"symbol":"-[NSInvocation invoke]","symbolLocation":300,"imageIndex":0},{"imageOffset":211216,"symbol":"__NSXPCCONNECTION_IS_CALLING_OUT_TO_REPLY_BLOCK__","symbolLocation":20,"imageIndex":9},{"imageOffset":340220,"symbol":"-[NSXPCConnection _decodeAndInvokeReplyBlockWithEvent:sequence:replyInfo:]","symbolLocation":552,"imageIndex":9},{"imageOffset":194396,"symbol":"__88-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]_block_invoke_3","symbolLocation":208,"imageIndex":9},{"imageOffset":101576,"symbol":"_xpc_connection_reply_callout","symbolLocation":60,"imageIndex":10},{"imageOffset":53252,"symbol":"_xpc_connection_call_reply_async","symbolLocation":76,"imageIndex":10},{"imageOffset":410472,"symbol":"_dispatch_client_callout3","symbolLocation":16,"imageIndex":8},{"imageOffset":119692,"symbol":"_dispatch_mach_msg_async_reply_invoke$VARIANT$mp","symbolLocation":352,"imageIndex":8},{"imageOffset":42012,"symbol":"_dispatch_lane_serial_drain$VARIANT$mp","symbolLocation":340,"imageIndex":8},{"imageOffset":45088,"symbol":"_dispatch_lane_invoke$VARIANT$mp","symbolLocation":456,"imageIndex":8},{"imageOffset":84708,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":632,"imageIndex":8},{"imageOffset":3896,"symbol":"_pthread_wqthread","symbolLocation":284,"imageIndex":11},{"imageOffset":2724,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":11}]},{"id":237322,"name":"com.apple.uikit.eventfetch-thread","frames":[{"imageOffset":2928,"symbol":"mach_msg_trap","symbolLocation":8,"imageIndex":7},{"imageOffset":4500,"symbol":"mach_msg","symbolLocation":72,"imageIndex":7},{"imageOffset":27344,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":368,"imageIndex":0},{"imageOffset":43960,"symbol":"__CFRunLoopRun","symbolLocation":1184,"imageIndex":0},{"imageOffset":122252,"symbol":"CFRunLoopRunSpecific","symbolLocation":572,"imageIndex":0},{"imageOffset":97132,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":232,"imageIndex":9},{"imageOffset":355692,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":88,"imageIndex":9},{"imageOffset":4635072,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":512,"imageIndex":3},{"imageOffset":411212,"symbol":"__NSThread__start__","symbolLocation":776,"imageIndex":9},{"imageOffset":9304,"symbol":"_pthread_start","symbolLocation":116,"imageIndex":11},{"imageOffset":2736,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":237323,"frames":[{"imageOffset":2716,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}]},{"id":237498,"frames":[{"imageOffset":2716,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6561599488,
    "size" : 4435968,
    "uuid" : "fe94d75f-5f1d-3127-ba50-0161d8817ee6",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/CoreFoundation",
    "name" : "CoreFoundation"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6644015104,
    "size" : 1781760,
    "uuid" : "012b5c20-d553-3bb3-8724-b99a9bbb9f24",
    "path" : "\/System\/Library\/Frameworks\/CoreText.framework\/CoreText",
    "name" : "CoreText"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4303437824,
    "size" : 458752,
    "uuid" : "4805fb17-be8c-3320-b43a-71ec3e8343e2",
    "path" : "\/private\/var\/containers\/Bundle\/Application\/D2D07189-0833-4F2D-8411-3C9712831BA3\/Fontcase.app\/Fontcase",
    "name" : "Fontcase"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6598713344,
    "size" : 24674304,
    "uuid" : "3f83ef9a-7492-3fec-a486-5fc2a1e1b092",
    "path" : "\/System\/Library\/PrivateFrameworks\/UIKitCore.framework\/UIKitCore",
    "name" : "UIKitCore"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6623531008,
    "size" : 2867200,
    "uuid" : "148c6302-3bf5-38dc-864c-e86d004bafe9",
    "path" : "\/System\/Library\/Frameworks\/QuartzCore.framework\/QuartzCore",
    "name" : "QuartzCore"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6999023616,
    "size" : 36864,
    "uuid" : "87b24bb5-a3dd-358d-9abb-a1f70544a383",
    "path" : "\/System\/Library\/PrivateFrameworks\/GraphicsServices.framework\/GraphicsServices",
    "name" : "GraphicsServices"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4305436672,
    "size" : 344064,
    "uuid" : "d7a0282e-93de-3a1e-9813-27e84517cc96",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 7511592960,
    "size" : 204800,
    "uuid" : "83a7e955-4c94-3d9d-9c11-63fe9c36fbd7",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6558429184,
    "size" : 536576,
    "uuid" : "5d722afc-fb8c-3769-bf66-167bb94a6133",
    "path" : "\/usr\/lib\/system\/libdispatch.dylib",
    "name" : "libdispatch.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 6585999360,
    "size" : 3010560,
    "uuid" : "b17c0d3b-cabb-3212-9056-0791b2521900",
    "path" : "\/System\/Library\/Frameworks\/Foundation.framework\/Foundation",
    "name" : "Foundation"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 8049868800,
    "size" : 208896,
    "uuid" : "fbe92a10-95e6-3059-9061-c21ef625fbd5",
    "path" : "\/usr\/lib\/system\/libxpc.dylib",
    "name" : "libxpc.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 8049745920,
    "size" : 65536,
    "uuid" : "c685b493-59ff-3f13-a9b3-3d3bb868ccd5",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  }
],
  "sharedCache" : {
  "base" : 6558121984,
  "size" : 2190065664,
  "uuid" : "06fe3f75-1833-3ca2-ae2e-f5881530aa7d"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=677.7M resident=0K(0%) swapped_out_or_unallocated=677.7M(100%)\nWritable regions: Total=545.7M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=545.7M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nColorSync                           64K        4 \nCoreAnimation                       16K        1 \nFoundation                          16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           542.1M       43 \nMALLOC guard page                  128K        8 \nSTACK GUARD                         80K        5 \nStack                             3184K        5 \nVM_ALLOCATE                        144K        1 \n__DATA                            17.1M      537 \n__DATA_CONST                      47.7M      560 \n__DATA_DIRTY                      1989K      457 \n__FONT_DATA                          4K        1 \n__LINKEDIT                       181.3M        6 \n__OBJC_RO                         89.7M        1 \n__OBJC_RW                         3328K        1 \n__TEXT                           496.5M      567 \n__UNICODE                          588K        1 \ndyld private memory               1056K        3 \nmapped file                      163.2M       53 \nshared memory                       48K        3 \n===========                     =======  ======= \nTOTAL                              1.5G     2260 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "com.apple.main-thread"
  }
},
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60356660bbe37970735c5624",
      "factorPackIds" : {
        "BIOME_CURARE" : "60805e830c7f096853c49c30"
      },
      "deploymentId" : 250000016
    },
    {
      "rolloutId" : "60da5e84ab0ca017dace9abf",
      "factorPackIds" : {

      },
      "deploymentId" : 240000008
    },
    {
      "rolloutId" : "607844aa04477260f58a8077",
      "factorPackIds" : {
        "SIRI_MORPHUN_ASSETS" : "6103050cbfe6dc472e1c982a"
      },
      "deploymentId" : 240000066
    },
    {
      "rolloutId" : "5ffde50ce2aacd000d47a95f",
      "factorPackIds" : {

      },
      "deploymentId" : 240000042
    },
    {
      "rolloutId" : "60509d56f2766876dee21c11",
      "factorPackIds" : {
        "SIRI_UNDERSTANDING_MORPHUN" : "6152c749f387f92b1fffc029"
      },
      "deploymentId" : 240000433
    },
    {
      "rolloutId" : "5fc94383418129005b4e9ae0",
      "factorPackIds" : {

      },
      "deploymentId" : 240000134
    },
    {
      "rolloutId" : "602c34a3046661000c9ebdde",
      "factorPackIds" : {

      },
      "deploymentId" : 240000437
    },
    {
      "rolloutId" : "602ad4dac86151000cf27e46",
      "factorPackIds" : {
        "SIRI_DICTATION_ASSETS" : "6152c7f241685658846fb273"
      },
      "deploymentId" : 240000216
    },
    {
      "rolloutId" : "601d9415f79519000ccd4b69",
      "factorPackIds" : {
        "SIRI_TEXT_TO_SPEECH" : "6152c915f387f92b1fffc0a6"
      },
      "deploymentId" : 240000232
    }
  ],
  "experiments" : [

  ]
},
  "reportNotes" : [
  "thread_get_state(PAGEIN) returned 0x10000003: (ipc\/send) invalid destination port",
  "thread_get_state(EXCEPTION) returned 0x10000003: (ipc\/send) invalid destination port",
  "thread_get_state(FLAVOR) returned 0x10000003: (ipc\/send) invalid destination port"
]
}

Best wishes,
llui85