AppStatus/QREncoder

The freeware app from AppStore.

Missing APIs

!!! Undefined symbol: IOBSDNameMatching
!!! Undefined symbol: IOIteratorNext
!!! Undefined symbol: IOMasterPort
!!! Undefined symbol: IOObjectRelease
!!! Undefined symbol: IORegistryEntryCreateCFProperty
!!! Undefined symbol: IORegistryEntryGetParentEntry
!!! Undefined symbol: IOServiceGetMatchingServices
!!! Undefined symbol: SecCertificateGetData
!!! Undefined symbol: SecKeychainItemCopyContent
!!! Undefined symbol: SecKeychainItemFreeContent
!!! Undefined symbol: SecKeychainOpen
!!! Undefined symbol: SecKeychainSearchCopyNext
!!! Undefined symbol: SecKeychainSearchCreateFromAttributes
  • IOKit - used to get the MAC address of "en0"
  • Security/Keychain: create a central D-Bus based daemon? DL format & encrypted blob format. The app will exit if certificate validation fails - could be modified to make it run.

Crashes

  • At property registration:
Registering 14 properties
        Property symbol with 2 attributes
        Property text with 3 attributes

...

#0  0x0000003427b21956 in __strcmp_sse42 () from /lib64/libc.so.6
#1  0x00007ffff6bf95b7 in class_getProperty (flag=(objc_class_flag_new_abi | unknown: 207030784), cls=<optimized out>, name=<optimized out>, cls=<optimized out>, name=<optimized out>) at properties.m:176
#2  class_addProperty (cls=<error reading variable: Unhandled dwarf expression opcode 0x0>, name=<optimized out>, attributes=<optimized out>, attributeCount=<optimized out>) at properties.m:462
#3  0x00007ffff4338e25 in RegisterClass(class_t const*, long)::$_0::operator()(char const*, objc_property_attribute_t const*, unsigned int) const (this=0x7fffffffd6f0, name=0x10006dd47 "text", attr=0xb773f0, count=3)
    at /home/lubos/Projects/darling/src/libobjcdarwin/new/class.cpp:44
#4  0x00007ffff4338543 in ConvertProperties<property_list_t, RegisterClass(class_t const*, long)::$_0>(property_list_t const*, RegisterClass(class_t const*, long)::$_0) (props=0x1000d4db8, f=...)
    at /home/lubos/Projects/darling/src/libobjcdarwin/new/../common/property.h:27
#5  0x00007ffff433824b in RegisterClass (cls=0x1000d19b8, slide=0) at /home/lubos/Projects/darling/src/libobjcdarwin/new/class.cpp:44
#6  0x00007ffff4338851 in ProcessClassesNew (mh=0xb4e2a8, slide=0, classes=0x1000d83a0, size=136) at /home/lubos/Projects/darling/src/libobjcdarwin/new/class.cpp:84

Property name: text -> serious bug in GNUstep libobjc2, reported. Problem FIXED in SVN and Clang.

__cfstring

libobjcdarwin probably needs to fixup the __cfstring section (which contains instances of CFStringRef, typedef const struct __CFString *CFStringRef). NXConstantString from GSString.m could serve as a basis for NSCFConstantString or something.

Probably FIXED via toll-free bridging (NSCFString).

-[NSBundle objectForInfoDictionaryKey] doesn't like a NSCFString.