Hey guys, I am trying to publish my jetpack compo...
# compose-desktop
Hey guys, I am trying to publish my jetpack compose app to the apple's app store. I followed this README (https://github.com/JetBrains/compose-jb/tree/master/tutorials/Signing_and_notarization_on_macOS) I submitted my app for natarization and it was approved. But now what? I have a .dmg file. How do I upload it to the store? Transporter app accepts only .ipa and .pkg. Is there any README for how to create a .pkg package? Executing packagePkg fails with error logs:
Copy code
libskiko-macos-/libskiko-macos-x64.dylib: replacing existing signature
Warning: unable to build chain to self-signed root for signer "3rd Party Mac Developer Application: ****
libskiko-macos-x64.dylib: errSecInternalComponent
It looks like something is wrong with your certificates in the keychain
Maybe try deleting and creating them again?
packagePkg is the right command to build a .pkg for the App Store
So packagePkg should work without any additional steps ?
Will give it another try this evening!
Well after you follow the steps in the docs you linked it should work
I'm not sure, it was a long time ago I set it up. I just checked and I have them added in login which works for me.
okok will do the same
tried again, no luck, tried also on another laptop and same... I am going to try with the exact same java and xcode versions now.
@Thomas I am still struggling with it, eventually I managed to execute packagePkg with sign.set(true) and appStore=true but the notarization process fails saying "The binary is not signed with a valid Developer ID certificate." . Is there a way to see exactly what does the gradle script do. Or where could I see its source code to have better understanding of what it does?
You don't need to do notarization for the app store if I remember correctly
However, you aren’t required to notarize software that you distribute through the Mac App Store
Is there any reason you want notarization? It's not supported for non Developer ID certificates
Source code is in the compose-jb repository
hmm ok but anyway the Transporter also complains: 'Invalid code signing' if ask it to 'verify the app'
What’s the full error?
wait now it works! (almost) I think the problem was that I was not logged in the xcode, I have never oppened it actually
So: 1. I followed the README while not being signed in the xcode, it was failing with the 'errSecInternalComponent' error. 2. Then I was blaming my mess with certificates and revoked all of them and created it from scratch. Meantime I opened the xcode and signed in (which i thought was not relevant) But it still did not work because I did not recreate the provisioning profiles although the packagePkg was compliting with success. 3. I recreated provisioning profiles and now it seems to sign the app correctly.
Now I am getting last one error: Your build must include the x86_64 arch...
but I guess this can be solved with:
The x64 error is a bit more complicated. There are no universal builds for the JDK, so you need to use an Intel JDK.
You need to set javaHome in the compose gradle dsl to an intel jdk and also use an intel jdk for building. This can be configured using intellij or using gradlew command (depends on what you use). so just make sure gradle runs using an intel JDK.
You can just use
It’s still an open issue I haven’t found a perfect solution for: https://github.com/JetBrains/compose-jb/issues/1599
yeah I saw that one 😕
Hi @Thomas, have you ever seen that crash on a signed app's startup?
Copy code
Exception Type:  EXC_CRASH (SIGKILL (Code Signature Invalid))
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: CODESIGNING 1 Taskgated Invalid Signature

Triggered by Thread:  0
The generated pkg passes all verifications in the Transporter app.
@Radoslaw Juszczyk No, doesn’t look familiar to me. I had to regenerate all certificates recently because they expired, and did not run into any issues at all. Do you still have this error?
Hello, I managed to fix it by removing provisioningProfiles (which I do not need at the moment) and updating to the 1.2.2 compose version If you are interested I can try to narrow it down to be sure what was the cause
Alright, that’s great to hear you got it working. Removing the provisioning profiles will break TestFlight though.
I know... I will give it a go this evening to see, maybe it is fine in 1.2.2 with provisioning profiles