App Store Rejection for using libcrypto.dylib

That’s quite odd. My app is using libcrypto, too, and works fine on BS - M1 or Intel.

1 Like

BS 11.1 on Intel is working fine with libcrypto.dylib, but on the M1 MacMini of one of my software testers the UB version of my apps are aborted with the above mentioned entry in the crash log…

Maybe the symlink is broken, misleading or not present on his machine, don’t know…

Yup, confirmed: calling libcrypto for ARM gives a FunctionNotFoundException. Sigh…

So it’s either refactor or BYOL time.

1 Like

fffsshhhh…

For both M1 and Intel I am using libcrypto.1.1.1.dylib and it works correctly.

Okay, I’ll check for that version. 0.9.8 was the version that was available on all macOS versions.

You can download the 1.1.1 source code from: https://ftp.openssl.org/source/ and it is required to build it for both Intel and M1 separately and then to create a universal binary file.

1 Like

Just checked - back to 10.11 (El Capitan) libcrypto.35.dylib is avaliable - and this one works fine on M1 Macs. On HighSierra or higher there is also libcrypto.41.dylib available, but Apple sets the symlink to libcrypto.35.dylib

1 Like

10.10 Only has 0.9.8 and 0.9.7.

It is a shame that Apple acts this way. We only need this for the App Store, and the harder Apple makes it for people to put their apps on the App Store, the more it becomes full of cloned apps and the only the big brands.

We’ve literally watched as the App Store went from being 80% of our business all the way down to 10%. Some of that is just economics, some of that is because of the App Store restrictions prevent us from providing the features that our customers want/need in App Store apps.

Literally this week, I set about adding a feature that customers have requested, only to find that it won’t work on the App Store, for a product that I was only selling via the App Store. I now need to provide a version outside of the App Store so I can include this feature.

Would it be allowed to make a small simple app store app which just advertises your products? Or would they forbid that?

You still support 10.10 Yosemite in your Mac App Store apps? I am thinking about dropping support for Sierra, as there is a bug in the accountsd, which results in a crash while validating the MAS receipt and I found no workaround yet…

No, we are not allowed to do that.

Xojo 2020r2 has some very odd behaviours with High Sierra and the html viewer. Changing the font doesn’t work anymore. So I’m going to Mojave with the next version of my app.

1 Like

Talking about the App Store.

In the recent years, when needed, I advertised (elsewhere) about “The Unarchiver.app” (especially because it allows to extract mages from free pdf files).

Some months ago (after reading this thread), I activate the App Store application and searched it. To my great surprise, there was some (many) applications with enarly the same name.

How buyers can differenciate between them (ours)…

Maybe (maybe…) Apple needs to dry all these people who provide me toos applications.

Sam did you checked (if there are) how many applications that have a name / look / set of features (apparent) that looks similar ?

Unfortunately, taking my example, unarchiver is the real name to use: I do not see what other name can be better fitted (proff: all others takes the same more or less).

PS: I tried to express a creative point of view on the trouble. I can’t believe Apple is yo-yoing developers besides draining the multitude of “me too” applications.

1 Like

There have been in the past. Occasionally other apps will also show up (I think the search is broken).

I just read this
https://twitter.com/keleftheriou/status/1356011069395755009

You gotta remember the guy who’s in charge of Apple is a money person, that is what matters to them. All the time they’re in charge, Apple will reflect that.

When the CEO gets replaced, I hope that Apple pick someone who cares about what they sell, not just the profit from each unit.

2 Likes

If I build my application with 2021 R1, then application crashes on startup.

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.

If I build this application with 2020 R2.1, I got no problem. I have macOS 11.2.3

What’s the top few lines of the stack that appears just below what you posted?

Process: Acana QR Code Generator [53836]
Path: /Applications/Acana QR Code Generator.app/Contents/MacOS/Acana QR Code Generator
Identifier: de.pps4me.AcanaQRCodeGenerator
Version: 5.5.0 (5.5.0)
App Item ID: 0
App External ID: 0
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Acana QR Code Generator [53836]
User ID: 501

