Ableton / LinkKit

iOS SDK for Ableton Link, a new technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices.
http://ableton.github.io/linkkit
Other
147 stars 10 forks source link

LinkKit for Catalyst/UIKitForMac #52

Closed jayrhynas closed 3 years ago

jayrhynas commented 5 years ago

Are there any plans to release a compiled version of LinkKit that's compatible with the UIKitForMac platform?

Background:

At WWDC 2019, Apple announced Catalyst, a new way to compile iPad apps and run them on the Mac. This was previously announced under the code name Marzipan in 2018.

Most iOS dependencies provided as source work fine with Catalyst. Xcode happily re-compiles them for the "UIKitForMac" platform. However, since LinkKit is distributed as a binary-only framework, Catalyst apps can't link against it.

Cclleemm commented 5 years ago

+1 @jayrhynas hope it will release soon :)

fgo-ableton commented 5 years ago

Thanks for asking. Here's a test version of LinkKit containing a xcframework that works with UIKit for Mac: LinkKit_uikitformac_test.zip Let me know if that works for you. This breaks compatibility with Xcode versions older than 11, so we'll probably have a fat lib and a xcframework in the next release. We'll wait until Catalyst is out of beta with that. Anyways, feel free to use this or build LinkKit from source for testing in the meantime.

fgo-ableton commented 4 years ago

I just uploaded a beta with Catalyst support: https://github.com/Ableton/LinkKit/releases/tag/LinkKit-3.1.0-Beta

uwehollatz commented 4 years ago

Is there a plan/timeline to publish a release of 3.1.0 or at least a release candidate?

fgo-ableton commented 4 years ago

@uwehollatz Here's a new release: https://github.com/Ableton/LinkKit/releases/tag/LinkKit-3.1.0 I still marked it a pre-release, because only I have tested it. If you (or someone else) could confirm it's working as expected, I'll remove the pre-release tag.

uwehollatz commented 4 years ago

OK cool, I will do the testing and report back to you, thanks much!

uwehollatz commented 4 years ago

I have tested and I can confirm that the pre-release 3.1.0 is working as expected. Brilliant.

Two side notes:

May be its worth to create new issues to track that separately?

fgo-ableton commented 4 years ago

Thanks for testing! I'll remove the pre-release tag then.

Regarding the other points: Yes, please open new issues.

alessandropetrolati commented 4 years ago

Hello, the libABLLink.a form the LinkKit-3.1.0 (beta and release) does not works anymore in the simulator, this is because the simulator need to be compiled either as i386.

If you use the limo command

lipo -info libABLLink.a

you will see in the 3.1.o only armv7 arm64 and x86_64 supported architectures. In the previous version (3.0.5) also i386 is supported. In the same way, the .xcframework ios-x86_64-simulator should contains either x86_64 and i386

Thanks, cheers.


Alessandro Petrolati Loc. Acquaviva, 33 61043 Cagli/PU Italy

www.apesoft.it http://www.apesoft.it/ info@apesoft.it apps@apesoft.it mailto:info@alessandro-petrolati.it

On 24 Feb 2020, at 11:25, fgo notifications@github.com wrote:

Thanks for testing! I'll remove the pre-release tag then.

Regarding the other points: Yes, please open new issues.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Ableton/LinkKit/issues/52?email_source=notifications&email_token=AAYDGSCZFMPBTOJT4UU4F4DREOOCJA5CNFSM4IBIWRG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMXI54Q#issuecomment-590253810, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYDGSDH6BXXGZIK76OXARDREOOCJANCNFSM4IBIWRGQ.

uwehollatz commented 4 years ago

@alessandropetrolati LinkKit 3.1.0 is 64bit only. i386 is build for 32bit processor family and removed since that version. And, of course it's running in simulator. Please update your build platform.

alessandropetrolati commented 4 years ago

I got this error for iOS Simulator-x86_64

