Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macStartup and codesignApp properties are broken on MacOS 15.*.* #448

Open
3 of 5 tasks
little-mystic-stuff opened this issue Nov 27, 2024 · 8 comments
Open
3 of 5 tasks
Labels
feedback Waiting for feedback

Comments

@little-mystic-stuff
Copy link

little-mystic-stuff commented Nov 27, 2024

I'm submitting a…

  • bug report
  • feature request
  • other

Short description of the issue/suggestion:
Formally it's not a bug, it's just a yet-another-apple-shitty-update. But maybe it can be fixed on JP side. Anyway I hope this information should be useful for somebody.
All built apps cannot be launched after MacOS 15.*.* update. Recompiling/rebuilding/repacking are useless.
After a long juggling with java versions, JP versions and JP configurations, I found a reason - macStartup property (and codesignApp property a little bit). Details are below.

Steps to reproduce the issue with various settings:

Default values (macStartup = SCRIPT, codesignApp = true)

  1. Take arm-Mac with MacOS 15.*.*.
  2. Pack app with default values (macStartup = SCRIPT, codesignApp = true).
  3. Launch packed app.

Result:

  • alert "Application cannot be launched"
  • while trying to launch via terminal "The application /Applications/Icon Generator.app cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x600000a584b0 {Error Domain=NSPOSIXErrorDomain Code=162 "Unknown error: 162" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}" (It didn't happen before MacOS 15.*.* update)

Custom values (macStartup = SCRIPT, codesignApp = false)

  1. Take arm-Mac with MacOS 15.*.*.
  2. Pack app with custom values (macStartup = SCRIPT, codesignApp = false).
  3. Launch packed app.

Result:

  • alert "The application Finder/Dock does not have permission to open null"
  • while trying to launch via terminal "_LSOpenURLsWithCompletionHandler() failed for the application /Applications/Icon Generator.app with error -54."

Custom value (macStartup = UNIVERSAL, codesignApp = false)

  1. Take arm-Mac with MacOS 15.*.*.
  2. Pack app with custom values (macStartup = UNIVERSAL, codesignApp = false).
  3. Launch packed app.

Result:

  • alert "Cannot launch programName"
  • alert with a proposal to send a report of unexpected app shutdown (report example below)
  • while trying to launch via terminal "The application /Applications/Icon Generator.app cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x60000179c0f0 {Error Domain=NSPOSIXErrorDomain Code=162 "Unknown error: 162" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}"
report ------------------------------------- Translated Report (Full Report Below) -------------------------------------

Incident Identifier: E05DE787-1FDB-4B32-8E9A-A7AD86AD79B5
CrashReporter Key: C58B532E-14A7-4418-58B2-E9849A31BF19
Hardware Model: MacBookPro18,3
Process: universalJavaApplicationStub [13073]
Path: /Applications/Icon Generator.app/Contents/MacOS/universalJavaApplicationStub
Identifier: com.ilovepixel.icongenerator
Version: 1.0.0 (1.0.0)
Code Type: X86-64 (Native)
Role: Default
Parent Process: launchd [1]
Coalition: com.ilovepixel.icongenerator [5392]

Date/Time: 2024-11-27 12:07:36.5048 +0100
Launch Time: 2024-11-27 12:07:36.4629 +0100
OS Version: macOS 15.1.1 (24B91)
Release Type: User
Report Version: 104

Exception Type: EXC_CRASH (SIGKILL (Code Signature Invalid))
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: CODESIGNING 4 Launch Constraint Violation

Triggered by Thread: 0

Thread 0 Crashed:
0 main_executable_path_missing 0x7ff7ffccaf7c 0x7ff7ffcc8000 + 12156

Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x0000000000000000 rdx: 0x0000000000000000
rdi: 0x0000000000000000 rsi: 0x0000000000000000 rbp: 0x0000000000000000 rsp: 0x0000000000000000
r8: 0x0000000000000000 r9: 0x0000000000000000 r10: 0x0000000000000000 r11: 0x0000000000000000
r12: 0x0000000000000000 r13: 0x0000000000000000 r14: 0x0000000000000000 r15: 0x0000000000000000
rip: rfl: 0x0000000000000203
tmp0: 0x0000000000000000 tmp1: 0x0000000000000000 tmp2: 0x0000000000000000

Binary Images:
0x200f61000 - 0x200fedfff dyld_path_missing () <4d52bd1e-6a0e-31db-b564-9e2029fdcd6f> /dyld_path_missing
0x7ff7ffcc8000 - 0x7ff7ffcf7fff main_executable_path_missing (
) <2315e5a0-93f9-38af-a9d5-102bbd4c4c00> /main_executable_path_missing
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

Error Formulating Crash Report:
dyld_process_snapshot_get_shared_cache failed
PC register does not match crashing frame (0x0 vs 0x7FF7FFCCAF7C)

EOF


Full Report

{"app_name":"universalJavaApplicationStub","timestamp":"2024-11-27 12:07:36.00 +0100","app_version":"1.0.0","slice_uuid":"a97bba30-e21a-30d7-8269-419271e5b75a","build_version":"1.0.0","platform":0,"bundleID":"com.ilovepixel.icongenerator","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 15.1.1 (24B91)","roots_installed":0,"name":"universalJavaApplicationStub","incident_id":"E05DE787-1FDB-4B32-8E9A-A7AD86AD79B5"}
{
"uptime" : 20000,
"procRole" : "Default",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "MacBookPro18,3",
"coalitionID" : 5392,
"osVersion" : {
"train" : "macOS 15.1.1",
"build" : "24B91",
"releaseType" : "User"
},
"captureTime" : "2024-11-27 12:07:36.5048 +0100",
"codeSigningMonitor" : 1,
"incident" : "E05DE787-1FDB-4B32-8E9A-A7AD86AD79B5",
"pid" : 13073,
"translated" : true,
"cpuType" : "X86-64",
"roots_installed" : 0,
"bug_type" : "309",
"procLaunch" : "2024-11-27 12:07:36.4629 +0100",
"procStartAbsTime" : 496482714467,
"procExitAbsTime" : 496483121429,
"procName" : "universalJavaApplicationStub",
"procPath" : "/Applications/Icon Generator.app/Contents/MacOS/universalJavaApplicationStub",
"bundleInfo" : {"CFBundleShortVersionString":"1.0.0","CFBundleVersion":"1.0.0","CFBundleIdentifier":"com.ilovepixel.icongenerator"},
"storeInfo" : {"deviceIdentifierForVendor":"218019D8-59AF-5196-B7A7-7D16B7C8455A","thirdParty":true},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "com.ilovepixel.icongenerator",
"crashReporterKey" : "C58B532E-14A7-4418-58B2-E9849A31BF19",
"codeSigningID" : "",
"codeSigningTeamID" : "",
"codeSigningFlags" : 16777216,
"codeSigningValidationCategory" : 0,
"codeSigningTrustLevel" : 4294967295,
"bootSessionUUID" : "B7384369-8BE2-495D-893D-922196384C08",
"wakeTime" : 3606,
"sleepWakeUUID" : "CE47E1DD-CBE4-442F-9023-EE6D4680C1D5",
"sip" : "enabled",
"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGKILL (Code Signature Invalid)"},
"termination" : {"flags":66,"code":4,"namespace":"CODESIGNING","indicator":"Launch Constraint Violation"},
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":1181830,"threadState":{"flavor":"x86_THREAD_STATE","rbp":{"value":0},"r12":{"value":0},"rosetta":{"tmp2":{"value":0},"tmp1":{"value":0},"tmp0":{"value":0}},"rbx":{"value":0},"r8":{"value":0},"r15":{"value":0},"r10":{"value":0},"rdx":{"value":0},"rdi":{"value":0},"r9":{"value":0},"r13":{"value":0},"rflags":{"value":515},"rax":{"value":0},"rsp":{"value":0},"r11":{"value":0},"rcx":{"value":0},"r14":{"value":0},"rsi":{"value":0}},"frames":[{"imageOffset":12156,"imageIndex":1}]}],
"usedImages" : [
{
"source" : "P",
"arch" : "x86_64",
"base" : 8606060544,
"size" : 577536,
"uuid" : "4d52bd1e-6a0e-31db-b564-9e2029fdcd6f",
"path" : "/dyld_path_missing",
"name" : "dyld_path_missing"
},
{
"source" : "P",
"arch" : "arm64",
"base" : 140703125241856,
"size" : 196608,
"uuid" : "2315e5a0-93f9-38af-a9d5-102bbd4c4c00",
"path" : "/main_executable_path_missing",
"name" : "main_executable_path_missing"
},
{
"size" : 0,
"source" : "A",
"base" : 0,
"uuid" : "00000000-0000-0000-0000-000000000000"
}
],
"vmSummary" : "ReadOnly portion of Libraries: Total=1068K resident=0K(0%) swapped_out_or_unallocated=1068K(100%)\nWritable regions: Total=32.4M written=144K(0%) resident=144K(0%) swapped_out=0K(0%) unallocated=32.2M(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nSTACK GUARD 56.0M 1 \nStack 8176K 1 \nVM_ALLOCATE 24.2M 7 \n__DATA 76K 4 \n__DATA_CONST 24K 1 \n__DATA_DIRTY 8K 2 \n__LINKEDIT 336K 4 \n__TEXT 756K 2 \n__TPRO_CONST 276K 1 \nmapped file 8.6G 39 \npage table in kernel 144K 1 \n=========== ======= ======= \nTOTAL 8.7G 63 \n",
"legacyInfo" : {
"threadTriggered" : {

}
},
"logWritingSignature" : "78527d797240784ad7b650419280b6b78a642777",
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "632c763c58740028737bfdd2",
"factorPackIds" : {
"SIRI_DIALOG_ASSETS" : "64a57d23fa6fd41b2353e2ae"
},
"deploymentId" : 240000034
},
{
"rolloutId" : "658361a603dc58766bab2d2a",
"factorPackIds" : {
"SIRI_TTS_DEVICE_TRAINING" : "66bcae55caad4670b8e6ac29"
},
"deploymentId" : 240000045
}
],
"experiments" : [
{
"treatmentId" : "45f4e2a5-551b-4bc2-a2dc-19c244dda8f8",
"experimentId" : "6643969b3099cf28e049862f",
"deploymentId" : 400000007
}
]
},
"reportNotes" : [
"dyld_process_snapshot_get_shared_cache failed",
"PC register does not match crashing frame (0x0 vs 0x7FF7FFCCAF7C)"
]
}

