Skip to content

Commit

Permalink
[feature/share-action-extension] Share Action Extension "Save to ownC…
Browse files Browse the repository at this point in the history
…loud" (#1301)

* #1293 added a share action extension "Save to ownCloud"

* Calens changelog updated

* adopted fastlane code signing for new target "ownCloud Action Extension"

* adopted the resign script and resign inspector for new action extension

* - added action extension
- fixed wrong emm identifier

* fixed adding default bundle display name

* replace CFBundleDisplayName in action extension with branded app name for english and german localisations

* Update fastlane/Fastfile

Co-authored-by: Felix Schwarz <fs-git@iospirit.com>

---------

Co-authored-by: hosy <hosy@users.noreply.github.com>
Co-authored-by: Felix Schwarz <fs-git@iospirit.com>
  • Loading branch information
3 people authored Dec 15, 2023
1 parent 24768f6 commit 18b452d
Show file tree
Hide file tree
Showing 10 changed files with 397 additions and 9 deletions.
10 changes: 10 additions & 0 deletions enterprise/register/registerOwncloudApp.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
#!/usr/bin/env ruby

# Copyright (C) 2023, ownCloud GmbH.
#
# This code is covered by the GNU Public License Version 3.
#
# For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
# You should have received a copy of this license along with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.en.html>.

# Version 1.1.0

require 'spaceship'

class AppRegistration
Expand Down Expand Up @@ -304,3 +313,4 @@ def prepareProfile(bundle_id, profileFilename, cert)
register.prepareAppID("File Provider UI", "FileProviderUI.mobileprovision", groups, registrationType, "#{bundlePrefix}.ios-app.ownCloud-File-ProviderUI", cert)
register.prepareAppID("Intent", "Intent.mobileprovision", groups, registrationType, "#{bundlePrefix}.ios-app.ownCloud-Intent", cert)
register.prepareAppID("ShareExtension", "ShareExtension.mobileprovision", groups, registrationType,"#{bundlePrefix}.ios-app.ownCloud-Share-Extension", cert)
register.prepareAppID("ActionExtension", "ActionExtension.mobileprovision", groups, registrationType,"#{bundlePrefix}.ios-app.ownCloud-Action-Extension", cert)
3 changes: 3 additions & 0 deletions enterprise/resign/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ This script allows you to resign the ownCloud App IPA file with a different Appl

- `com.yourcompany.ios-app.ownCloud-Share-Extension`

- `com.yourcompany.ios-app.ownCloud-Action-Extension`

2. Generate one App Group:

- `group.com.yourcompany.ios-app`
Expand Down Expand Up @@ -51,6 +53,7 @@ Create a text file containing a list of line-break separated domain names (FQN)
- `FileProviderUI.mobileprovision`
- `Intent.mobileprovision`
- `ShareExtension.mobileprovision`
- `ActionExtension.mobileprovision`

5. Execute the script

Expand Down
4 changes: 2 additions & 2 deletions enterprise/resign/resignInspector.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
# You should have received a copy of this license along with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.en.html>.

VERSION="1.0.0"
VERSION="1.1.0"

#Define output formats
BOLD="$(tput bold)"
Expand Down Expand Up @@ -72,7 +72,7 @@ fi
APPPATH="$APPTEMP/Payload/ownCloud.app"
fi

declare -a LOCATIONS=( "$APPPATH/" "$APPPATH/PlugIns/ownCloud File Provider.appex" "$APPPATH/PlugIns/ownCloud File Provider UI.appex" "$APPPATH/PlugIns/ownCloud Intents.appex" "$APPPATH/PlugIns/ownCloud Share Extension.appex" );
declare -a LOCATIONS=( "$APPPATH/" "$APPPATH/PlugIns/ownCloud File Provider.appex" "$APPPATH/PlugIns/ownCloud File Provider UI.appex" "$APPPATH/PlugIns/ownCloud Intents.appex" "$APPPATH/PlugIns/ownCloud Share Extension.appex" "$APPPATH/PlugIns/ownCloud Action Extension.appex" );

echo "${SUCCESS}Checking entitlements…${NC}"
echo ""
Expand Down
9 changes: 5 additions & 4 deletions enterprise/resign/resignOwncloudApp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
# You should have received a copy of this license along with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.en.html>.

VERSION="1.2.2"
VERSION="1.3.0"

