iOS Port

  • #1, by francisSunday, 01. November 2020, 18:30 3 years ago
    My game is coming along nicely and is almost complete.
    I was able to test it successfully on Mac and Windows.
    I am now trying to test the iOS port, created by following https://wiki.visionaire-tracker.net/wiki/Player_FAQ, but want to confirm a few things:

    Does the port work with the Simulator or only with tethered devices?
    I get an error that the libSDL2.a library is not compatible with the Simulator.

    In order to run the game on an Apple device, do I need to have an Apple Dev account in order to sign the certificate or is there another way around it?

    Thanks for all the help!

    BTW I'm using the latest version of Xcode 12.

    Newbie

    5 Posts


  • #2, by SimonSMonday, 02. November 2020, 13:40 3 years ago
    The project doesn't work on simulators.

    No you don't need an Apple account just to run it. At least I didn't here, they required that in earlier version. Just connect your phone and select it in xcode as destination.

    Thread Captain

    1581 Posts

  • #3, by francisSaturday, 14. November 2020, 00:01 3 years ago
    This is my first time ever using Xcode and working with mobile apps so I thought it would be good to document some of my findings and errors for both future developers and in case anyone can help me as I go along.

    Findings/Solved Errors
    • As Simon confirmed, a free Apple Dev account is sufficient for signing apps, so no need to pay $99 unless you need some kind of advanced features
    • Also the Visionaire Studio iOS export only works with physical devices and not the simulator. I am currently only testing on an iPhone 7 with iOS 13.1.2, but can hopefully get my hands on a few other devices for more testing.
    • Buildtime Error: Command LD failed with nonzero exit code
      The Build Settings -> Other Link Flags is set to a path with "simon/" in it. I changed this to: $(PROJECT_DIR)/net.sf.visionaire-studio.VisionairePlayer/libvisplayer.a
    • Buildtime Error: Undefined symbol $_SKPayment
      In Build Phases -> Link Binary with Libraries, add Storekit.framework (but NOT StorekitTest.framework)
    • On the iPhone itself I needed to update the setting for the non-appstore app
      General-> Device Management -> Trust
    • You can edit the icon for the app under Appicons - you should save the icon in several square resolutions for different devices and usages (iPad, iPhone, thumbnail)

    Open Issues
    • The sound doesn't work, both background music and dialogue. This may be related to the message No HRTFs found  HRTF not enabled!
    • For dialogue with sound files attached (all .ogg), the text is displayed for a split second and then disappears. If no sound file attached then it displays for normal length. This might be related to the sound issue in general.
    • When I quit, the app doesn't close but just goes to a black screen
    • Runtime Error: [NSError init] called; this results in an invalid NSError instance. It will raise an exception in a future release. Please call errorWithDomain:code:userInfo: or initWithDomain:code:userInfo:. This message shown only once.
      Don't know if this has any impact
    • Runtime Error: warning: writable resources in non-void vertex function vertex VS_OUTPUT
       note: writable buffer defined here
      vertex VS_OUTPUT vs_func(device VS_INPUT *input [[buffer(0)]],

      Don't know if this has any impact
    • 248 Buildtime Warnings: warning: (arm64) /Users/simon/Documents/jenkins/vis-repo/buildIos/src/vsplayer/Visionaire-Studio.build/Release_Full-iphoneos/VisionairePlayer.build/Objects-normal/arm64/XXXXX unable to open object file: No such file or directory
      I was only able to find these paths in the names.txt file. I updated the paths in that file, but there was no change. These are only warnings so it doesn't block building.

    Thanks in advance!

    Newbie

    5 Posts

  • #4, by francisMonday, 16. November 2020, 21:05 3 years ago
    Hi!
    Could use an answer regarding iOS support.
    According to https://wiki.visionaire-tracker.net/wiki/System_Requirements, apps should work on iOS 6+ (armv7)

    I just tried building to an iPad Mini (currently running iOS 9.3.5) and it failed because of an architecture error.

    Scenario 1
    VALID_ARCHS set to default, just arm64 arm64e  -> runtime error
    net.sf.visionaire-studio.VisionairePlayer's architectures (arm64) include none that iPad can execute (armv7f, armv7, armv6, armv5e, armv5, arm).

    Scenario 2
    Change Build Active Architecture Only to “No”
    VALID_ARCHS set to arm64 arm64e  armv7 armv7s -> build time error
    The linked library 'libvisplayer.a' is missing one or more architectures required by this target: armv7.

    Is this me just messing up Xcode settings (then I'd continue digging through Google) or is there a trick or limitation to know about?

    Thanks!

    Newbie

    5 Posts

  • #5, by SimonSTuesday, 17. November 2020, 09:48 3 years ago
    That's too old. I can't unfortunately update the wiki currently. But you need at least iOS 10 and 64bit if I remember correctly.

    Thread Captain

    1581 Posts

  • #6, by afrlmeTuesday, 17. November 2020, 13:19 3 years ago
    I could update the page, if you tell me what to replace it with. Send me the new text via DM on discord, if you want.

    Imperator

    7278 Posts

  • #7, by dionousSaturday, 28. November 2020, 13:06 3 years ago
    Many thanks Francis for the useful info!

    Have also managed to build and run on my Iphone 6S Plus (iOS 14) using XCode 12.2.

    Findings:

    I confirm the issue with the sound, there is no sound at all. I also see the following msg:

    No HRTFs found
    HRTF not enabled!

    The videos also just show for an instance and then disappear, perhaps also due to this HRTF issue?

    ---
    Other errors:

    [NSError init] called; this results in an invalid NSError instance. It will raise an exception in a future release. Please call errorWithDomain:code:userInfo: or initWithDomain:code:userInfo:. This message shown only once.

    Warnings (not sure if they affect anything):

    [450:28038] [Metal Compiler Warning] Warning: Compilation succeeded with:
    program_source:29:18: warning: writable resources in non-void vertex function
    vertex VS_OUTPUT vs_func(device VS_INPUT *input [[buffer(0)]],
                     ^

    [450:28038] Unbalanced calls to begin/end appearance transitions for .

    Regards,
    Chris

    Forum Fan

    246 Posts

  • #8, by SimonSThursday, 03. December 2020, 17:05 3 years ago
    The sound error will be fixed in the next update on the weekend, I had to move it back, because the Big Sur issues aren't fixed yet.

    Thread Captain

    1581 Posts