Author Topic: Cannot get newer iOS version running on Delphi  (Read 121 times)

MikeatBookup

  • Posts: 32
Using Delphi 11 targeting an iPad Pro running 14.7.1.

BASS_GetVersion() comes back with 2.4.15.1 so I thought I'd try updating to the libbass.a file from:

ios-arm64_armv7_armv7s downloaded from www.un4seen.com/files/bass24-ios.zip (updated: 23 Sep '21)

Delphi now fails to build the project, giving these messages:

[DCC Error] E2597 Undefined symbols for architecture arm64:
    Error: "_AVAudioSessionCategorySoloAmbient", referenced from:      l043 in libbass.a(libbass.a-arm64-master.o);
      Error: "_AVAudioSessionInterruptionNotification", referenced from:      l043 in libbass.a(libbass.a-arm64-master.o);
      Error: "_AVAudioSessionCategoryPlayAndRecord", referenced from:      l043 in libbass.a(libbass.a-arm64-master.o);
      Error: "_AVAudioSessionCategoryAmbient", referenced from:      l043 in libbass.a(libbass.a-arm64-master.o);
      Error: "_AVAudioSessionMediaServicesWereResetNotification", referenced from:      l043 in libbass.a(libbass.a-arm64-master.o);
      Error: "_AVAudioSessionCategoryPlayback", referenced from:      l043 in libbass.a(libbass.a-arm64-master.o);
      Error: "_AVAudioSessionInterruptionTypeKey", referenced from:      l285 in libbass.a(libbass.a-arm64-master.o);
      Error: "_OBJC_CLASS_$_AVAudioSession", referenced from:      objc-class-ref in libbass.a(libbass.a-arm64-master.o);

  ld: symbol(s) not found for architecture arm64

Am I using the wrong libbass.a file?  (Trying the one for the simulator correctly gave an error that it is for a simulator and not a device.)

Ian @ un4seen

  • Administrator
  • Posts: 23938
Re: Cannot get newer iOS version running on Delphi
« Reply #1 on: 24 Sep '21 - 16:06 »
Adding the AVFoundation framework to your project should fix that. That framework is required since BASS 2.4.16 for the audio session stuff (BASS was previously using the old/deprecated audio session functions).

MikeatBookup

  • Posts: 32
Re: Cannot get newer iOS version running on Delphi
« Reply #2 on: 24 Sep '21 - 17:09 »
Thanks, Ian. That pointed me in the right direction. While the AVFoundation framework appears to already be available to all projects, Delphi has this setting that I don't understand...

Project | Options | Building | Delphi Compiler | Linking
Target All Configurations - iOS Device 64bit platform
Options passed to the LD linker:

-framework AudioToolbox -framework CFNetwork

I changed the value to:

-framework AudioToolbox -framework CFNetwork -framework AVFoundation

This got the project running on the iPad, reporting BASS version 2.4.16.7.

When I create a new blank iOS Delphi project this setting is blank.
Is this particular setting done to support BASS?