#Define output formats
BOLD="$(tput bold)"
Expand Down Expand Up @@ -64,11 +64,12 @@ FILEPROVIDER_MOBILEPROVISION="$PROVISIONING_DIR/FileProvider.mobileprovision"
FILEPROVIDERUI_MOBILEPROVISION="$PROVISIONING_DIR/FileProviderUI.mobileprovision"
INTENT_MOBILEPROVISION="$PROVISIONING_DIR/Intent.mobileprovision"
SHAREEXTENSION_MOBILEPROVISION="$PROVISIONING_DIR/ShareExtension.mobileprovision"
ACTIONEXTENSION_MOBILEPROVISION="$PROVISIONING_DIR/ActionExtension.mobileprovision"
ASSOCIATED_DOMAINS="domains.txt"

declare -a MOBILEPROVISIONS=( "$DISTRIBUTION_MOBILEPROVISION" "$FILEPROVIDER_MOBILEPROVISION" "$FILEPROVIDERUI_MOBILEPROVISION" "$INTENT_MOBILEPROVISION" "$SHAREEXTENSION_MOBILEPROVISION" );
declare -a ENTITLEMENTS=( "ownCloud.entitlements" "ownCloud_File_Provider.entitlements" "ownCloud_File_Provider_UI.entitlements" "ownCloud_Intents.entitlements" "ownCloud_Share_Extension.entitlements" );
declare -a LOCATIONS=( "$APPDIR" "$APPDIR/PlugIns/ownCloud File Provider.appex" "$APPDIR/PlugIns/ownCloud File Provider UI.appex" "$APPDIR/PlugIns/ownCloud Intents.appex" "$APPDIR/PlugIns/ownCloud Share Extension.appex" );
declare -a MOBILEPROVISIONS=( "$DISTRIBUTION_MOBILEPROVISION" "$FILEPROVIDER_MOBILEPROVISION" "$FILEPROVIDERUI_MOBILEPROVISION" "$INTENT_MOBILEPROVISION" "$SHAREEXTENSION_MOBILEPROVISION" "$ACTIONEXTENSION_MOBILEPROVISION" );
declare -a ENTITLEMENTS=( "ownCloud.entitlements" "ownCloud_File_Provider.entitlements" "ownCloud_File_Provider_UI.entitlements" "ownCloud_Intents.entitlements" "ownCloud_Share_Extension.entitlements" "ownCloud_Action_Extension.entitlements" );
declare -a LOCATIONS=( "$APPDIR" "$APPDIR/PlugIns/ownCloud File Provider.appex" "$APPDIR/PlugIns/ownCloud File Provider UI.appex" "$APPDIR/PlugIns/ownCloud Intents.appex" "$APPDIR/PlugIns/ownCloud Share Extension.appex" "$APPDIR/PlugIns/ownCloud Action Extension.appex" );
declare -a BUNDLEIDS=();