ld: warning: ignoring file /Users/io/Library/Developer/Xcode/DerivedData/apeMatrix-gyabcjbqbqongxffolkgwisnaili/Build/Products/Release-iphonesimulator/libLinkKit.a, building for iOS Simulator-i386 but attempting to link with file built for iOS Simulator-x86_64 Undefined symbols for architecture i386: "_ABLLinkCaptureAppSessionState", referenced from: -[APE_SYNC bpm] in APE_SYNC.o "_ABLLinkNew", referenced from: -[APE_SYNC initLinkData:] in APE_SYNC.o "_ABLLinkSetSessionTempoCallback", referenced from: -[APE_SYNC initLinkData:] in APE_SYNC.o "_ABLLinkSetIsEnabledCallback", referenced from: -[APE_SYNC initLinkData:] in APE_SYNC.o "_ABLLinkIsEnabled", referenced from: -[APE_SYNC initLinkData:] in APE_SYNC.o -[APE_SYNC isConnectedFromABL] in APE_SYNC.o -[APE_SYNC isLinkEnabled] in APE_SYNC.o "_ABLLinkGetTempo", referenced from: -[APE_SYNC setIsPlaying:] in APE_SYNC.o -[APE_SYNC bpm] in APE_SYNC.o -[APE_SYNC startSendClock] in APE_SYNC.o "_ABLLinkDelete", referenced from: -[APE_SYNC dealloc] in APE_SYNC.o "_ABLLinkIsPlaying", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o "_ABLLinkCaptureAudioSessionState", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o renderMetronomeIntoBuffer(APE_SYNC, AudioTimeStamp const, unsigned long, AudioBufferList, float, int, int) in APE_SYNC.o -[APE_SYNC setIsPlaying:] in APE_SYNC.o -[APE_SYNC startSendClock] in APE_SYNC.o "_ABLLinkSetIsPlaying", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o "_OBJCCLASS$_ABLLinkSettingsViewController", referenced from: objc-class-ref in APE_SYNC.o "_ABLLinkRequestBeatAtStartPlayingTime", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o "_ABLLinkCommitAudioSessionState", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o "_ABLLinkRequestBeatAtTime", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o "_ABLLinkSetStartStopCallback", referenced from: -[APE_SYNC initLinkData:] in APE_SYNC.o "_ABLLinkPhaseAtTime", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o renderMetronomeIntoBuffer(APE_SYNC, AudioTimeStamp const, unsigned long, AudioBufferList, float, int, int) in APE_SYNC.o "_ABLLinkSetTempo", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o "_ABLLinkBeatAtTime", referenced from: abletonLinkComputeBeatFromAudio(APE_SYNC, unsigned long, AudioTimeStamp const, unsigned long, unsigned long, AudioBufferList, HostCallbackInfo) in APE_SYNC.o renderMetronomeIntoBuffer(APE_SYNC, AudioTimeStamp const, unsigned long, AudioBufferList, float, int, int) in APE_SYNC.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

On 29 Feb 2020, at 14:57, Uwe Hollatz notifications@github.com wrote:

@alessandropetrolati https://github.com/alessandropetrolati LinkKit 3.1.0 is 64bit only. i386 is build for 32bit processor family and removed since that version. And, of course it's running in simulator. Please update your build platform.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Ableton/LinkKit/issues/52?email_source=notifications&email_token=AAYDGSHMU3WNIGK7HUIJMSTRFEJ4BA5CNFSM4IBIWRG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENL2XUA#issuecomment-592948176, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYDGSAWSMBGLSCA6KEYXMDRFEJ4BANCNFSM4IBIWRGQ.

uwehollatz commented 4 years ago

Please make sure you have updated your build settings, remove any i386 reference: here is mine as an example:

https://www.dropbox.com/s/6fsa0a9pinyal07/Screenshot%202020-02-29%2016.09.15.png?dl=0

alessandropetrolati commented 4 years ago

I’ve exactly this configuration but still not works, very confused! I’m compiling in Objective-C++. Thanks.

On 29 Feb 2020, at 16:10, Uwe Hollatz notifications@github.com wrote:

Please make sure you have updated your build settings, remove any i386 reference: here is mine as an example:

https://www.dropbox.com/s/6fsa0a9pinyal07/Screenshot%202020-02-29%2016.09.15.png?dl=0 https://www.dropbox.com/s/6fsa0a9pinyal07/Screenshot%202020-02-29%2016.09.15.png?dl=0 — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Ableton/LinkKit/issues/52?email_source=notifications&email_token=AAYDGSFI7IXMCGRMQUCZT7LRFESODA5CNFSM4IBIWRG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENL4MBQ#issuecomment-592954886, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAYDGSFPSTKO3N4IWTBCB3DRFESODANCNFSM4IBIWRGQ.

fgo-ableton commented 4 years ago

@alessandropetrolati As @uwehollatz stated above, we had to drop support for that architecture in the latest release. The log you pasted above says building for iOS Simulator-i386 which indicates Xcode is trying to build for that architecture. If you can't find the corresponding section in the Xcode settings, maybe try to set up a new Xcode project. Also, we added an .xcodebundle to the release which should adding LinkKit to a Xcode 11 project easier. Objective-C++ shouldn't be a problem, it is used in LinkKit as well.

cerupcat commented 3 years ago

I'm able to compile the latest version of LinkKit (with Catalyst) in Debug, but not in Release / Archive on the latest Xcode Beta. The following error occurs both in my own project and the LinkHut example project when trying to build / archive. It builds fine in debug since Build For Active Architecture is YES, but not in release; therefore, there's no way to submit to the AppStore.

It looks like this is related to Apple adding arm64 for the new Apple Silicon architecture.

Screen Shot 2020-09-04 at 3 52 47 PM

fgo-ableton commented 3 years ago

@cerupcat Here's a build made with Xcode 12 beta 6. Could you check if that works for you?

jnpdx commented 3 years ago

@fgo-ableton That build worked for me when I was encountering the same issue (on Xcode 12.2 -- release version). Thank you.

fgo-ableton commented 3 years ago

Hey all, here's a pre-release with support for Apple Silicon. It would be great if someone could give it a sanity check.