diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index dcf5d331..b36349cb 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -33,13 +33,8 @@ jobs: cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=ios.toolchain.cmake -DPLATFORM=OS64 -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED="NO" -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY="" cmake --build . --config Release --target pojavexec PojavLauncher cd ../.. - cp Natives/build/Release-iphoneos/libpojavexec.dylib PojavLauncher.app/Frameworks/ - - - name: Upload built natives - uses: actions/upload-artifact@v2 - with: - name: app - path: Natives/build/Release-iphoneos + mkdir -p Natives/build/Release-iphoneos/PojavLauncher.app/Frameworks + cp Natives/build/Release-iphoneos/libpojavexec.dylib Natives/build/Release-iphoneos/PojavLauncher.app/Frameworks/ - name: Java Build run: | @@ -47,13 +42,14 @@ jobs: chmod +x gradlew ./gradlew clean build cd .. - mkdir PojavLauncher.app/libs - cp JavaApp/build/libs/*.jar PojavLauncher.app/libs + mkdir Natives/build/Release-iphoneos/PojavLauncher.app/libs + cp JavaApp/build/libs/pojavlauncher-1.0.jar Natives/build/Release-iphoneos/PojavLauncher.app/launcher.jar - - name: Package IPA + - name: Sign and Package IPA run: | mkdir Payload - mv PojavLauncher.app Payload/ + mv Natives/build/Release-iphoneos/PojavLauncher.app Payload/ + codesign -fs "PojavLauncher" --entitlements entitlements.xml Payload/PojavLauncher.app/PojavLauncher zip -r PojavLauncher.ipa Payload - name: Upload IPA diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java index 38fa67e8..4ab32da3 100644 --- a/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java +++ b/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java @@ -11,6 +11,7 @@ import org.robovm.apple.uikit.*; import org.robovm.pods.dialog.*; */ import net.kdt.pojavlaunch.prefs.*; +import net.kdt.pojavlaunch.utils.*; import net.kdt.pojavlaunch.value.*; public class PLaunchApp /* extends UIApplicationDelegateAdapter */ { diff --git a/Natives/JavaLauncher.c b/Natives/JavaLauncher.c index 8edf4f9c..0fa387fd 100644 --- a/Natives/JavaLauncher.c +++ b/Natives/JavaLauncher.c @@ -81,8 +81,9 @@ int launchJVM() { fclose(argsFile); } - margc[margv++] = "-jar"; + margc[margv++] = "-cp"; margc[margv++] = main_jar; + margc[margv++] = "net.kdt.pojavlaunch.PLaunchApp"; // Load java void* libjli = dlopen("/usr/lib/jvm/java-16-openjdk/lib/libjli.dylib", RTLD_LAZY | RTLD_GLOBAL); diff --git a/entitlements.xml b/entitlements.xml new file mode 100644 index 00000000..3bb1b980 --- /dev/null +++ b/entitlements.xml @@ -0,0 +1,19 @@ + + + + com.apple.private.security.container-required + + com.apple.security.exception.files.absolute-path.read-write + + / + + platform-application + + com.apple.private.skip-library-validation + + get-task-allow + + dynamic-codesigning + + +