# Abort script if script is running in a path which contains "Library", because this could cause resource fork problems
Expand Down
55 changes: 53 additions & 2 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ platform :ios do
"com.owncloud.ios-app.ownCloud-File-Provider" => "match AdHoc com.owncloud.ios-app.ownCloud-File-Provider",
"com.owncloud.ios-app.ownCloud-File-ProviderUI" => "match AdHoc com.owncloud.ios-app.ownCloud-File-ProviderUI",
"com.owncloud.ios-app.ownCloud-Intents" => "match AdHoc com.owncloud.ios-app.ownCloud-Intents",
"com.owncloud.ios-app.ownCloud-Share-Extension" => "match AdHoc com.owncloud.ios-app.ownCloud-Share-Extension"
"com.owncloud.ios-app.ownCloud-Share-Extension" => "match AdHoc com.owncloud.ios-app.ownCloud-Share-Extension",
"com.owncloud.ios-app.ownCloud-Action-Extension" => "match AdHoc com.owncloud.ios-app.ownCloud-Action-Extension"
#Add more Provisioning Profiles when extensions are added
}
}
Expand Down Expand Up @@ -258,6 +259,8 @@ platform :ios do
ENTERPRISE_INTENT_PROFILE: "match AppStore com.owncloud.ios-app.ownCloud-Intents",
ENTERPRISE_SHARE_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Share-Extension",
ENTERPRISE_SHARE_EXTENSION_PROFILE: "match AppStore com.owncloud.ios-app.ownCloud-Share-Extension",
ENTERPRISE_ACTION_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Action-Extension",
ENTERPRISE_ACTION_EXTENSION_PROFILE: "match AppStore com.owncloud.ios-app.ownCloud-Action-Extension",
ENTERPRISE_APP_FW_ID: "com.owncloud.ownCloudApp",
ENTERPRISE_TEAM: "4AP2STM4H5",
ENTERPRISE_IDENTITY: "Apple Distribution: ownCloud GmbH (4AP2STM4H5)",
Expand All @@ -283,6 +286,8 @@ platform :ios do
ENTERPRISE_INTENT_PROFILE: "match AppStore com.owncloud.ios-app.emm.ownCloud-Intents",
ENTERPRISE_SHARE_EXTENSION_ID: "com.owncloud.ios-app.emm.ownCloud-Share-Extension",
ENTERPRISE_SHARE_EXTENSION_PROFILE: "match AppStore com.owncloud.ios-app.emm.ownCloud-Share-Extension",
ENTERPRISE_ACTION_EXTENSION_ID: "com.owncloud.ios-app.emm.ownCloud-Action-Extension",
ENTERPRISE_ACTION_EXTENSION_PROFILE: "match AppStore com.owncloud.ios-app.emm.ownCloud-Action-Extension",
ENTERPRISE_APP_FW_ID: "com.owncloud.ownCloudApp.emm",
ENTERPRISE_TEAM: "4AP2STM4H5",
ENTERPRISE_IDENTITY: "Apple Distribution: ownCloud GmbH (4AP2STM4H5)",
Expand All @@ -308,6 +313,8 @@ lane :owncloud_online_build do
ENTERPRISE_INTENT_PROFILE: "ownCloud online AppStore Intents",
ENTERPRISE_SHARE_EXTENSION_ID: "online.owncloud.ios-app.ShareExtApp",
ENTERPRISE_SHARE_EXTENSION_PROFILE: "ownCloud online AppStore Share Ext",
ENTERPRISE_ACTION_EXTENSION_ID: "online.owncloud.ios-app.Action-Extension",
ENTERPRISE_ACTION_EXTENSION_PROFILE: "ownCloud online AppStore Action Extension",
ENTERPRISE_APP_FW_ID: "online.owncloud.ios-app.ownCloudApp",
ENTERPRISE_TEAM: "4AP2STM4H5",
ENTERPRISE_IDENTITY: "Apple Distribution: ownCloud GmbH",
Expand All @@ -333,6 +340,8 @@ end
ENTERPRISE_INTENT_PROFILE: "Adhoc ownCloud iOS App Intents",
ENTERPRISE_SHARE_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Share-Extension",
ENTERPRISE_SHARE_EXTENSION_PROFILE: "Adhoc ownCloud iOS App Share Extension",
ENTERPRISE_ACTION_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Action-Extension",
ENTERPRISE_ACTION_EXTENSION_PROFILE: "Adhoc ownCloud iOS App Action Extension",
ENTERPRISE_APP_FW_ID: "com.owncloud.ownCloudApp",
ENTERPRISE_TEAM: "4AP2STM4H5",
ENTERPRISE_IDENTITY: "Apple Distribution: ownCloud GmbH",
Expand All @@ -356,6 +365,8 @@ end
ENTERPRISE_INTENT_PROFILE: "match AppStore com.owncloud.ios-app.ownCloud-Intents",
ENTERPRISE_SHARE_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Share-Extension",
ENTERPRISE_SHARE_EXTENSION_PROFILE: "match AppStore com.owncloud.ios-app.ownCloud-Share-Extension",
ENTERPRISE_ACTION_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Action-Extension",
ENTERPRISE_ACTION_EXTENSION_PROFILE: "match AppStore com.owncloud.ios-app.ownCloud-Action-Extension",
ENTERPRISE_APP_FW_ID: "com.owncloud.ownCloudApp",
ENTERPRISE_TEAM: "4AP2STM4H5",
ENTERPRISE_IDENTITY: "Apple Distribution: ownCloud GmbH (4AP2STM4H5)",
Expand Down Expand Up @@ -389,6 +400,8 @@ end
ENTERPRISE_INTENT_PROFILE: "Adhoc ownCloud iOS App Intents",
ENTERPRISE_SHARE_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Share-Extension",
ENTERPRISE_SHARE_EXTENSION_PROFILE: "Adhoc ownCloud iOS App Share Extension",
ENTERPRISE_ACTION_EXTENSION_ID: "com.owncloud.ios-app.ownCloud-Action-Extension",
ENTERPRISE_ACTION_EXTENSION_PROFILE: "Adhoc ownCloud iOS App Action Extension",
ENTERPRISE_APP_FW_ID: "com.owncloud.ownCloudApp",
ENTERPRISE_TEAM: "4AP2STM4H5",
ENTERPRISE_IDENTITY: "iPhone Distribution: ownCloud GmbH",
Expand Down Expand Up @@ -426,6 +439,8 @@ end
ENTERPRISE_INTENT_PROFILE = values[:ENTERPRISE_INTENT_PROFILE]
ENTERPRISE_SHARE_EXTENSION_ID = values[:ENTERPRISE_SHARE_EXTENSION_ID]
ENTERPRISE_SHARE_EXTENSION_PROFILE = values[:ENTERPRISE_SHARE_EXTENSION_PROFILE]
ENTERPRISE_ACTION_EXTENSION_ID = values[:ENTERPRISE_ACTION_EXTENSION_ID]
ENTERPRISE_ACTION_EXTENSION_PROFILE = values[:ENTERPRISE_ACTION_EXTENSION_PROFILE]
ENTERPRISE_APP_FW_ID = values[:ENTERPRISE_APP_FW_ID]
ENTERPRISE_APP_SHARED_ID = "com.owncloud.ownCloudAppShared"
ENTERPRISE_TEAM = values[:ENTERPRISE_TEAM]
Expand Down Expand Up @@ -557,6 +572,7 @@ end
set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
set_info_plist_value(path: "ownCloud File Provider UI/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
set_info_plist_value(path: "ownCloud Action Extension/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
end

Expand All @@ -580,6 +596,7 @@ end
set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "CFBundleVersion", value: BUILD_NUMBER)
set_info_plist_value(path: "ownCloud File Provider UI/Info.plist", key: "CFBundleVersion", value: BUILD_NUMBER)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "CFBundleVersion", value: BUILD_NUMBER)
set_info_plist_value(path: "ownCloud Action Extension/Info.plist", key: "CFBundleVersion", value: BUILD_NUMBER)
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "CFBundleVersion", value: BUILD_NUMBER)
end

