mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
iOS: Remove default Inter-App Audio entitlement from AU hosts
This commit is contained in:
parent
eb0ba226d3
commit
82377a787a
7 changed files with 34 additions and 18 deletions
|
|
@ -4,6 +4,26 @@ JUCE breaking changes
|
||||||
develop
|
develop
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
Change
|
||||||
|
------
|
||||||
|
The Projucer no longer automatically adds the iOS Inter-App Audio entitlement
|
||||||
|
to AU hosts.
|
||||||
|
|
||||||
|
Possible Issues
|
||||||
|
----------------
|
||||||
|
iOS AU hosts that rely upon Inter-App Audio will no longer be able to receive
|
||||||
|
Inter-App Audio.
|
||||||
|
|
||||||
|
Workaround
|
||||||
|
----------
|
||||||
|
Use the new "[Deprecated] AU Host Inter-App Audio Capability" option in the
|
||||||
|
Projucer.
|
||||||
|
|
||||||
|
Rationale
|
||||||
|
---------
|
||||||
|
Inter-App Audio is deprecated in iOS 13.
|
||||||
|
|
||||||
|
|
||||||
Change
|
Change
|
||||||
------
|
------
|
||||||
Unique device IDs on Windows have been updated to use a more reliable SMBIOS
|
Unique device IDs on Windows have been updated to use a more reliable SMBIOS
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>inter-app-audio</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
|
|
@ -103,7 +103,6 @@
|
||||||
94CB96C8E4B51F52776C2638 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
|
94CB96C8E4B51F52776C2638 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
|
||||||
97918AB43AD460AFA8FA2FFE /* PluginWindow.h */ /* PluginWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginWindow.h; path = ../../Source/UI/PluginWindow.h; sourceTree = SOURCE_ROOT; };
|
97918AB43AD460AFA8FA2FFE /* PluginWindow.h */ /* PluginWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginWindow.h; path = ../../Source/UI/PluginWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
97E63C295843A1E665E70473 /* cello.wav */ /* cello.wav */ = {isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = ../../../../examples/Assets/cello.wav; sourceTree = SOURCE_ROOT; };
|
97E63C295843A1E665E70473 /* cello.wav */ /* cello.wav */ = {isa = PBXFileReference; lastKnownFileType = file.wav; name = cello.wav; path = ../../../../examples/Assets/cello.wav; sourceTree = SOURCE_ROOT; };
|
||||||
9A92E8C5ECBBF926B5CF57BC /* App.entitlements */ /* App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = App.entitlements; path = App.entitlements; sourceTree = SOURCE_ROOT; };
|
|
||||||
9F9B445E6755CAA19E4344ED /* CoreAudio.framework */ /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
9F9B445E6755CAA19E4344ED /* CoreAudio.framework */ /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
||||||
A43CE79CB190C2D69E17E1E3 /* include_juce_audio_processors_ara.cpp */ /* include_juce_audio_processors_ara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_processors_ara.cpp; path = ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp; sourceTree = SOURCE_ROOT; };
|
A43CE79CB190C2D69E17E1E3 /* include_juce_audio_processors_ara.cpp */ /* include_juce_audio_processors_ara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_processors_ara.cpp; path = ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
A5DFC13E4F09134B0D226A3E /* MainHostWindow.h */ /* MainHostWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainHostWindow.h; path = ../../Source/UI/MainHostWindow.h; sourceTree = SOURCE_ROOT; };
|
A5DFC13E4F09134B0D226A3E /* MainHostWindow.h */ /* MainHostWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainHostWindow.h; path = ../../Source/UI/MainHostWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
|
@ -361,7 +360,7 @@
|
||||||
enabled = 0;
|
enabled = 0;
|
||||||
};
|
};
|
||||||
com.apple.InterAppAudio = {
|
com.apple.InterAppAudio = {
|
||||||
enabled = 1;
|
enabled = 0;
|
||||||
};
|
};
|
||||||
com.apple.Push = {
|
com.apple.Push = {
|
||||||
enabled = 0;
|
enabled = 0;
|
||||||
|
|
@ -445,7 +444,6 @@
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
CODE_SIGN_ENTITLEMENTS = "App.entitlements";
|
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)";
|
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)";
|
||||||
DEAD_CODE_STRIPPING = YES;
|
DEAD_CODE_STRIPPING = YES;
|
||||||
|
|
@ -585,7 +583,6 @@
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
CODE_SIGN_ENTITLEMENTS = "App.entitlements";
|
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)";
|
CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ namespace build_tools
|
||||||
|
|
||||||
if (isiOS)
|
if (isiOS)
|
||||||
{
|
{
|
||||||
if ((isAudioPluginProject && shouldEnableIAA) || isAUPluginHost)
|
if ((isAudioPluginProject && shouldEnableIAA) || (isAUPluginHost && isAUHostIAAEnabled))
|
||||||
entitlements.set ("inter-app-audio", "<true/>");
|
entitlements.set ("inter-app-audio", "<true/>");
|
||||||
|
|
||||||
if (isiCloudPermissionsEnabled)
|
if (isiCloudPermissionsEnabled)
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ namespace build_tools
|
||||||
bool isAUPluginHost = false;
|
bool isAUPluginHost = false;
|
||||||
bool isiCloudPermissionsEnabled = false;
|
bool isiCloudPermissionsEnabled = false;
|
||||||
bool isPushNotificationsEnabled = false;
|
bool isPushNotificationsEnabled = false;
|
||||||
|
bool isAUHostIAAEnabled = false;
|
||||||
bool isAppGroupsEnabled = false;
|
bool isAppGroupsEnabled = false;
|
||||||
bool isHardenedRuntimeEnabled = false;
|
bool isHardenedRuntimeEnabled = false;
|
||||||
bool isAppSandboxEnabled = false;
|
bool isAppSandboxEnabled = false;
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ public:
|
||||||
iosBackgroundAudioValue (settings, Ids::iosBackgroundAudio, getUndoManager()),
|
iosBackgroundAudioValue (settings, Ids::iosBackgroundAudio, getUndoManager()),
|
||||||
iosBackgroundBleValue (settings, Ids::iosBackgroundBle, getUndoManager()),
|
iosBackgroundBleValue (settings, Ids::iosBackgroundBle, getUndoManager()),
|
||||||
iosPushNotificationsValue (settings, Ids::iosPushNotifications, getUndoManager()),
|
iosPushNotificationsValue (settings, Ids::iosPushNotifications, getUndoManager()),
|
||||||
|
iosAUHostIAAValue (settings, Ids::iosAUHostIAA, getUndoManager()),
|
||||||
iosAppGroupsValue (settings, Ids::iosAppGroups, getUndoManager()),
|
iosAppGroupsValue (settings, Ids::iosAppGroups, getUndoManager()),
|
||||||
iCloudPermissionsValue (settings, Ids::iCloudPermissions, getUndoManager()),
|
iCloudPermissionsValue (settings, Ids::iCloudPermissions, getUndoManager()),
|
||||||
networkingMulticastValue (settings, Ids::networkingMulticast, getUndoManager()),
|
networkingMulticastValue (settings, Ids::networkingMulticast, getUndoManager()),
|
||||||
|
|
@ -224,6 +225,7 @@ public:
|
||||||
bool isBackgroundAudioEnabled() const { return iosBackgroundAudioValue.get(); }
|
bool isBackgroundAudioEnabled() const { return iosBackgroundAudioValue.get(); }
|
||||||
bool isBackgroundBleEnabled() const { return iosBackgroundBleValue.get(); }
|
bool isBackgroundBleEnabled() const { return iosBackgroundBleValue.get(); }
|
||||||
bool isPushNotificationsEnabled() const { return iosPushNotificationsValue.get(); }
|
bool isPushNotificationsEnabled() const { return iosPushNotificationsValue.get(); }
|
||||||
|
bool isAUHostIAAEnabled() const { return iosAUHostIAAValue.get(); }
|
||||||
bool isAppGroupsEnabled() const { return iosAppGroupsValue.get(); }
|
bool isAppGroupsEnabled() const { return iosAppGroupsValue.get(); }
|
||||||
bool isiCloudPermissionsEnabled() const { return iCloudPermissionsValue.get(); }
|
bool isiCloudPermissionsEnabled() const { return iCloudPermissionsValue.get(); }
|
||||||
bool isNetworkingMulticastEnabled() const { return networkingMulticastValue.get(); }
|
bool isNetworkingMulticastEnabled() const { return networkingMulticastValue.get(); }
|
||||||
|
|
@ -616,6 +618,9 @@ public:
|
||||||
props.add (new ChoicePropertyComponent (iCloudPermissionsValue, "iCloud Permissions"),
|
props.add (new ChoicePropertyComponent (iCloudPermissionsValue, "iCloud Permissions"),
|
||||||
"Enable this to grant your app the capability to use native file load/save browser windows on iOS.");
|
"Enable this to grant your app the capability to use native file load/save browser windows on iOS.");
|
||||||
|
|
||||||
|
props.add (new ChoicePropertyComponent (iosAUHostIAAValue, "[Deprecated] AU Host Inter-App Audio Capability"),
|
||||||
|
"If your app is an AU host then you can enable this to grant your app the capability to receive Inter-App Audio. "
|
||||||
|
"Inter-App Audio is deprecated in iOS 13.");
|
||||||
}
|
}
|
||||||
|
|
||||||
props.add (new ChoicePropertyComponent (networkingMulticastValue, "Networking Multicast Capability"),
|
props.add (new ChoicePropertyComponent (networkingMulticastValue, "Networking Multicast Capability"),
|
||||||
|
|
@ -1336,9 +1341,8 @@ public:
|
||||||
|
|
||||||
capabilities["ApplicationGroups.iOS"] = owner.iOS && owner.isAppGroupsEnabled();
|
capabilities["ApplicationGroups.iOS"] = owner.iOS && owner.isAppGroupsEnabled();
|
||||||
capabilities["InAppPurchase"] = owner.isInAppPurchasesEnabled();
|
capabilities["InAppPurchase"] = owner.isInAppPurchasesEnabled();
|
||||||
capabilities["InterAppAudio"] = owner.iOS && ((type == Target::StandalonePlugIn
|
capabilities["InterAppAudio"] = owner.iOS && ((type == Target::StandalonePlugIn && owner.getProject().shouldEnableIAA())
|
||||||
&& owner.getProject().shouldEnableIAA())
|
|| (owner.getProject().isAUPluginHost() && owner.isAUHostIAAEnabled()));
|
||||||
|| owner.getProject().isAUPluginHost());
|
|
||||||
capabilities["Push"] = owner.isPushNotificationsEnabled();
|
capabilities["Push"] = owner.isPushNotificationsEnabled();
|
||||||
capabilities["Sandbox"] = type == Target::AudioUnitv3PlugIn || owner.isAppSandboxEnabled();
|
capabilities["Sandbox"] = type == Target::AudioUnitv3PlugIn || owner.isAppSandboxEnabled();
|
||||||
capabilities["HardenedRuntime"] = owner.isHardenedRuntimeEnabled();
|
capabilities["HardenedRuntime"] = owner.isHardenedRuntimeEnabled();
|
||||||
|
|
@ -1400,7 +1404,7 @@ public:
|
||||||
|| owner.isHardenedRuntimeEnabled()
|
|| owner.isHardenedRuntimeEnabled()
|
||||||
|| owner.isNetworkingMulticastEnabled()
|
|| owner.isNetworkingMulticastEnabled()
|
||||||
|| (owner.isiOS() && owner.isiCloudPermissionsEnabled())
|
|| (owner.isiOS() && owner.isiCloudPermissionsEnabled())
|
||||||
|| (owner.isiOS() && owner.getProject().isAUPluginHost()))
|
|| (owner.isiOS() && owner.getProject().isAUPluginHost() && owner.isAUHostIAAEnabled()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (owner.project.isAudioPluginProject()
|
if (owner.project.isAudioPluginProject()
|
||||||
|
|
@ -3197,6 +3201,7 @@ private:
|
||||||
options.isAUPluginHost = project.isAUPluginHost();
|
options.isAUPluginHost = project.isAUPluginHost();
|
||||||
options.isiCloudPermissionsEnabled = isiCloudPermissionsEnabled();
|
options.isiCloudPermissionsEnabled = isiCloudPermissionsEnabled();
|
||||||
options.isPushNotificationsEnabled = isPushNotificationsEnabled();
|
options.isPushNotificationsEnabled = isPushNotificationsEnabled();
|
||||||
|
options.isAUHostIAAEnabled = isAUHostIAAEnabled();
|
||||||
options.isAppGroupsEnabled = isAppGroupsEnabled();
|
options.isAppGroupsEnabled = isAppGroupsEnabled();
|
||||||
options.isHardenedRuntimeEnabled = isHardenedRuntimeEnabled();
|
options.isHardenedRuntimeEnabled = isHardenedRuntimeEnabled();
|
||||||
options.isAppSandboxEnabled = isAppSandboxEnabled();
|
options.isAppSandboxEnabled = isAppSandboxEnabled();
|
||||||
|
|
@ -3692,7 +3697,7 @@ private:
|
||||||
bluetoothPermissionNeededValue, bluetoothPermissionTextValue,
|
bluetoothPermissionNeededValue, bluetoothPermissionTextValue,
|
||||||
sendAppleEventsPermissionNeededValue, sendAppleEventsPermissionTextValue,
|
sendAppleEventsPermissionNeededValue, sendAppleEventsPermissionTextValue,
|
||||||
uiFileSharingEnabledValue, uiSupportsDocumentBrowserValue, uiStatusBarHiddenValue, uiRequiresFullScreenValue, documentExtensionsValue, iosInAppPurchasesValue,
|
uiFileSharingEnabledValue, uiSupportsDocumentBrowserValue, uiStatusBarHiddenValue, uiRequiresFullScreenValue, documentExtensionsValue, iosInAppPurchasesValue,
|
||||||
iosContentSharingValue, iosBackgroundAudioValue, iosBackgroundBleValue, iosPushNotificationsValue, iosAppGroupsValue, iCloudPermissionsValue,
|
iosContentSharingValue, iosBackgroundAudioValue, iosBackgroundBleValue, iosPushNotificationsValue, iosAUHostIAAValue, iosAppGroupsValue, iCloudPermissionsValue,
|
||||||
networkingMulticastValue, iosDevelopmentTeamIDValue, iosAppGroupsIDValue, keepCustomXcodeSchemesValue, useHeaderMapValue, customLaunchStoryboardValue,
|
networkingMulticastValue, iosDevelopmentTeamIDValue, iosAppGroupsIDValue, keepCustomXcodeSchemesValue, useHeaderMapValue, customLaunchStoryboardValue,
|
||||||
exporterBundleIdentifierValue, suppressPlistResourceUsageValue, useLegacyBuildSystemValue, buildNumber;
|
exporterBundleIdentifierValue, suppressPlistResourceUsageValue, useLegacyBuildSystemValue, buildNumber;
|
||||||
ScopedMessageBox messageBox;
|
ScopedMessageBox messageBox;
|
||||||
|
|
|
||||||
|
|
@ -270,6 +270,7 @@ namespace Ids
|
||||||
DECLARE_ID (iosBackgroundAudio);
|
DECLARE_ID (iosBackgroundAudio);
|
||||||
DECLARE_ID (iosBackgroundBle);
|
DECLARE_ID (iosBackgroundBle);
|
||||||
DECLARE_ID (iosPushNotifications);
|
DECLARE_ID (iosPushNotifications);
|
||||||
|
DECLARE_ID (iosAUHostIAA);
|
||||||
DECLARE_ID (iosAppGroups);
|
DECLARE_ID (iosAppGroups);
|
||||||
DECLARE_ID (iCloudPermissions);
|
DECLARE_ID (iCloudPermissions);
|
||||||
DECLARE_ID (networkingMulticast);
|
DECLARE_ID (networkingMulticast);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue