Post

Replies

Boosts

Views

Activity

Path problems when sandboxing
Hi, I have an App that contains a simple launcher script. It starts an embedded Java Application together with an embedded JRE. Like this: Contents/PlugIns/jre/Contents/Home/bin/java -jar Contents/Resources/Java/myapp-0.6.4-SNAPSHOT.jar This works fine, until I codesing the App using an entitlements file that enables sandboxing. Like this: <key>com.apple.security.app-sandbox</key> <true/> After sandboxing has been enabled like this, I get the following error when I try to start the app: Contents/MacOS/launcher: /Users/alex/Library/Containers/com.myapp/Data/MyApp.app/Contents/MacOS/launcher: No such file or directory Apparently, this folder exists /Users/alex/Library/Containers/com.myapp/Data, but does not contain a MyApp.app folder. How can I configure my launcher properly to work with sandboxing?
3
0
855
Aug ’22
Remove/ Replace embedded Info.plist
Hi, I would like to bundle an OpenJDK runtime into my app. When uploading to the App Store, I get the following error: CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value 'net.java.openjdk.java' of 'java' is already in use by another application. When I code-sign the JRE inside of my bundle, this embedded information is not updated or deleted. What would be the proper way to remove/ change this embedded Info.plist information? It is embedded in the java binary.
0
0
813
Jul ’22
Asset validation failed
Hi I am trying to upload an App to the App Store. It is a Java application with a small Swift wrapper. I build for both arm64 and x86-64 and include JREs for both architectures inside the bundle. The Launcher App: @main struct LauncherApp {       static let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "drrename")       static func main() {           var jrePath: String = ""       #if arch(arm64)     if let jrePathArm64 = Bundle.main.path(forResource: "jre-18.0.1_10_arm64/Contents/Home/bin/java", ofType: ""){       jrePath = jrePathArm64     }       #elseif arch(x86_64)     if let jrePathX86 = Bundle.main.path(forResource: "jre-18.0.1_10_x64/Contents/Home/bin/java", ofType: ""){       jrePath = jrePathX86     }       #endif           if jrePath != "" {       logger.log("Got jre path: \(jrePath)")       if let jarPath = Bundle.main.path(forResource: "drrename-0.6.4-SNAPSHOT", ofType: "jar"){         logger.log("Got jar path: \(jarPath)")         let task = Process()         task.launchPath = jrePath         task.arguments = ["-jar", jarPath]         task.launch()         task.waitUntilExit()       } else {         logger.critical("Failed to get jar path")       }     } else {       logger.critical("Failed to get jre path")     }   } } I get the following error: I understand that both arm and x86 are required, that is why I package both x86-64 and arm64 JREs inside the bundle. How can I resolve this error? Many thanks!
3
0
1.8k
Jul ’22