JACK on iOS 7
The current issue regarding JACK on iOS 7 (and higher) is actually serious. If it was just
an ordinary bug, we would already have fixed it. However it is in fact worse.
Apple introduced a new policy with iOS 7, which prohibits any Inter-Process
Communication (IPC) among third party apps. That's the actual reason why
JACK currently crashes on iOS 7, because all IPC mechanisms are now blocked for
all third party apps. Obviously, without a way to communicate with other apps,
we have no way to use or fix JACK for its purpose on iOS 7. Only Apple is in the
position to change this situation, since this is a policy restriction enforced
on operating system level. We can't do anything about it unfortunately. There are
various other app vendors who suffer under this new severe OS restriction as well
and we asked for a statement from Apple's side, i.e. on Apple's developer
forum and on Apple's bug tracking system (issue #14988888) and by contacting
some Apple engineers directly, however we got no statement whatsoever yet.
From what we have heard from other app vendors, they also got no reply from
Apple on their inquiries regarding this issue either. And the new restriction /
behaviour change is not mentioned in any of Apple's developer documents, which
is quite unusual, especially considering the large impact this change has on a
variety of apps.
Unless Apple does not show up any reaction on our inquiries, the only option
we currently have is to recycle the graphical user interface of JACK for Inter-App Audio (IAA).
But then we would have the same features and restrictions as Audiobus and all
other IAA host apps would have on iOS 7. So we are not sure about this option
yet. We hope you understand.
So in brief: it is unlikely that JACK will ever work again on iOS 7 upwards,
simply because it is not in our hands and we consider it unlikely that Apple
will move in its position regarding this new policy / OS restriction. In case
you want to continue using JACK on iOS, then you should not update your device
to iOS 7 or later. Keep in mind that you cannot downgrade your iOS version once
you updated it.
In case the current situation changes in any way, we will inform you on this
page, as well as via Email Notification and
Your JACK Audio Connection Kit Developers Team,
(November 6th 2013).
January 18th 2014
We just found a working solution for Inter-Process Communication on
iOS 7. So there are chances for JACK coming back and eventually touching ground
on iOS 7!
January 29th 2014
We are currently investigating, also talking with people from Apple, whether
there is a chance of bringing our previous way of Inter-Process Communication
back on iOS 7+. Reason: the working solution for Inter-Process Communication
on iOS 7 that we recently found (which is apparently also used by another
inter-app audio connection app on the App Store) is far more ineffecient than
the ones we are currently using in JACK. Plus we would need to adjust a
significant part of JACK to make it using this particular Inter-Process
Communication solution on iOS 7 instead. So we are probably deciding in
about one week where to go from here, whether we will adjust JACK for this
mentioned IPC method or whether it makes sense to wait for an update of iOS.
But for now we still recommend you: do not update your devices to iOS 7!
May 6th 2015
Sorry guys, but unfortunately it seems as if there is no future for JACK on iOS.
Even though iOS 8.1 brought back the required Inter-Process Communication
mechanisms needed for apps like JACK (i.e. shared memory and semaphores), all
those IPC mechanisms may only be used solely for communication between
apps of the same app vendor though. So it is still not allowed to communicate
between apps of various third party app developers. And obviously it makes no
sense to bring JACK back on iOS if it can only be used for connecting our own
audio apps with each other.
There is only one IPC mechanism available left for communication between arbitary third party
apps: CFMessagePorts, however using those would make JACK as inefficient as another
known inter-app audio connection app on the App Store, and consequently JACK would
also suffer under the same latency problems, etc. So that would destroy some of
the major benefits of JACK and thus we decided that it does not make sense to go
further with JACK on iOS at this point. In case the overall situation changes with
a future update of iOS, then we will update this page accordingly. However
after communication with various Apple engineers, it seems as if there is no
intention on Apple's side to change these restrictions regarding IPC on iOS in any way.