Closed Flameborn closed 4 years ago
I'm not sure I understand. You want to access an Objective-C class from Java without a bridge? I'm not sure how that would work. How does this relate to notarization?
You could probably implement it in C and use JNA/JNI to interact with the C lib. Are you planning on putting your app on the app store? Because then you will have to do the notarization anyway.
Sorry about the confusion.
As far as I understand, Java-Objective-C uses a dylib behind the scenes, which needs notarization under Catalina and above, which I’d like to avoid. I’m not sure whether there is a way to do this directly, i.e. via pure Java code, or via other means that do not require an additional binary, hence my question.
On 2020. Jul 3., at 16:24, Steve Hannah notifications@github.com wrote:
I'm not sure I understand. You want to access an Objective-C class from Java without a bridge? I'm not sure how that would work. How does this relate to notarization?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shannah/Java-Objective-C-Bridge/issues/21#issuecomment-653572359, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHLD4DDW5NXSTV4APPRNFLRZXS2PANCNFSM4OP2KDDA.
No, this is going to be an open-source project that provides modifications for a game. It’s likely going to be published via the Steam Workshop. Having an additional binary means that I would not be able to publish untrusted code (eventually) without notarization. It would also make it a bit more tedious to build for non-Mac users.
On 2020. Jul 3., at 16:36, Matti notifications@github.com wrote:
You could probably implement it in C and use JNA/JNI to interact with the C lib. Are you planning on putting your app on the app store? Because then you will have to do the notarization anyway.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shannah/Java-Objective-C-Bridge/issues/21#issuecomment-653577079, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHLD4DXQ4Y3SIQEXI32Z73RZXUGFANCNFSM4OP2KDDA.
Does the steam workshop provide the JVM? (I'm not familiar with Steam workshop). If you are bundling your own JVM, which is the recommended way, then you'll need to notarize the JVM anyways.
The game has its own JRE included, which is notarized, so all the dylibs can be loaded. The mod is published as a jar file, which the game loads. If I include Java-Objective-C, at the moment it would need its library to be notarized.
On 2020. Jul 3., at 16:45, Steve Hannah notifications@github.com wrote:
Does the steam workshop provide the JVM? (I'm not familiar with Steam workshop). If you are bundling your own JVM, which is the recommended way, then you'll need to notarize the JVM anyways.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shannah/Java-Objective-C-Bridge/issues/21#issuecomment-653580593, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHLD4EMX4NCPG2M4YP6DLDRZXVJFANCNFSM4OP2KDDA.
You can include the libjcocoa.dylib inside your Game's app bundle. Put it in the Contents/MacOS directory of the app bundle. Then all of your mods will be able to use the bridge.
This is a great tip, thank you!
Unfortunately, I would still need to notarize the dylib.
On 2020. Jul 3., at 17:10, Steve Hannah notifications@github.com wrote:
You can include the libjcocoa.dylib inside your Game's app bundle. Put it in the Contents/MacOS directory of the app bundle. Then all of your mods will be able to use the bridge.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shannah/Java-Objective-C-Bridge/issues/21#issuecomment-653590072, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHLD4BSF4ZBEO3KN6E35D3RZXYGZANCNFSM4OP2KDDA.
You need to notarize the app anyway, the dylib would be notarized as a part of that process.
You are right. Unfortunately, as a mod creator, I am not the developer of the game, so I would need a separate developer license to do so. Sadly, open source is really not the way on Apple platforms, it seems.
My initial assumptions about requiring an external library were confirmed. Thank you very much for taking the time to help!
On 2020. Jul 3., at 17:57, Steve Hannah notifications@github.com wrote:
You need to notarize the app anyway, the dylib would be notarized as a part of that process.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shannah/Java-Objective-C-Bridge/issues/21#issuecomment-653606806, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHLD4BRH22JSNM44FVD65LRZX5YLANCNFSM4OP2KDDA.
Just a little background, I am currently working on a mod for a game, which requires cross-platform speech.
Is there a way to access Objective C classes, the NSSpeechSynthesizer class in particular, without an objective C bridge, i.e. directly?
Perhaps this is a bit out of scope for the project, however, I would like to avoid notarization, if possible, since it would unnecessarily complicate an open source project.
Any help is greatly appreciated.