Expand All @@ -601,6 +618,12 @@ end
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "CFBundleDisplayName", value: "Share to " + appName)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "CFBundleName", value: appName)

set_info_plist_value(path: "ownCloud Action Extension/Info.plist", key: "CFBundleDisplayName", value: "Save to " + appName)
set_info_plist_value(path: "ownCloud Action Extension/Info.plist", key: "CFBundleName", value: appName)

sh("sed -i '' '/\"CFBundleDisplayName\" =/s/ownCloud/#{appName}/' ownCloud\ Action\ Extension/en.lproj/InfoPlist.strings")
sh("sed -i '' '/\"CFBundleDisplayName\" =/s/ownCloud/#{appName}/' ownCloud\ Action\ Extension/de.lproj/InfoPlist.strings")

update_app_identifier(
xcodeproj: "ownCloud.xcodeproj",
plist_path: "ownCloud/Resources/Info.plist",
Expand Down Expand Up @@ -637,6 +660,12 @@ end
app_identifier: ENTERPRISE_SHARE_EXTENSION_ID
)

update_app_identifier(
xcodeproj: "ownCloud.xcodeproj",
plist_path: "ownCloud Action Extension/Info.plist",
app_identifier: ENTERPRISE_ACTION_EXTENSION_ID
)

update_app_group_identifiers(
entitlements_file: "ownCloud/ownCloud.entitlements",
app_group_identifiers: [APP_GROUP_IDENTIFIERS]
Expand Down Expand Up @@ -682,6 +711,15 @@ end
identifiers: [ENTERPRISE_TEAM + "." + APP_GROUP_IDENTIFIERS]
)

update_app_group_identifiers(
entitlements_file: "ownCloud Action Extension/ownCloud Action Extension.entitlements",
app_group_identifiers: [APP_GROUP_IDENTIFIERS]
)
update_keychain_access_groups(
entitlements_file: "ownCloud Action Extension/ownCloud Action Extension.entitlements",
identifiers: [ENTERPRISE_TEAM + "." + APP_GROUP_IDENTIFIERS]
)