Date/Time: 2021-04-06 23:17:56.165 +0200
OS Version: macOS 11.2.3 (20D91)
Report Version: 12
Bridge OS Version: 3.0 (14Y908)
Anonymous UUID: E861453C-3D70-A7AA-C3CE-B1D971965B81

Sleep/Wake UUID: 2B23445B-E2BB-4576-BC13-9159F760D970

Time Awake Since Boot: 51000 seconds
Time Since Wake: 12000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff203dc462 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff2040a610 pthread_kill + 263
2 libsystem_c.dylib 0x00007fff2035d720 abort + 120
3 libcrypto.dylib 0x00007fff785eea4a __report_load.cold.1 + 36
4 libcrypto.dylib 0x00007fff785ee763 __report_load + 427
5 dyld 0x000000011b883079 ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 559
6 dyld 0x000000011b883478 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 40
7 dyld 0x000000011b87dd1a ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 492
8 dyld 0x000000011b87bb82 ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 188
9 dyld 0x000000011b87bc22 ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 82
10 dyld 0x000000011b86c6a2 dyld::runInitializers(ImageLoader*) + 82
11 dyld 0x000000011b877569 dlopen_internal + 609
12 libdyld.dylib 0x00007fff20426fc0 dlopen_internal(char const*, int, void*) + 177
13 libdyld.dylib 0x00007fff2041586e dlopen + 28
14 com.xojo.XojoFramework 0x000000010c5f0d78 LoadFunctionPointerFromLibrary + 492
15 de.pps4me.AcanaQRCodeGenerator 0x000000010b9d5f83 appStoreReceipt.constructor%%oo + 3123
16 de.pps4me.AcanaQRCodeGenerator 0x000000010b9d527e appStoreReceipt.!mainBundleReciept%o% + 718
17 de.pps4me.AcanaQRCodeGenerator 0x000000010b7d50c5 App.Event_Open%%o + 421
18 com.xojo.XojoFramework 0x000000010c595fe0 CocoaFinishApplicationStartup() + 152
19 com.xojo.XojoFramework 0x000000010c594c63 0x10c4a8000 + 969827
20 com.apple.CoreFoundation 0x00007fff204f7fec CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER + 12
21 com.apple.CoreFoundation 0x00007fff2059389b ___CFXRegistrationPost_block_invoke + 49
22 com.apple.CoreFoundation 0x00007fff2059380f _CFXRegistrationPost + 454
23 com.apple.CoreFoundation 0x00007fff204c8bde _CFXNotificationPost + 723
24 com.apple.Foundation 0x00007fff21237abe -[NSNotificationCenter postNotificationName:object:userInfo:] + 59
25 com.apple.AppKit 0x00007fff22d29b2d -[NSApplication _postDidFinishNotification] + 305
26 com.apple.AppKit 0x00007fff22d2987b -[NSApplication _sendFinishLaunchingNotification] + 208
27 com.apple.AppKit 0x00007fff22d20ef3 _DPSNextEvent + 2229
28 com.apple.AppKit 0x00007fff22d1f177 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1366
29 com.xojo.XojoFramework 0x000000010c596792 0x10c4a8000 + 976786

What kind of person names their classes and function names like this? Me, that’s who.

  1. Find your copy of the appStoreReceipt class.
  2. Find the constant “kLibCrypto”.
  3. Set the value of the constant to “/usr/lib/libcrypto.0.9.8.dylib”.

Now this isn’t future proof as I fully expect one day for these libraries to be gone, but as of Big Sur, we’re no longer able to see what libraries the macOS contains for libcrypto, you know for “Security” and “Privacy” reasons.

Hopefully one day we’ll be able to utilize the version that Xojo use. It needs some extensions, I felt sure I had a feature request somewhere… Couldn’t find it, so I made one.
<https://xojo.com/issue/64336>

If I change this value, the application would be run on an older macOS release? but I think this could not be the problem, because I have another app build for the “App Store” with 2021 R1 and this application runs without any problem. If I build my application with 2020 R2.1, the application runs without any problem.

AFAIK it will run on Mac OS X 10.10 and above, but I haven’t tested it with anything lower.

Ultimately, we’re going to have to bundle a copy of libcrypto with our applications in the future.