by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 22 15:05
    dkimitsa commented #519
  • Sep 22 14:53
    singha8 commented #519
  • Sep 21 15:36
    dkimitsa commented #519
  • Sep 21 15:22
    singha8 opened #519
  • Sep 18 06:48
    dkimitsa ready_for_review #515
  • Sep 18 06:48
    dkimitsa edited #515
  • Sep 18 06:47
    dkimitsa edited #515
  • Sep 18 06:46
    dkimitsa synchronize #515
  • Sep 17 15:39
    hujasonx closed #518
  • Sep 17 15:39
    hujasonx commented #518
  • Sep 16 05:33
    hujasonx opened #518
  • Sep 12 22:20
    fgnm commented #517
  • Sep 12 19:47
    dkimitsa commented #517
  • Sep 12 19:13
    fgnm commented #517
  • Sep 12 18:42
    fgnm edited #517
  • Sep 12 18:27
    fgnm opened #517
  • Sep 07 09:37
    dkimitsa synchronize #515
  • Sep 06 18:37
    PokeMMO commented #514
  • Sep 06 18:32
    dkimitsa commented #514
  • Sep 06 14:19
    PokeMMO commented #514
Demyan Kimitsa
@dkimitsa
When building with gradle you can controll what signing identity is used by specifying '-Probovm.iosSignIdentity={name}'
Clyde Stubbs
@clydebarrow

@LaP0573 I have it set up like this: in my ~/.gradle/gradle.properties (so therefore available to all projects):

releaseIosSignIdentity = C950966C55429D9C4AE187D051ECC15DAF8.....
releaseIosProvisioningProfile = 730f3a51-f1da-442e-b08e-43e0baab.....

Then in the app build.gradle

task ipa {
    doLast {
        robovm.iosSignIdentity = releaseIosSignIdentity
        robovm.iosProvisioningProfile = releaseIosProvisioningProfile
    }
    finalizedBy{ createIPA }
}

You can also automate the upload to the App store with a gradle task:

task verifyIPA(type:Exec) {
    dependsOn(ipa)
    commandLine("xcrun", "altool", "-v", "--apiKey", appStoreApiKey, "--apiIssuer",
        appStoreIssuerId, "-f", "${buildDir}/robovm/${robovmProperty('app.name')}.ipa")
}

task publishIPA(type:Exec) {
    dependsOn(verifyIPA)
    commandLine("xcrun", "altool", "--upload-app", "--apiKey", appStoreApiKey, "--apiIssuer",
        appStoreIssuerId, "-f", "${buildDir}/robovm/${robovmProperty('app.name')}.ipa")
}
Faust
@LaP0573

Thanks a lot @dkimitsa & @clydebarrow ! The problem was actually twofold :
1) Our publisher did not issue the correct distribution profile to us
2) I was using

ext {
    mainClassName = "com.xxx.xxx"
    releaseIosSignIdentity = "6276CXXX"
    releaseIosProvisioningProfile = "697XXX"
}

in the build.gradle & using the createIPA task, but I imagine it was not properly using these values because even setting them to the correct sign identity & provisioning profile wasn't working.However, using your ipa gradle task @clydebarrow did solve the problem and it started using the correct values (& asking me for keychain access which it wasn't before).
So thanks a lot :)