Model: MacBookPro18,3, BootROM 11881.41.5, proc 10:8:2 processors, 32 GB, SMC
Graphics: Apple M1 Pro, Apple M1 Pro, Built-In
Display: Color LCD, 3024 x 1964 Retina, Main, MirrorOff, Online
Memory Module: LPDDR5, Hynix
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4387), wl0: Jul 26 2024 20:03:40 version 20.10.1123.2.8.7.186 FWID 01-94146b8e
IO80211_driverkit-1315.7 "IO80211_driverkit-1315.7" Sep 28 2024 16:04:40
AirPort:
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
USB Device: USB31Bus
USB Device: USB31Bus
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.

What is the motivation for changing the behavior?
All apps cannot be launched on MacOS 15.*.*.

Environment

  • JavaPackager version: 1.7.2, 1.7.4, 1.7.5, 1.7.6
  • Hardware: MacBook Pro 2021 (Apple M1 Pro)
  • OS version: MacOS 15.1.1 (24B91), MacOS 15.0.1
  • JDK version: openjdk-23, openjdk-21, openjdk-17
  • Build tool:
    • Maven
    • Gradle

Temporary workaround for users
Set macStartup = ARM64, codesignApp = false in all your projects (if you aren't using signing).
Do not forget to repack your projects and distribute updates

@mremars
Copy link

mremars commented Nov 28, 2024

Unfortunately, temporary workaround doesn't work with macStartup = X86_64 and codesignApp = false

@fvarrui
Copy link
Owner

fvarrui commented Nov 28, 2024

Hi @little-mystic-stuff and @mremars!
There was a similar issue: #430 ... it was fixed on MacOS 15 setting macStarup=UNIVERSAL.
I hope it helps!

@mremars
Copy link

mremars commented Nov 28, 2024

Thanks a lot. Works fine with macStartup=UNIVERSAL

@little-mystic-stuff
Copy link
Author

little-mystic-stuff commented Nov 28, 2024

Unfortunately, temporary workaround doesn't work with macStartup = X86_64 and codesignApp = false

That's true.

Hi @little-mystic-stuff and @mremars! There was a similar issue: #430 ... it was fixed on MacOS 15 setting macStarup=UNIVERSAL. I hope it helps!

Unfortunately UNIVERSAL property value has another error I mentioned before
"The application /Applications/Icon Generator.app cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x60000179c0f0 {Error Domain=NSPOSIXErrorDomain Code=162 "Unknown error: 162" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}"

@maths22
Copy link
Contributor

maths22 commented Dec 1, 2024

You could try setting customLauncher to a copy of the nativeJavaApplicationStub here: https://github.com/maths22/universalJavaApplicationStub/actions/runs/12102350031 . I don't know if it will work, but it's an entirely separate implementation of the launcher, so it might work? (see fvarrui/universalJavaApplicationStub#1 for context)

@fvarrui
Copy link
Owner

fvarrui commented Dec 10, 2024

You could try setting customLauncher to a copy of the nativeJavaApplicationStub here: https://github.com/maths22/universalJavaApplicationStub/actions/runs/12102350031 . I don't know if it will work, but it's an entirely separate implementation of the launcher, so it might work? (see fvarrui/universalJavaApplicationStub#1 for context)

Thanks so much @maths22!
I've just compiled nativeJavaApplicationStub and released here. As @maths22 suggested, before adding this launcher into JP, you can give it a test just downloading manually from the previous link and setting macConfig.customLauncher.

@little-mystic-stuff
Copy link
Author

little-mystic-stuff commented Dec 10, 2024

@maths22, @fvarrui, thanks for advices. But it looks like the same: I get the same errors.
But. I discovered something new.

I retested previous settings what I described in the first message.
"macStartup = UNIVERSAL" has an interesting effect.
Scenario 1:

  • run/mount installer dmg
  • drag app to application folder (via volume screen)
  • run app via Dock or any common way
    Result: errors.

Scenario 2:

  • run/mount installer dmg
  • launch apps from volume directly
    Result: ok.

I copied app from volume into Finder (not via installer screen, it's important) and compared the files.
One of them has an active "Run in Rosetta" checkbox. It's an app from scenario 1.

It looks like something sets a checkbox when I install the app via standard screen (And then app fails at result). It sounds weird, but I have no other clues.

@keastrid
Copy link
Contributor

We recently had a user report a similar issue after our app self updated (just updates the jar files in the app). They were using macOS 15 and the universal compiled launch script (ours is slightly different in that we add a default memory setting based on the user's system, but is otherwise built the same way).

Our app is packaged as a DMG with separate builds for arm and x86.

Reinstalling fixed it for that user, which obviously isn't ideal but we haven't heard of any other similar issues. I gave the native launcher a try and it seems to work, though I couldn't reproduce the initial launch issue and it still needs to be tested after signing and notarization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback Waiting for feedback
Projects
None yet
Development

No branches or pull requests

5 participants