Forums

OverviewFelgo 2 Support (Qt 5) › AnimatedSpriteVPlay crashes on iPhone

Tagged: 

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #17126

    Marcin

    Hi Felgo,
    So I started testing my app on iPhone and unfortunately hit hard crash.
    I managed to isolate the issue, what wasn’t easy at all in a big application.

    Example whole log:

    Starting remote process.
    objc[18525]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x114485cc0) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1141fb6f0). One of the two will be used. Which one is undefined.
    QML debugging is enabled. Only use this in a safe environment.
    JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform.
    System: loading config file from: "qml/config.json"
    NOTE: you are running a development build in Debug Mode. When you are ready to publish your app to the app stores, switch to Release mode and enable a publish build. You can enable a publish build in the config.json file in your qml folder by setting the "stage" property to "publish". For more information see: https://felgo.com/doc/vplay-publishing/
    WARNING: VPlayFileUtils: Did not find the file or directory: "qml/translations"
    setting extrafileSelectorList to ("hd", "sd") , allFileSelectors: ("hd", "sd", "en_US", "unix", "darwin", "mac", "ios")
    setting internalContentScaleFactorForImages which is used for MultiResolutionImage contextProperty to 0.5
    VPlayApplication: setting screenDpi contextProperty to 326
    VPlayApplication: setting devicePixelRatio contextProperty to 2
    VPlayApplication: setMainQmlFileName called for qmlFileName "qml/Main.qml" , used file: "qml/Main.qml"
    JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform.
    stale focus object QObject(0x0) , doing manual update
    qml: no licenseKey set, generate one here to remove the Felgo Splash screen and to use plugins for monetization, analytics, push notifications, social networks & more: http://felgo.com/licenseKey
    Run ended.

     

    Full source code:

    import Felgo 3.0
    import QtQuick 2.0
    
    GameWindow {
        id: gameWindow
        activeScene: scene
        screenWidth: 640
        screenHeight: 960
    
        Scene {
            id: scene
            width: 320
            height: 480
    
            AnimatedSpriteVPlay {
                frameWidth: 1
                frameHeight: 1
                frameCount: 1
                frameDuration: 1
                source: "../assets/vplay-logo.png"
            }
        }
    }

     

    It crashes when I put valid source, by valid I mean to a file which exists.
    Didn’t test on Android yet, will try later.
    It crashes on iPhone simulator and normal iPhone device(tried iPhone 6).
    The moment the scene where animation exists becomes visible you get run ended and that’s all basically.
    I am using newest Felgo with MacOS Sierra 10.12.6 and XCode Version 8.3.3 (8E3004b)
    Are you able to replicate this issue?

     

    PS. The fix I am doing currently is not giving the valid source parameter. Of course the animation doesn’t work but at least the app doesn’t crash.
    Other parameters on animation, like frameCount etc, don’t seem to make any difference.

    #17131

    Günther
    Felgo Team

    Hi Marcin!

    This issue of SpriteSequence only affects iOS applications and leads to the crash you mentioned.
    We are already working on a solution for this problem – we hope to solve it by the end of this week.

    Best,
    Günther

    #17132

    Marcin

    Hi Günther,
    Thanks, good to know.
    Fortunately I am not in urgent rush to fix it, can wait a week or so.

    PS. Off topic question. Do you know when the issue was introduced?

    #17154

    Günther
    Felgo Team

    I’m not 100% sure, but I guess it’s been around a while and probably appeared at some Qt version update.

    #17213

    Günther
    Felgo Team

    Hi Marcin,
    I got some news about the sprite issue on iOS:.
    The issue is actually a problem with the current version of Qt:
    Adding import QtQuick.Particles 2.0 to a Qt project that uses a SpriteSequence leads to the said crash. So it is currently not possible to use particles and sprite animations together on iOS with Qt. We improved some dependencies in the Felgo SDK to not import Qt Particles automatically, which lets you use sprites on iOS again.

    ​We also filed a qt bug report regarding this issue, let’s hope they will solve it soon:
    https://bugreports.qt.io/browse/QTBUG-63478

    How to get the fix:
    ​​We released a new iOS engine package with version 2.13.1-1 for all users that fixes the crash with SpriteSequence on iOS.
    ​The new iOS package was released as an update but you do not get an upgrade notice in Qt Creator because the main package did not change. You can install the update manually by running the MaintenanceTool to update the iOS Build Kit.

    If particles are wanted as well, please

    • Add import QtQuick.Particles 2.0 in your main.qml (qmlimportscanner links particle libraries again then)
    • and use animations with TexturePacker instead, which are not affected by the Qt iOS sprite crash

    Note: Using both particles and Qt sprites in parallel is not possible at the moment for iOS.

     

    Best,

    ​Günther from Felgo

    #17247

    Marcin

    Hi Günther,
    Thank you for the update.
    I gave thumb up for the issue on Qt bug tracker, maybe will help.

    Will test it soon but I believe you 🙂

    For now this is not an issue for me.
    If I decide to use particles can switch to texture packer which I wanted to use eventually anyway.

    PS. Notifications from this forum for some time land in spam folder(gmail). Looks like need to add some addresses to white list.

Viewing 6 posts - 1 through 6 (of 6 total)

RSS feed for this thread

You must be logged in to reply to this topic.

Voted #1 for:

  • Easiest to learn
  • Most time saving
  • Best support

Develop Cross-Platform Apps and Games 50% Faster!

  • Voted the best supported, most time-saving and easiest to learn cross-platform development tool
  • Based on the Qt framework, with native performance and appearance on all platforms including iOS and Android
  • Offers a variety of plugins to monetize, analyze and engage users
FREE!
create apps
create games
cross platform
native performance
3rd party services
game network
multiplayer
level editor
easiest to learn
biggest time saving
best support