Faust
@LaP0573
Quick additional question about the build.gradle file, is there a way to supply the executable name there? I'd like my release IPAs to be named "ios-release" & my development IPAs to be named "ios-debug". Right now the name is supplied in the robovm.properties file, can I override that in the specific gradle task ?
Demyan Kimitsa
@dkimitsa
@LaP0573 as option you can generate property file with gradle task
Clyde Stubbs
@clydebarrow
@LaP0573 Here's a gradle task I use for setting the build number in robovm.properties. It could be adapted to set the app name as well.
task updateBuildNumber {
    doLast {
        Properties props = new Properties()
        File propsFile = new File("$projectDir/robovm.properties")
        props.load(propsFile.newDataInputStream())
        ext.appName= props.getProperty("app.name")
        props.setProperty("app.build", rootProject.ext.buildNumber.toString())
        props.store(propsFile.newWriter(), null)
    }
}
Oh, and my earlier post referenced a function to read properties from the robovm.properties file - here it is:
def robovmProperty(property) {
    Properties props = new Properties()
    File propsFile = new File("$projectDir/robovm.properties")
    props.load(propsFile.newDataInputStream())
    return props.getProperty(property)
}
obigu
@obigu
Why can't Apple just stop changing stuff for a while? Now it seems they've come up with a new format to pack frameworks... MobiVM/robovm#468 @dkimitsa Have you had a look at this format?
Demyan Kimitsa
@dkimitsa
Its just a folders with single arch frameworks inside and info plist
obigu
@obigu
how would we add it in our projects, just extract the .framework we need?
Demyan Kimitsa
@dkimitsa
Will check today if something to be adapted in compiler
obigu
@obigu
and bind it normally?
Demyan Kimitsa
@dkimitsa
Yep
obigu
@obigu
will it run on both simulator and devices?
Demyan Kimitsa
@dkimitsa
Thats the idea
Also we can pack mac and ios to single thing
And probably to have different headers
obigu
@obigu
ok, my point is this is not currently supported in MobiVM right?
Demyan Kimitsa
@dkimitsa
There is a thing about dependency management but i didnt dig so far yet
@obigu it should be stright forward to link it in robo project
Probably need just to add few extention in logic
Will check it in 1h deeply
obigu
@obigu
ok, it looks relatively simple yes
thx!
Guilherme Campos Hazan
@guichazan
Good morning people. How long! I hope everyone is fine in this quarentine. Well, i'm trying to run my app on iPhone but there's a very huge class named DBKeys that has about 8700 String definitions and it is throwing OutOfMemoryError when compiling:
[ERROR] Couldn't compile app
java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space
at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:306)
I already increased IDEA's memory, increased Gradle memory, without success.
Demyan Kimitsa
@dkimitsa
@guichazan how much ram you gave it ?
Guilherme Campos Hazan
@guichazan
3096 to Idea and 2536 to gradle
Demyan Kimitsa
@dkimitsa
@guichazan it crashes while trying to generate class info structure and structure for it seems to be huge, fails to allocate buffer for string of size 1.4gigs (but it does reallocate gig buffers 30000 times).
will check if there is a bug somewhere, but removing this constant class from forceLinkClasses list should solve a problem.
(robovm will just inline string consts without using the class itself)
Guilherme Campos Hazan
@guichazan
Thanks for the explanation. Removing from forceLinkClasses solved the issue
Wheeler Games
@wheelergames_gitlab
Hi everyone,
I've just started on the roller coaster that I assume getting iOS to work for libgdx
I've got just two starter questions (I'm running it from Android Studio)
1) Where can I see logs? I'm not seeing anything in studio
2) Do you always get that logo at the beginning and will it be like that for my live released games?
Clyde Stubbs
@clydebarrow
That "logo" is a splash screen and you can change it by changing the graphic asset. What sort of logs are you looking for? You will see runtime output in the robvovm window when you run. You may find Idea a better choice than Android Studio. Personally I choose to build and run the iOS version from the command line using gradle - I find this much more stable than running from within AS or Idea. Of course there's no debugging from the command line, but debugging Robovm is pretty hit and miss anyway, much easier and faster to debug the Android version.
Demyan Kimitsa
@dkimitsa
@clydebarrow hi, would be great if you share your debugging experience and what didn’t work for you
Wheeler Games
@wheelergames_gitlab
@clydebarrow - I wasn't looking for any splash screen logo! Can i remove it completely? Where does it live. Thanks
Clyde Stubbs
@clydebarrow
If you have no splash screen at all, there will be an uncomfortable pause while your game loads with no feedback to the user. Better to replace the graphic with your own suitable image. Apple has guidelines for splash screens - they call them Launch Screens. Google it.
Wheeler Games
@wheelergames_gitlab
ah well i already have my own splash screen while my assetmanager loads
but it appears that the other one comes up for a good 5 secs before the game
i don't particularly need debugging, but logging
Clyde Stubbs
@clydebarrow
Yeah, well just poke around in the folder tree - it's not hard to find. You'll see it in the AS file explorer.
Wheeler Games
@wheelergames_gitlab
i didn't see any logging apart from the game initialising and starting etc, i didn't see any crash logs
in the ios folder?
doh! found it within 0.5s of looking! haha
Clyde Stubbs
@clydebarrow
You can add an uncaught exception handler if you want crash logs.
Wheeler Games
@wheelergames_gitlab
do you mean add one just to test and find them?
Clyde Stubbs
@clydebarrow
And from the uncaught exception handler you can print to stderr, or use the Foundation log functions.
Or roll your own. Or use Crashlytics.
Wheeler Games
@wheelergames_gitlab
well i turned Crashyltics off for my debug builds