Added iOS module
16
build.gradle
@ -7,6 +7,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.0'
|
||||
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
|
||||
classpath 'com.android.tools.build:gradle:3.0.1'
|
||||
classpath "com.badlogicgames.gdx:gdx-tools:1.9.8"
|
||||
@ -24,6 +25,7 @@ allprojects {
|
||||
versionType = 'release'
|
||||
appName = 'Mindustry'
|
||||
gdxVersion = '1.9.8'
|
||||
roboVMVersion = '2.3.0'
|
||||
aiVersion = '1.8.1'
|
||||
uCoreVersion = '55f0d90'
|
||||
|
||||
@ -103,6 +105,20 @@ project(":android") {
|
||||
}
|
||||
}
|
||||
|
||||
project(":ios") {
|
||||
apply plugin: "java"
|
||||
apply plugin: "robovm"
|
||||
|
||||
|
||||
dependencies {
|
||||
compile project(":core")
|
||||
compile "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
|
||||
compile "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
|
||||
compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
|
||||
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
|
||||
}
|
||||
}
|
||||
|
||||
project(":core") {
|
||||
apply plugin: "java"
|
||||
|
||||
|
@ -10,7 +10,7 @@ def PACKR_DIR = "$System.env.PACKR_DIR"
|
||||
def ICON_DIR = new File("core/assets/sprites/icon.icns")
|
||||
|
||||
ext.writeVersion = {
|
||||
def pfile = new File('../core/assets/version.properties')
|
||||
def pfile = new File('core/assets/version.properties')
|
||||
def props = new Properties()
|
||||
|
||||
try{
|
||||
|
59
ios/Info.plist.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${app.name}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${app.executable}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>${app.id}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${app.name}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${app.version}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${app.build}</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<true/>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
<string>opengles-2</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>CFBundleIcons</key>
|
||||
<dict>
|
||||
<key>CFBundlePrimaryIcon</key>
|
||||
<dict>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>Icon</string>
|
||||
<string>Icon-72</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
22
ios/build.gradle
Normal file
@ -0,0 +1,22 @@
|
||||
sourceSets.main.java.srcDirs = [ "src/" ]
|
||||
|
||||
sourceCompatibility = '1.8'
|
||||
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
||||
|
||||
ext {
|
||||
mainClassName = "io.anuke.mindustry.IOSLauncher"
|
||||
}
|
||||
|
||||
launchIPhoneSimulator.dependsOn build
|
||||
launchIPadSimulator.dependsOn build
|
||||
launchIOSDevice.dependsOn build
|
||||
createIPA.dependsOn build
|
||||
|
||||
robovm {
|
||||
archs = "thumbv7:arm64"
|
||||
}
|
||||
|
||||
eclipse.project {
|
||||
name = appName + "-ios"
|
||||
natures 'org.robovm.eclipse.RoboVMNature'
|
||||
}
|
BIN
ios/data/Default-1024w-1366h@2x~ipad.png
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
ios/data/Default-375w-667h@2x.png
Normal file
After Width: | Height: | Size: 96 KiB |
BIN
ios/data/Default-414w-736h@3x.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
ios/data/Default-568h@2x.png
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
ios/data/Default.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
ios/data/Default@2x.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
ios/data/Default@2x~ipad.png
Normal file
After Width: | Height: | Size: 95 KiB |
BIN
ios/data/Default~ipad.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
ios/data/Icon-72.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
ios/data/Icon-72@2x.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
ios/data/Icon.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
ios/data/Icon@2x.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
6
ios/robovm.properties
Normal file
@ -0,0 +1,6 @@
|
||||
app.version=1.0
|
||||
app.id=io.anuke.mindustry
|
||||
app.mainclass=io.anuke.mindustry.IOSLauncher
|
||||
app.executable=IOSLauncher
|
||||
app.build=1
|
||||
app.name=Mindustry
|
47
ios/robovm.xml
Normal file
@ -0,0 +1,47 @@
|
||||
<config>
|
||||
<executableName>${app.executable}</executableName>
|
||||
<mainClass>${app.mainclass}</mainClass>
|
||||
<os>ios</os>
|
||||
<arch>thumbv7</arch>
|
||||
<target>ios</target>
|
||||
<iosInfoPList>Info.plist.xml</iosInfoPList>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>../core/assets</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<skipPngCrush>true</skipPngCrush>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>data</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<forceLinkClasses>
|
||||
<pattern>com.badlogic.gdx.scenes.scene2d.ui.*</pattern>
|
||||
<pattern>com.badlogic.gdx.graphics.g3d.particles.**</pattern>
|
||||
<pattern>com.android.okhttp.HttpHandler</pattern>
|
||||
<pattern>com.android.okhttp.HttpsHandler</pattern>
|
||||
<pattern>com.android.org.conscrypt.**</pattern>
|
||||
<pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>
|
||||
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings</pattern>
|
||||
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi</pattern>
|
||||
<pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std</pattern>
|
||||
<pattern>com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi</pattern>
|
||||
<pattern>com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL</pattern>
|
||||
<pattern>org.apache.harmony.security.provider.cert.DRLCertFactory</pattern>
|
||||
<pattern>org.apache.harmony.security.provider.crypto.CryptoProvider</pattern>
|
||||
</forceLinkClasses>
|
||||
<libs>
|
||||
<lib>z</lib>
|
||||
</libs>
|
||||
<frameworks>
|
||||
<framework>UIKit</framework>
|
||||
<framework>OpenGLES</framework>
|
||||
<framework>QuartzCore</framework>
|
||||
<framework>CoreGraphics</framework>
|
||||
<framework>OpenAL</framework>
|
||||
<framework>AudioToolbox</framework>
|
||||
<framework>AVFoundation</framework>
|
||||
</frameworks>
|
||||
</config>
|
20
ios/src/io/anuke/mindustry/IOSLauncher.java
Normal file
@ -0,0 +1,20 @@
|
||||
package io.anuke.mindustry;
|
||||
|
||||
import com.badlogic.gdx.backends.iosrobovm.IOSApplication;
|
||||
import com.badlogic.gdx.backends.iosrobovm.IOSApplicationConfiguration;
|
||||
import org.robovm.apple.foundation.NSAutoreleasePool;
|
||||
import org.robovm.apple.uikit.UIApplication;
|
||||
|
||||
public class IOSLauncher extends IOSApplication.Delegate {
|
||||
@Override
|
||||
protected IOSApplication createApplication() {
|
||||
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
|
||||
return new IOSApplication(new Mindustry(), config);
|
||||
}
|
||||
|
||||
public static void main(String[] argv) {
|
||||
NSAutoreleasePool pool = new NSAutoreleasePool();
|
||||
UIApplication.main(argv, null, IOSLauncher.class);
|
||||
pool.close();
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
include 'desktop', 'html', 'core', 'android', 'kryonet', 'server'
|
||||
include 'desktop', 'html', 'core', 'android', 'kryonet', 'server', 'ios'
|
||||
|
||||
if(System.properties["release"] == null || System.properties["release"].equals("false")){
|
||||
if (new File(settingsDir, '../uCore').exists()) {
|
||||
|