set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "OCAppGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "NSExtension", subkey: "NSExtensionFileProviderDocumentGroup", value: APP_GROUP_IDENTIFIERS)
Expand All @@ -691,6 +729,8 @@ end
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "OCAppGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Action Extension/Info.plist", key: "OCAppGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Action Extension/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud/Resources/Info.plist", key: "OCAppGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud/Resources/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)

Expand Down Expand Up @@ -753,6 +793,16 @@ end
targets: ["ownCloud Share Extension"]
)

automatic_code_signing(
path: "ownCloud.xcodeproj",
use_automatic_signing: false,
team_id: ENTERPRISE_TEAM,
code_sign_identity: ENTERPRISE_IDENTITY,
profile_name: ENTERPRISE_ACTION_ACTION_PROFILE,
bundle_identifier: ENTERPRISE_ACTION_EXTENSION_ID,
targets: ["ownCloud Action Extension"]
)

automatic_code_signing(
path: "ownCloud.xcodeproj",
use_automatic_signing: false,
Expand Down Expand Up @@ -820,7 +870,8 @@ end
ENTERPRISE_APP_ID => ENTERPRISE_APP_PROFILE,
ENTERPRISE_FP_ID => ENTERPRISE_FP_PROFILE,
ENTERPRISE_INTENT_ID => ENTERPRISE_INTENT_PROFILE,
ENTERPRISE_SHARE_EXTENSION_ID => ENTERPRISE_SHARE_EXTENSION_PROFILE
ENTERPRISE_SHARE_EXTENSION_ID => ENTERPRISE_SHARE_EXTENSION_PROFILE,
ENTERPRISE_ACTION_EXTENSION_ID => ENTERPRISE_ACTION_EXTENSION_PROFILE
}
}
)
Expand Down
40 changes: 40 additions & 0 deletions ownCloud Action Extension/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?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>OCKeychainAccessGroupIdentifier</key>
<string>group.com.owncloud.ios-app</string>
<key>OCHasFileProvider</key>
<true/>
<key>OCAppComponentIdentifier</key>
<string>shareExtension</string>
<key>CFBundleDisplayName</key>
<string>Save to $(APP_PRODUCT_NAME)</string>
<key>OCAppIdentifierPrefix</key>
<string>$(AppIdentifierPrefix)</string>
<key>OCAppGroupIdentifier</key>
<string>group.com.owncloud.ios-app</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<string>SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
(
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO &quot;public.data&quot;
)
).@count == $extensionItem.attachments.@count
).@count &gt; 0</string>
</dict>
<key>NSExtensionPrincipalClass</key>
<string>ShareExtensionViewController</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.ui-services</string>
</dict>
</dict>
</plist>
22 changes: 22 additions & 0 deletions ownCloud Action Extension/de.lproj/InfoPlist.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
InfoPlist.strings
ownCloud

Created by Matthias Hühne on 11/20/2023.
Copyright © 2020 ownCloud GmbH. All rights reserved.
*/

/*
* Copyright (C) 2020, ownCloud GmbH.
*
* This code is covered by the GNU Public License Version 3.
*
* For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
* You should have received a copy of this license along with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.en.html>.
*
*/

"CFBundleDisplayName" = "Speichern in ownCloud";

"The Share Extension is not available on this system." = "Die Erweiterung ist auf diesem System nicht verfügbar.";
"Share Extension unavailable" = "Erweiterung nicht verfügbar";
22 changes: 22 additions & 0 deletions ownCloud Action Extension/en.lproj/InfoPlist.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
InfoPlist.strings
ownCloud

Created by Matthias Hühne on 11/20/2023.
Copyright © 2020 ownCloud GmbH. All rights reserved.
*/

/*
* Copyright (C) 2020, ownCloud GmbH.
*
* This code is covered by the GNU Public License Version 3.
*
* For distribution utilizing Apple mechanisms please see https://owncloud.org/contribute/iOS-license-exception/
* You should have received a copy of this license along with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.en.html>.
*
*/

"CFBundleDisplayName" = "Save to ownCloud";

"The Share Extension is not available on this system." = "The Share Extension is not available on this system.";
"Share Extension unavailable" = "Share Extension unavailable";
14 changes: 14 additions & 0 deletions ownCloud Action Extension/ownCloud Action Extension.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?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>com.apple.security.application-groups</key>
<array>
<string>group.com.owncloud.ios-app</string>
</array>
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)group.com.owncloud.ios-app</string>
</array>
</dict>
</plist>
Loading

0 comments on commit 18b452d

Please sign in to comment.