diff --git a/CHANGELOG.md b/CHANGELOG.md index d69a8e65e..d6fab646f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -106,8 +106,8 @@ Details * Bugfix - Attach files from third-party apps: [#1228](https://github.com/owncloud/ios-app/pull/1228) - Attaching files in third-party apps via file provider were not possible, if file was not - downloaded. + Attaching files in third-party apps via file provider were not possible, if file + was not downloaded. https://github.com/owncloud/ios-app/pull/1228 @@ -128,8 +128,8 @@ Details * Bugfix - Several Bug Fixes: [#1220](https://github.com/owncloud/ios-app/pull/1220) - Fixed keyboard, media streaming, full screen mode, offline indicator, duplicated sharing - option, and UI issues. + Fixed keyboard, media streaming, full screen mode, offline indicator, duplicated + sharing option, and UI issues. https://github.com/owncloud/ios-app/pull/1220 @@ -175,7 +175,8 @@ Details * Change - App Provider support: [#1127](https://github.com/owncloud/ios-app/issues/1127) - Create and edit new documents through app providers on servers that support them. + Create and edit new documents through app providers on servers that support + them. https://github.com/owncloud/ios-app/issues/1127 @@ -187,15 +188,17 @@ Details * Change - Postbuild Settings: [#1179](https://github.com/owncloud/ios-app/pull/1179) - Postbuild settings allow modification of branding and class settings via URL scheme, - allowing to quickly iterate during development without the need to rebuild the app. + Postbuild settings allow modification of branding and class settings via URL + scheme, allowing to quickly iterate during development without the need to + rebuild the app. https://github.com/owncloud/ios-app/pull/1179 * Change - CSS theming: [#1194](https://github.com/owncloud/ios-app/pull/1194) - ThemeCSS brings CSS-style styling to the UIViewController/UIView tree, by allowing to - attach CSS-style selectors to them via new cssSelector and cssSelectors properties. + ThemeCSS brings CSS-style styling to the UIViewController/UIView tree, by + allowing to attach CSS-style selectors to them via new cssSelector and + cssSelectors properties. https://github.com/owncloud/ios-app/pull/1194 @@ -219,8 +222,8 @@ Details * Change - Support Webfinger based lookup server: [#4849](https://github.com/owncloud/enterprise/issues/4849) - Allows using webfinger or a lookup table to locate and use an alternative server based on the - user name. + Allows using webfinger or a lookup table to locate and use an alternative server + based on the user name. https://github.com/owncloud/enterprise/issues/4849 @@ -290,16 +293,17 @@ Details * Bugfix - Respect privateLinks capability: [#1138](https://github.com/owncloud/ios-app/issues/1138) - Respect files.privateLinks capability and do not offer to create private links when - privateLinks are not supported. + Respect files.privateLinks capability and do not offer to create private links + when privateLinks are not supported. https://github.com/owncloud/ios-app/issues/1138 * Bugfix - Enabling Markup Mode, Showing Video Controls on iOS 16, Updating Theme: [#1141](https://github.com/owncloud/ios-app/issues/1141) - Enabling markup mode was broken on iOS 16 because of rearranged navigation bar and toolbar - items. Video player controls were not showing on iOS 16. Furthermore when a new theme was - chosen, this causes that the UITabBar and UIToolbar does not updates colours. + Enabling markup mode was broken on iOS 16 because of rearranged navigation bar + and toolbar items. Video player controls were not showing on iOS 16. Furthermore + when a new theme was chosen, this causes that the UITabBar and UIToolbar does + not updates colours. https://github.com/owncloud/ios-app/issues/1141 @@ -311,15 +315,15 @@ Details * Bugfix - Video Metadata Image: [#5296](https://github.com/owncloud/enterprise/issues/5296) - If a video file includes a metadata image, the video file was not visible, because the metadata - image was overlaying. + If a video file includes a metadata image, the video file was not visible, + because the metadata image was overlaying. https://github.com/owncloud/enterprise/issues/5296 * Change - New Dark Mode Themes: [#1146](https://github.com/owncloud/ios-app/issues/1146) - Adds a new dark mode theme which is mostly equal to the web UI dark mode theme. Furthermore it adds - a black dark mode theme. + Adds a new dark mode theme which is mostly equal to the web UI dark mode theme. + Furthermore it adds a black dark mode theme. https://github.com/owncloud/ios-app/issues/1146 @@ -342,9 +346,9 @@ Details * Bugfix - (Branding) Biometrical Unlock in Share Sheet: [#1129](https://github.com/owncloud/ios-app/pull/1129) - Biometrical unlock in the share sheet does not work in some third party apps like Boxer. With new - branding parameters it is now possible to disable biometrical unlock in the share sheet or to - exclude specific apps. + Biometrical unlock in the share sheet does not work in some third party apps + like Boxer. With new branding parameters it is now possible to disable + biometrical unlock in the share sheet or to exclude specific apps. https://github.com/owncloud/ios-app/pull/1129 @@ -356,8 +360,8 @@ Details * Bugfix - (Branding) Color Issues: [#1132](https://github.com/owncloud/ios-app/pull/1132) - Fix some automatic color values, if the branding color is bright by checking the brightness of - the color. + Fix some automatic color values, if the branding color is bright by checking the + brightness of the color. https://github.com/owncloud/ios-app/pull/1132 @@ -388,15 +392,15 @@ Details * Bugfix - EMM Shortcuts Licensing: [#1114](https://github.com/owncloud/ios-app/issues/1114) - If app was build as EMM version, the app shown an licensing error, when running shortcut - intents. + If app was build as EMM version, the app shown an licensing error, when running + shortcut intents. https://github.com/owncloud/ios-app/issues/1114 * Bugfix - Increased Timeout for Copy Action: [#1119](https://github.com/owncloud/ios-app/issues/1119) - Increased HTTP request timeout for COPY actions from 1 minute to 10 minutes and improved error - handling for request timeouts. + Increased HTTP request timeout for COPY actions from 1 minute to 10 minutes and + improved error handling for request timeouts. https://github.com/owncloud/ios-app/issues/1119 @@ -430,16 +434,17 @@ Details * Bugfix - Setup Passcode with Biometrical Unlock: [#1112](https://github.com/owncloud/ios-app/pull/1112) - Biometrical unlock button no longer appear in setup view and after passcode was successfully - setup, show biometrical unlock for permissions dialog. + Biometrical unlock button no longer appear in setup view and after passcode was + successfully setup, show biometrical unlock for permissions dialog. https://github.com/owncloud/ios-app/pull/1112 * Change - Set App Group Identifier: [#1099](https://github.com/owncloud/ios-app/pull/1099) - Set a custom app group identifier via Branding.plist this parameter. This value will be set by - fastlane to all needed Info.plist keys. This is needed, if a customer is using an own resigning - script which does not handle setting the app group identifier. + Set a custom app group identifier via Branding.plist this parameter. This value + will be set by fastlane to all needed Info.plist keys. This is needed, if a + customer is using an own resigning script which does not handle setting the app + group identifier. https://github.com/owncloud/ios-app/pull/1099 @@ -466,9 +471,9 @@ Details * Bugfix - Fix WebDAV endpoint URL for media playback after restoration: [#1093](https://github.com/owncloud/ios-app/pull/1093) - Fixes a bug where media playback failed with a 404 Not Found error after restoration because the - WebDAV endpoint URL was constructed from authentication data rather than OC user endpoint - data. + Fixes a bug where media playback failed with a 404 Not Found error after + restoration because the WebDAV endpoint URL was constructed from authentication + data rather than OC user endpoint data. https://github.com/owncloud/ios-app/pull/1093 @@ -480,23 +485,23 @@ Details * Change - Infinite PROPFIND support: [#950](https://github.com/owncloud/ios-app/issues/950) - Added support for prepopulation of newly created account bookmarks via infinite PROPFINDs, - which speeds up the initial scan + Added support for prepopulation of newly created account bookmarks via infinite + PROPFINDs, which speeds up the initial scan https://github.com/owncloud/ios-app/issues/950 * Change - Rename Account (without re-authentication): [#972](https://github.com/owncloud/ios-app/issues/972) - Check if only the account name was changed in edit mode: save and dismiss without - re-authentication + Check if only the account name was changed in edit mode: save and dismiss + without re-authentication https://github.com/owncloud/ios-app/issues/972 * Change - Biometrical Authentication Button: [#1004](https://github.com/owncloud/ios-app/issues/1004) - Added biometrical authentication button to provide a fallback for the fileprovider or app, if - the automatically biometrical unlock does not work, or the user cancel the biometrical - authentication flow. + Added biometrical authentication button to provide a fallback for the + fileprovider or app, if the automatically biometrical unlock does not work, or + the user cancel the biometrical authentication flow. https://github.com/owncloud/ios-app/issues/1004 @@ -508,8 +513,8 @@ Details * Change - Webfinger / server location: [#1059](https://github.com/owncloud/ios-app/pull/1059) - Allows using webfinger or a lookup table to locate and use an alternative server based on the - user name + Allows using webfinger or a lookup table to locate and use an alternative server + based on the user name https://github.com/owncloud/ios-app/pull/1059 @@ -544,8 +549,8 @@ Details * Change - (Branding) Corporate Color as Folder Color: [#1069](https://github.com/owncloud/ios-app/issues/1069) - Use the corporate color as folder color as default color (can be overridden by the specific - key/value pair). + Use the corporate color as folder color as default color (can be overridden by + the specific key/value pair). https://github.com/owncloud/ios-app/issues/1069 @@ -567,17 +572,17 @@ Details * Change - Localized Sort Order: [#975](https://github.com/owncloud/ios-app/issues/975) - Improved sorting results and localized sorting across query results and database queries, - via the SDK's new OCLOCALIZED collation and sort comparator. + Improved sorting results and localized sorting across query results and database + queries, via the SDK's new OCLOCALIZED collation and sort comparator. https://github.com/owncloud/ios-app/issues/975 * Change - Fallback on OIDC Dynamic Client Registration: [#1068](https://github.com/owncloud/ios-app/pull/1068) Adds authentication-oauth2.oidc-fallback-on-client-registration-failure - - defaulting to true - to allow the automatic fallback to default client_id / client_secret if - OpenID Connect Dynamic Client Registration fails with any error. Furthermore fixed an - infinite OAuth2 token refresh loop via SDK update. + defaulting to true - to allow the automatic fallback to default client_id / + client_secret if OpenID Connect Dynamic Client Registration fails with any + error. Furthermore fixed an infinite OAuth2 token refresh loop via SDK update. https://github.com/owncloud/ios-app/pull/1068 @@ -612,14 +617,15 @@ Details * Bugfix - Background Location Settings: [#1050](https://github.com/owncloud/ios-app/issues/1050) - Do not show the Background Location settings section, if no upload path was chosen. + Do not show the Background Location settings section, if no upload path was + chosen. https://github.com/owncloud/ios-app/issues/1050 * Bugfix - Clear Passcode Lock: [#1061](https://github.com/owncloud/ios-app/pull/1061) - Clear unlock and in case an unlock has expired, to protect against subsequent attempts setting - the device time to an earlier date. + Clear unlock and in case an unlock has expired, to protect against subsequent + attempts setting the device time to an earlier date. https://github.com/owncloud/ios-app/pull/1061 @@ -631,34 +637,36 @@ Details * Bugfix - (Branding) Retry Section for Login Error: [#4786](https://github.com/owncloud/enterprise/issues/4786) - This adds a retry section to the branded login, e.g. if a server url could not be reached. + This adds a retry section to the branded login, e.g. if a server url could not + be reached. https://github.com/owncloud/enterprise/issues/4786 * Change - Account List: [#1014](https://github.com/owncloud/ios-app/issues/1014) - Show a new detailed single account view instead of the server list if only one account is - configured. + Show a new detailed single account view instead of the server list if only one + account is configured. https://github.com/owncloud/ios-app/issues/1014 * Change - (Branding) Modular Localization: [#1054](https://github.com/owncloud/ios-app/pull/1054) - Allowing complex customization of localized strings with variables, value sources and - complete text replacements. + Allowing complex customization of localized strings with variables, value + sources and complete text replacements. https://github.com/owncloud/ios-app/pull/1054 * Change - (Branding) Skip Account Screen: [#1056](https://github.com/owncloud/ios-app/pull/1056) - Skip "Manage" screen / automatically open "Files" screen after login via branding parameter. + Skip "Manage" screen / automatically open "Files" screen after login via + branding parameter. https://github.com/owncloud/ios-app/pull/1056 * Change - (Branding) Color and UI Improvements: [#1057](https://github.com/owncloud/ios-app/pull/1057) - Setup a branding with only two color values and simplified a lot of branding values and - furthermore fixed some UI issues. + Setup a branding with only two color values and simplified a lot of branding + values and furthermore fixed some UI issues. https://github.com/owncloud/ios-app/pull/1057 @@ -670,32 +678,36 @@ Details * Change - (Branding) Default User Settings: [#4766](https://github.com/owncloud/enterprise/issues/4766) - Adds a new class setting to allow registration of alternative defaults for user defaults. + Adds a new class setting to allow registration of alternative defaults for user + defaults. https://github.com/owncloud/enterprise/issues/4766 * Change - Display Name: [#4798](https://github.com/owncloud/enterprise/issues/4798) - Show display name in branded single account view if available, otherwise show the userName. + Show display name in branded single account view if available, otherwise show + the userName. https://github.com/owncloud/enterprise/issues/4798 * Change - Licenses Overview: [#4801](https://github.com/owncloud/enterprise/issues/4801) - Add a new view controller to present license texts for each component individually. + Add a new view controller to present license texts for each component + individually. https://github.com/owncloud/enterprise/issues/4801 * Change - (Branding) Remove Code via Build Flag: [#4805](https://github.com/owncloud/enterprise/issues/4805) - Adds support for disable code via parameters which can be specified via Branding.plist. + Adds support for disable code via parameters which can be specified via + Branding.plist. https://github.com/owncloud/enterprise/issues/4805 * Change - (Branding) Biometrical Unlock Setting: [#4818](https://github.com/owncloud/enterprise/issues/4818) - Control via branding parameter to auto enable biometrical unlock and immediately show Face ID - authorization after the feature was enabled. + Control via branding parameter to auto enable biometrical unlock and immediately + show Face ID authorization after the feature was enabled. https://github.com/owncloud/enterprise/issues/4818 @@ -747,17 +759,17 @@ Details * Bugfix - Automatic photo upload crash on iOS 15: [#1017](https://github.com/owncloud/ios-app/pull/1017) - On iOS 15, automatic photo upload seems to consume more resources than are available, leading - to a crash. This pull requests reduces the number of concurrent photo upload operations from - `available cores` to `1`. + On iOS 15, automatic photo upload seems to consume more resources than are + available, leading to a crash. This pull requests reduces the number of + concurrent photo upload operations from `available cores` to `1`. https://github.com/owncloud/ios-app/pull/1017 * Bugfix - Open Private Link in Branded Client: [#1031](https://github.com/owncloud/ios-app/issues/1031) - This PR fixes a bug, when trying to open a private link via the custom url scheme `owncloud://` or - via associated domains `applinks:`. Resolving a private link opened via the URL scheme - owncloud:// was not successful in some cases. + This PR fixes a bug, when trying to open a private link via the custom url + scheme `owncloud://` or via associated domains `applinks:`. Resolving a private + link opened via the URL scheme owncloud:// was not successful in some cases. https://github.com/owncloud/ios-app/issues/1031 @@ -775,14 +787,15 @@ Details * Bugfix - (Branding) iOS 12 crash when entering Settings: [#4701](https://github.com/owncloud/enterprise/issues/4701) - Addresses an issue where a branded build of the app crashes on iOS 12 upon entering Settings. + Addresses an issue where a branded build of the app crashes on iOS 12 upon + entering Settings. https://github.com/owncloud/enterprise/issues/4701 * Change - (Branding) Add build flags support: [#1026](https://github.com/owncloud/ios-app/pull/1026) - Add support for app build flags to enable/disable features at compile time via branding - parameters + Add support for app build flags to enable/disable features at compile time via + branding parameters https://github.com/owncloud/ios-app/pull/1026 @@ -795,14 +808,15 @@ Details * Change - (Branding) Send Feedback via URL: [#1035](https://github.com/owncloud/ios-app/pull/1035) - Currently feedback could only be provided via email. Now it is possible to define a feedback url - in a branded client. + Currently feedback could only be provided via email. Now it is possible to + define a feedback url in a branded client. https://github.com/owncloud/ios-app/pull/1035 * Change - (Branding) Option to disable file imports: [#4709](https://github.com/owncloud/enterprise/issues/4709) - Adds a new MDM option `branding.disabled-import-methods` to disable import methods + Adds a new MDM option `branding.disabled-import-methods` to disable import + methods https://github.com/owncloud/enterprise/issues/4709 @@ -814,7 +828,8 @@ Details * Change - MDM-configurable App Lock Interval: [#4741](https://github.com/owncloud/enterprise/issues/4741) - New MDM / class setting option `passcode.lockDelay` to enforce locking after `N` seconds. + New MDM / class setting option `passcode.lockDelay` to enforce locking after `N` + seconds. https://github.com/owncloud/enterprise/issues/4741 @@ -844,19 +859,20 @@ Details * Change - Clipboard Support: [#514](https://github.com/owncloud/ios-app/pull/514) - Clipboard support provides the following new features: - Copy: Files can be copied to the - system-wide clipboard and pasted into other apps. Folders can also be copied within the - ownCloud app. - Paste: Files can be pasted from the system-wide clipboard into the ownCloud - app. Likewise, files and folders copied within the app can be pasted. - Cut: Within an ownCloud - account, files and folders can be cut and pasted to a different path. After this action, the - items are no longer present in the original location. + Clipboard support provides the following new features: - Copy: Files can be + copied to the system-wide clipboard and pasted into other apps. Folders can also + be copied within the ownCloud app. - Paste: Files can be pasted from the + system-wide clipboard into the ownCloud app. Likewise, files and folders copied + within the app can be pasted. - Cut: Within an ownCloud account, files and + folders can be cut and pasted to a different path. After this action, the items + are no longer present in the original location. https://github.com/owncloud/ios-app/pull/514 * Change - Background Media Upload: [#958](https://github.com/owncloud/ios-app/pull/958) - Uploading new media files is now more reliable in the background when "Use background location - updates" is enabled in the settings. + Uploading new media files is now more reliable in the background when "Use + background location updates" is enabled in the settings. https://github.com/owncloud/ios-app/pull/958 @@ -868,8 +884,8 @@ Details * Change - Filename Layout: [#968](https://github.com/owncloud/ios-app/issues/968) - Adopted the filename layout to the new Web UI with bold font weight, large file name and normal - font weight, small file extension. + Adopted the filename layout to the new Web UI with bold font weight, large file + name and normal font weight, small file extension. https://github.com/owncloud/ios-app/issues/968 @@ -893,7 +909,8 @@ Details * Bugfix - FileProvider UI on iOS 12: [#986](https://github.com/owncloud/ios-app/issues/986) - Views in FileProvider UI (public links, share with user) could not be dismissed on iOS 12 + Views in FileProvider UI (public links, share with user) could not be dismissed + on iOS 12 https://github.com/owncloud/ios-app/issues/986 @@ -907,8 +924,9 @@ Details * Change - Additional URL Scheme: [#979](https://github.com/owncloud/ios-app/issues/979) - Added an additional URL scheme to open a specific app, if more than one ownCloud apps are - installed with different bundle IDs. (owncloud-app, owncloud-emm or owncloud-online) + Added an additional URL scheme to open a specific app, if more than one ownCloud + apps are installed with different bundle IDs. (owncloud-app, owncloud-emm or + owncloud-online) https://github.com/owncloud/ios-app/issues/979 @@ -978,84 +996,87 @@ Details When editing bookmarks: - - if a name was set, it wasn't shown in the edit interface - bookmark name edits/additions would - get lost - bookmark name edits would not be presented in the list unless scrolling out of view and - back in + - if a name was set, it wasn't shown in the edit interface - bookmark name + edits/additions would get lost - bookmark name edits would not be presented in + the list unless scrolling out of view and back in https://github.com/owncloud/ios-app/pull/877 * Bugfix - Media Player Behaviour: [#884](https://github.com/owncloud/ios-app/pull/884) - Fix for an issue when playing multiple items in the same directory. If e.g. image item is the next - one, multi media playback would stop. + Fix for an issue when playing multiple items in the same directory. If e.g. + image item is the next one, multi media playback would stop. https://github.com/owncloud/ios-app/pull/884 * Bugfix - Japanese Input Support: [#916](https://github.com/owncloud/ios-app/issues/916) - Fixed a problem in scan view when renaming the file name and using a Japanese keyboard layout - (2-Byte character). After entering a character inside the file name the text cursor jumped to - the end. + Fixed a problem in scan view when renaming the file name and using a Japanese + keyboard layout (2-Byte character). After entering a character inside the file + name the text cursor jumped to the end. https://github.com/owncloud/ios-app/issues/916 * Bugfix - Swiping PDF thumbnail view on the iPhone: [#918](https://github.com/owncloud/ios-app/issues/918) - Prevent page container scrolling, when try to scroll inside the pdf thumbnail view on the - iPhone + Prevent page container scrolling, when try to scroll inside the pdf thumbnail + view on the iPhone https://github.com/owncloud/ios-app/issues/918 * Bugfix - Added Dark Mode Support to Preview: [#919](https://github.com/owncloud/ios-app/issues/919) - Dark mode for QLPreviewController only worked, when system dark mode was used. Custom dark - mode theme was not able set the dark mode style before. + Dark mode for QLPreviewController only worked, when system dark mode was used. + Custom dark mode theme was not able set the dark mode style before. https://github.com/owncloud/ios-app/issues/919 * Bugfix - Passcode Settings Section: [#923](https://github.com/owncloud/ios-app/issues/923) - If a passcode was enabled or disabled in the settings, the UI section was not updated. + If a passcode was enabled or disabled in the settings, the UI section was not + updated. https://github.com/owncloud/ios-app/issues/923 * Bugfix - Viewer fixes, refactoring and minor improvements: [#942](https://github.com/owncloud/ios-app/issues/942) - - fix for items, which could not be opened - new refresh policy: asks the user before updating PDF - files + - fix for items, which could not be opened - new refresh policy: asks the user + before updating PDF files https://github.com/owncloud/ios-app/issues/942 * Bugfix - Disable Markup Action for Mime-Type Gif: [#952](https://github.com/owncloud/ios-app/issues/952) - Images with mime type image/gif can not edited with markup action and needs to be disabled. + Images with mime type image/gif can not edited with markup action and needs to + be disabled. https://github.com/owncloud/ios-app/issues/952 * Bugfix - UI refinements in action card: [#956](https://github.com/owncloud/ios-app/issues/956) - Fixed the corner radius. For larger UI width set a maximum width for the cardview and center the - view. + Fixed the corner radius. For larger UI width set a maximum width for the + cardview and center the view. https://github.com/owncloud/ios-app/issues/956 * Bugfix - State Restoration for Branded Login: [#957](https://github.com/owncloud/ios-app/issues/957) - State restoration was not working for branded clients. This fix will restore the last shown - item after an app restart for branded clients. + State restoration was not working for branded clients. This fix will restore the + last shown item after an app restart for branded clients. https://github.com/owncloud/ios-app/issues/957 * Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284) - - adds a paragraph on top of the Acknowledgements to provide additional context - adds - PLCrashReporter license to acknowledgements + - adds a paragraph on top of the Acknowledgements to provide additional context + - adds PLCrashReporter license to acknowledgements https://github.com/owncloud/enterprise/issues/4284 * Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367) - - UI fix for branded login on the iPad - Fill color for branded button was not used + - UI fix for branded login on the iPad - Fill color for branded button was not + used https://github.com/owncloud/enterprise/issues/4367 https://github.com/owncloud/enterprise/issues/4366 @@ -1068,33 +1089,35 @@ Details * Change - Local account-wide search using custom queries: [#53](https://github.com/owncloud/ios-app/issues/53) - User can switch between local folder or local account-wide search. Search terms and filter - keywords can be combined inside the search field to get granular search results. + User can switch between local folder or local account-wide search. Search terms + and filter keywords can be combined inside the search field to get granular + search results. https://github.com/owncloud/ios-app/issues/53 * Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428) - - A PDF file can be opened in fullscreen view and hides unnecessary UI elements. (Tap to trigger - full screen view) - Thumbnails positioned based on vertical size class after rotating the - device to give the displayed document more screen real estate. + - A PDF file can be opened in fullscreen view and hides unnecessary UI elements. + (Tap to trigger full screen view) - Thumbnails positioned based on vertical size + class after rotating the device to give the displayed document more screen real + estate. https://github.com/owncloud/ios-app/issues/428 * Change - Unified Branding with MDM support: [#697](https://github.com/owncloud/ios-app/issues/697) - Refactored Branding, introducing a new Branding class, unifying branding support with class - settings while offering support for the legacy format and laying the ground for retrieving - branding assets from a remote server. + Refactored Branding, introducing a new Branding class, unifying branding support + with class settings while offering support for the legacy format and laying the + ground for retrieving branding assets from a remote server. https://github.com/owncloud/ios-app/issues/697 https://github.com/owncloud/ios-app/issues/792 * Change - Presentation Mode: [#704](https://github.com/owncloud/ios-app/issues/704) - Added an action in detail view menu which enables presentation mode. Presentation mode - prevents the display from sleep mode as long as the detail view is closed, furthermore the - preview will be opened in full screen. + Added an action in detail view menu which enables presentation mode. + Presentation mode prevents the display from sleep mode as long as the detail + view is closed, furthermore the preview will be opened in full screen. https://github.com/owncloud/ios-app/issues/704 @@ -1106,7 +1129,8 @@ Details * Change - Video upload improvements: [#847](https://github.com/owncloud/ios-app/issues/847) - - Added ability to upload slo-mo videos etc - Added option to allow uploading original videos + - Added ability to upload slo-mo videos etc - Added option to allow uploading + original videos https://github.com/owncloud/ios-app/issues/847 @@ -1114,31 +1138,33 @@ Details Fix drag and drop and improve support to run the iOS app on M1 Macs: - - add drag-out support for files that are not locally available yet - improve drag-in support - for files, picking the best available representation that can be retrieved as data - support - for drag & drop in the log file browser + - add drag-out support for files that are not locally available yet - improve + drag-in support for files, picking the best available representation that can be + retrieved as data - support for drag & drop in the log file browser https://github.com/owncloud/ios-app/pull/850 * Change - New photo picker / permissions model for iOS 14: [#851](https://github.com/owncloud/ios-app/issues/851) - - Using new PHPhotoPicker introduced in iOS14 instead of our custom picker. - Dealing with the - photo permission model introduced in iOS14 where user can grant access just to specific photo - assets or albums + - Using new PHPhotoPicker introduced in iOS14 instead of our custom picker. - + Dealing with the photo permission model introduced in iOS14 where user can grant + access just to specific photo assets or albums https://github.com/owncloud/ios-app/issues/851 * Change - Shortcut uploads and error handling improvements: [#858](https://github.com/owncloud/ios-app/issues/858) - Improved error handling for Shortcut actions and now also reporting authentication errors. - Added an optional "Wait for completion" option to the "Save File" and "Create Folder" action. + Improved error handling for Shortcut actions and now also reporting + authentication errors. Added an optional "Wait for completion" option to the + "Save File" and "Create Folder" action. https://github.com/owncloud/ios-app/issues/858 * Change - Corporate Color + UI Refinements: [#860](https://github.com/owncloud/ios-app/issues/860) - The corporate color of the UI themes was updated and furthermore some colors was adopted for a - better contrast. This PR includes also some refinements for some UI elements. + The corporate color of the UI themes was updated and furthermore some colors was + adopted for a better contrast. This PR includes also some refinements for some + UI elements. https://github.com/owncloud/ios-app/issues/860 @@ -1150,67 +1176,69 @@ Details * Change - Enforce User ID when updating token-based bookmarks: [#869](https://github.com/owncloud/ios-app/pull/869) - This PR requires the user ID to remain the same when updating token-based bookmarks. If the user - logs in as a user other than the one with which the bookmark was originally created, an error will - be presented. + This PR requires the user ID to remain the same when updating token-based + bookmarks. If the user logs in as a user other than the one with which the + bookmark was originally created, an error will be presented. https://github.com/owncloud/ios-app/pull/869 * Change - TLS certificate comparison: [#872](https://github.com/owncloud/ios-app/pull/872) - When logging into an account and experiencing a different certificate that does not fulfill - the rules for automatic acceptance as replacement, the issue it brings up now shows the - differences between the two certificates to allow an informed decision by the user. + When logging into an account and experiencing a different certificate that does + not fulfill the rules for automatic acceptance as replacement, the issue it + brings up now shows the differences between the two certificates to allow an + informed decision by the user. https://github.com/owncloud/ios-app/pull/872 * Change - New Issue view / presentation: [#874](https://github.com/owncloud/ios-app/pull/874) - As fixing an iPad layout issue in the old issues view proved too cumbersome, I've replaced the - entire implementation with a new issue view, based on code already there and in use for cards and - tables. + As fixing an iPad layout issue in the old issues view proved too cumbersome, + I've replaced the entire implementation with a new issue view, based on code + already there and in use for cards and tables. https://github.com/owncloud/ios-app/pull/874 * Change - Automated Calens Changelog Creation: [#879](https://github.com/owncloud/ios-app/pull/879) - This PR uses GitHub Actions to automatically generate a changelog file with Calens and commits - the new CHANGELOG.md into the current branch. + This PR uses GitHub Actions to automatically generate a changelog file with + Calens and commits the new CHANGELOG.md into the current branch. https://github.com/owncloud/ios-app/pull/879 * Change - File Provider Passcode Protection: [#880](https://github.com/owncloud/ios-app/issues/880) - If the app is protected with a passcode the file provider extension will present an user - interface for direct unlocking. + If the app is protected with a passcode the file provider extension will present + an user interface for direct unlocking. https://github.com/owncloud/ios-app/issues/880 * Change - Updated Keyboard Shortcuts: [#902](https://github.com/owncloud/ios-app/issues/902) - Added keyboard shortcuts in PDF view, media playback can now completely controlled by the - keyboard and fixed broken keyboard commands. + Added keyboard shortcuts in PDF view, media playback can now completely + controlled by the keyboard and fixed broken keyboard commands. https://github.com/owncloud/ios-app/issues/902 * Change - Added Actions to File Provider: Sharing & Public Links: [#910](https://github.com/owncloud/ios-app/pull/910) - Added file provider actions for Sharing and Public Links, which will open the UI for adding and - editing sharing and public links to the selected item directly from the file provider. + Added file provider actions for Sharing and Public Links, which will open the UI + for adding and editing sharing and public links to the selected item directly + from the file provider. https://github.com/owncloud/ios-app/pull/910 * Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104) - - Passcode lock enforcement via class setting. User can be forced to set-up a passcode when he - first starts the app - Auto-generated MDM documentation + - Passcode lock enforcement via class setting. User can be forced to set-up a + passcode when he first starts the app - Auto-generated MDM documentation https://github.com/owncloud/enterprise/issues/4104 * Change - "Go to Page" reallocated in PDF previews: [#4448](https://github.com/owncloud/enterprise/issues/4448) - The "Go to Page" option for PDF files has been reallocated to the Actions menu, and is also - available by tapping on the page label. + The "Go to Page" option for PDF files has been reallocated to the Actions menu, + and is also available by tapping on the page label. https://github.com/owncloud/enterprise/issues/4448 @@ -1239,15 +1267,16 @@ Details * Bugfix - PDF thumbnail view position on the iPad: [#905](https://github.com/owncloud/ios-app/pull/905) - Fixed the position of the PDF thumbnail view on the iPad from the bottom to the right position to - get more visible PDF content and to prevent enabling the iOS app switcher when scrolling throw - the thumbnail view. + Fixed the position of the PDF thumbnail view on the iPad from the bottom to the + right position to get more visible PDF content and to prevent enabling the iOS + app switcher when scrolling throw the thumbnail view. https://github.com/owncloud/ios-app/pull/905 * Bugfix - Misplaced Collapsible Progress Bar in detail view: [#906](https://github.com/owncloud/ios-app/issues/906) - Hide the Collapsible Progress Bar in detail view and fixed position in file list. + Hide the Collapsible Progress Bar in detail view and fixed position in file + list. https://github.com/owncloud/ios-app/issues/906 @@ -1327,46 +1356,48 @@ Details When editing bookmarks: - - if a name was set, it wasn't shown in the edit interface - bookmark name edits/additions would - get lost - bookmark name edits would not be presented in the list unless scrolling out of view and - back in + - if a name was set, it wasn't shown in the edit interface - bookmark name + edits/additions would get lost - bookmark name edits would not be presented in + the list unless scrolling out of view and back in https://github.com/owncloud/ios-app/pull/877 * Bugfix - Media Player Behaviour: [#884](https://github.com/owncloud/ios-app/pull/884) - Fix for an issue when playing multiple items in the same directory. If e.g. image item is the next - one, multi media playback would stop. + Fix for an issue when playing multiple items in the same directory. If e.g. + image item is the next one, multi media playback would stop. https://github.com/owncloud/ios-app/pull/884 * Bugfix - Added paragraph on top of Acknowledgements page: [#4284](https://github.com/owncloud/enterprise/issues/4284) - - adds a paragraph on top of the Acknowledgements to provide additional context - adds - PLCrashReporter license to acknowledgements + - adds a paragraph on top of the Acknowledgements to provide additional context + - adds PLCrashReporter license to acknowledgements https://github.com/owncloud/enterprise/issues/4284 * Bugfix - Fixed Branded UI on iPad: [#4367](https://github.com/owncloud/enterprise/issues/4367) - - UI fix for branded login on the iPad - Fill color for branded button was not used + - UI fix for branded login on the iPad - Fill color for branded button was not + used https://github.com/owncloud/enterprise/issues/4367 https://github.com/owncloud/enterprise/issues/4366 * Change - Full Screen PDF View: [#428](https://github.com/owncloud/ios-app/issues/428) - - A PDF file can be opened in fullscreen view and hides unnecessary UI elements. (Tap to trigger - full screen view) - Thumbnails positioned based on vertical size class after rotating the - device to give the displayed document more screen real estate. + - A PDF file can be opened in fullscreen view and hides unnecessary UI elements. + (Tap to trigger full screen view) - Thumbnails positioned based on vertical size + class after rotating the device to give the displayed document more screen real + estate. https://github.com/owncloud/ios-app/issues/428 * Change - Unified Branding with MDM support: [#697](https://github.com/owncloud/ios-app/issues/697) - Refactored Branding, introducing a new Branding class, unifying branding support with class - settings while offering support for the legacy format and laying the ground for retrieving - branding assets from a remote server. + Refactored Branding, introducing a new Branding class, unifying branding support + with class settings while offering support for the legacy format and laying the + ground for retrieving branding assets from a remote server. https://github.com/owncloud/ios-app/issues/697 https://github.com/owncloud/ios-app/issues/792 @@ -1379,7 +1410,8 @@ Details * Change - Video upload improvements: [#847](https://github.com/owncloud/ios-app/issues/847) - - Added ability to upload slo-mo videos etc - Added option to allow uploading original videos + - Added ability to upload slo-mo videos etc - Added option to allow uploading + original videos https://github.com/owncloud/ios-app/issues/847 @@ -1387,24 +1419,25 @@ Details Fix drag and drop and improve support to run the iOS app on M1 Macs: - - add drag-out support for files that are not locally available yet - improve drag-in support - for files, picking the best available representation that can be retrieved as data - support - for drag & drop in the log file browser + - add drag-out support for files that are not locally available yet - improve + drag-in support for files, picking the best available representation that can be + retrieved as data - support for drag & drop in the log file browser https://github.com/owncloud/ios-app/pull/850 * Change - New photo picker / permissions model for iOS 14: [#851](https://github.com/owncloud/ios-app/issues/851) - - Using new PHPhotoPicker introduced in iOS14 instead of our custom picker. - Dealing with the - photo permission model introduced in iOS14 where user can grant access just to specific photo - assets or albums + - Using new PHPhotoPicker introduced in iOS14 instead of our custom picker. - + Dealing with the photo permission model introduced in iOS14 where user can grant + access just to specific photo assets or albums https://github.com/owncloud/ios-app/issues/851 * Change - Corporate Color + UI Refinements: [#860](https://github.com/owncloud/ios-app/issues/860) - The corporate color of the UI themes was updated and furthermore some colors was adopted for a - better contrast. This PR includes also some refinements for some UI elements. + The corporate color of the UI themes was updated and furthermore some colors was + adopted for a better contrast. This PR includes also some refinements for some + UI elements. https://github.com/owncloud/ios-app/issues/860 @@ -1416,39 +1449,40 @@ Details * Change - Enforce User ID when updating token-based bookmarks: [#869](https://github.com/owncloud/ios-app/pull/869) - This PR requires the user ID to remain the same when updating token-based bookmarks. If the user - logs in as a user other than the one with which the bookmark was originally created, an error will - be presented. + This PR requires the user ID to remain the same when updating token-based + bookmarks. If the user logs in as a user other than the one with which the + bookmark was originally created, an error will be presented. https://github.com/owncloud/ios-app/pull/869 * Change - TLS certificate comparison: [#872](https://github.com/owncloud/ios-app/pull/872) - When logging into an account and experiencing a different certificate that does not fulfill - the rules for automatic acceptance as replacement, the issue it brings up now shows the - differences between the two certificates to allow an informed decision by the user. + When logging into an account and experiencing a different certificate that does + not fulfill the rules for automatic acceptance as replacement, the issue it + brings up now shows the differences between the two certificates to allow an + informed decision by the user. https://github.com/owncloud/ios-app/pull/872 * Change - New Issue view / presentation: [#874](https://github.com/owncloud/ios-app/pull/874) - As fixing an iPad layout issue in the old issues view proved too cumbersome, I've replaced the - entire implementation with a new issue view, based on code already there and in use for cards and - tables. + As fixing an iPad layout issue in the old issues view proved too cumbersome, + I've replaced the entire implementation with a new issue view, based on code + already there and in use for cards and tables. https://github.com/owncloud/ios-app/pull/874 * Change - Automated Calens Changelog Creation: [#879](https://github.com/owncloud/ios-app/pull/879) - This PR uses GitHub Actions to automatically generate a changelog file with Calens and commits - the new CHANGELOG.md into the current branch. + This PR uses GitHub Actions to automatically generate a changelog file with + Calens and commits the new CHANGELOG.md into the current branch. https://github.com/owncloud/ios-app/pull/879 * Change - MDM Enhancements: [#4104](https://github.com/owncloud/enterprise/issues/4104) - - Passcode lock enforcement via class setting. User can be forced to set-up a passcode when he - first starts the app - Auto-generated MDM documentation + - Passcode lock enforcement via class setting. User can be forced to set-up a + passcode when he first starts the app - Auto-generated MDM documentation https://github.com/owncloud/enterprise/issues/4104 diff --git a/enterprise/register/registerOwncloudApp.rb b/enterprise/register/registerOwncloudApp.rb index 5babab647..2f3ace4bd 100755 --- a/enterprise/register/registerOwncloudApp.rb +++ b/enterprise/register/registerOwncloudApp.rb @@ -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 . + + # Version 1.1.0 + require 'spaceship' class AppRegistration @@ -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) diff --git a/enterprise/resign/README.md b/enterprise/resign/README.md index b26f92855..378a77cfe 100644 --- a/enterprise/resign/README.md +++ b/enterprise/resign/README.md @@ -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` @@ -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 diff --git a/enterprise/resign/resignInspector.sh b/enterprise/resign/resignInspector.sh index 53e8156aa..8edf6581b 100755 --- a/enterprise/resign/resignInspector.sh +++ b/enterprise/resign/resignInspector.sh @@ -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 . - VERSION="1.0.0" + VERSION="1.1.0" #Define output formats BOLD="$(tput bold)" @@ -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 "" diff --git a/enterprise/resign/resignOwncloudApp b/enterprise/resign/resignOwncloudApp index f2fa208e7..695fa9c67 100755 --- a/enterprise/resign/resignOwncloudApp +++ b/enterprise/resign/resignOwncloudApp @@ -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 . -VERSION="1.2.2" +VERSION="1.3.0" #Define output formats BOLD="$(tput bold)" @@ -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 diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 138627137..0ce56e250 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -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 } } @@ -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)", @@ -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)", @@ -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", @@ -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", @@ -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)", @@ -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", @@ -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] @@ -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 @@ -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 @@ -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", @@ -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] @@ -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) @@ -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) @@ -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, @@ -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 } } ) diff --git a/ownCloud Action Extension/Info.plist b/ownCloud Action Extension/Info.plist new file mode 100644 index 000000000..0ff3f9dc5 --- /dev/null +++ b/ownCloud Action Extension/Info.plist @@ -0,0 +1,40 @@ + + + + + OCKeychainAccessGroupIdentifier + group.com.owncloud.ios-app + OCHasFileProvider + + OCAppComponentIdentifier + shareExtension + CFBundleDisplayName + Save to $(APP_PRODUCT_NAME) + OCAppIdentifierPrefix + $(AppIdentifierPrefix) + OCAppGroupIdentifier + group.com.owncloud.ios-app + NSExtension + + NSExtensionAttributes + + NSExtensionActivationRule + SUBQUERY ( + extensionItems, + $extensionItem, + SUBQUERY ( + $extensionItem.attachments, + $attachment, + ( + ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" + ) + ).@count == $extensionItem.attachments.@count +).@count > 0 + + NSExtensionPrincipalClass + ShareExtensionViewController + NSExtensionPointIdentifier + com.apple.ui-services + + + diff --git a/ownCloud Action Extension/de.lproj/InfoPlist.strings b/ownCloud Action Extension/de.lproj/InfoPlist.strings new file mode 100644 index 000000000..681bcc143 --- /dev/null +++ b/ownCloud Action Extension/de.lproj/InfoPlist.strings @@ -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 . + * + */ + +"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"; diff --git a/ownCloud Action Extension/en.lproj/InfoPlist.strings b/ownCloud Action Extension/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..edfd3700d --- /dev/null +++ b/ownCloud Action Extension/en.lproj/InfoPlist.strings @@ -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 . + * + */ + +"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"; diff --git a/ownCloud Action Extension/ownCloud Action Extension.entitlements b/ownCloud Action Extension/ownCloud Action Extension.entitlements new file mode 100644 index 000000000..988c47786 --- /dev/null +++ b/ownCloud Action Extension/ownCloud Action Extension.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.application-groups + + group.com.owncloud.ios-app + + keychain-access-groups + + $(AppIdentifierPrefix)group.com.owncloud.ios-app + + + diff --git a/ownCloud.xcodeproj/project.pbxproj b/ownCloud.xcodeproj/project.pbxproj index d2a481aa0..3622e3e9d 100644 --- a/ownCloud.xcodeproj/project.pbxproj +++ b/ownCloud.xcodeproj/project.pbxproj @@ -39,6 +39,13 @@ 3912208223436EB80026C290 /* SortMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3912208123436EB80026C290 /* SortMethod.swift */; }; 3912D8AD29958BF400EDCB9A /* OCThemeValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 3912D8AB29958BF400EDCB9A /* OCThemeValues.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3912D8AE29958BF400EDCB9A /* OCThemeValues.m in Sources */ = {isa = PBXBuildFile; fileRef = 3912D8AC29958BF400EDCB9A /* OCThemeValues.m */; }; + 391933C22B0B81DB007DF90B /* ownCloud Action Extension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 391933B42B0B81DB007DF90B /* ownCloud Action Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 391933C62B0B8E5A007DF90B /* ShareExtensionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9B4FC42940F8D60037F8F8 /* ShareExtensionViewController.swift */; }; + 391933CD2B0B8EBD007DF90B /* ownCloudApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCC0855C2293F1FD008CC05C /* ownCloudApp.framework */; }; + 391933CE2B0B8EC0007DF90B /* ownCloudAppShared.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 394A0AF922EEFC2C00603813 /* ownCloudAppShared.framework */; }; + 391933CF2B0B8EC3007DF90B /* ownCloudSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 239369782076110900BCE21A /* ownCloudSDK.framework */; }; + 391933D02B0B8EC7007DF90B /* ownCloudUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2393697C2076110900BCE21A /* ownCloudUI.framework */; }; + 391933DA2B0B9863007DF90B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 391933DC2B0B9863007DF90B /* InfoPlist.strings */; }; 391C79A824E186DC00CB6333 /* OCBookmark+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC136581208223F000FC0F60 /* OCBookmark+Extension.swift */; }; 392CFEB72705831700631D2B /* LAContext+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392CFEB62705831700631D2B /* LAContext+Extension.swift */; }; 392DDAE624C8923B009E5406 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 233BDEA6204FEFE500C06732 /* Assets.xcassets */; }; @@ -658,6 +665,34 @@ remoteGlobalIDString = DC7E0A77203732B3006111FA; remoteInfo = Ocean; }; + 391933C02B0B81DB007DF90B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 233BDE94204FEFE500C06732 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 391933B32B0B81DB007DF90B; + remoteInfo = "ownCloud Action Extension"; + }; + 391933C72B0B8EA2007DF90B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 233BDE94204FEFE500C06732 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCC0855B2293F1FD008CC05C; + remoteInfo = ownCloudApp; + }; + 391933C92B0B8EA5007DF90B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 233BDE94204FEFE500C06732 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 394A0AF822EEFC2C00603813; + remoteInfo = ownCloudAppShared; + }; + 391933CB2B0B8EA9007DF90B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 233BDEBF204FEFF300C06732 /* ownCloudSDK.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = DCC8F9AA202852A200EB6701; + remoteInfo = ownCloudSDK; + }; 394A0AFE22EEFC2C00603813 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 233BDE94204FEFE500C06732 /* Project object */; @@ -935,6 +970,7 @@ 39A7138722E79C6700089423 /* ownCloud Intents.appex in Embed Foundation Extensions */, DCE4E47224C1F5610051722F /* ownCloud Share Extension.appex in Embed Foundation Extensions */, DCC6566520C9B7E400110A97 /* ownCloud File Provider.appex in Embed Foundation Extensions */, + 391933C22B0B81DB007DF90B /* ownCloud Action Extension.appex in Embed Foundation Extensions */, 39DC7CD725C2E1570001E08C /* ownCloud File Provider UI.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; @@ -990,6 +1026,12 @@ 391220932344C30F0026C290 /* CutAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CutAction.swift; sourceTree = ""; }; 3912D8AB29958BF400EDCB9A /* OCThemeValues.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCThemeValues.h; sourceTree = ""; }; 3912D8AC29958BF400EDCB9A /* OCThemeValues.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCThemeValues.m; sourceTree = ""; }; + 391933B42B0B81DB007DF90B /* ownCloud Action Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "ownCloud Action Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 391933B52B0B81DB007DF90B /* UniformTypeIdentifiers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UniformTypeIdentifiers.framework; path = System/Library/Frameworks/UniformTypeIdentifiers.framework; sourceTree = SDKROOT; }; + 391933BF2B0B81DB007DF90B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 391933D12B0B9577007DF90B /* ownCloud Action Extension.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "ownCloud Action Extension.entitlements"; sourceTree = ""; }; + 391933DB2B0B9863007DF90B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 391933DD2B0B9871007DF90B /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; 392CFEB62705831700631D2B /* LAContext+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "LAContext+Extension.swift"; sourceTree = ""; }; 392DDB1324CF024C009E5406 /* ImportFilesController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportFilesController.swift; sourceTree = ""; }; 3931206A2326451900E8DFBA /* Branding.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Branding.plist; path = ownCloud/Resources/Theming/Branding.plist; sourceTree = SOURCE_ROOT; }; @@ -1680,6 +1722,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 391933B12B0B81DB007DF90B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 391933D02B0B8EC7007DF90B /* ownCloudUI.framework in Frameworks */, + 391933CF2B0B8EC3007DF90B /* ownCloudSDK.framework in Frameworks */, + 391933CE2B0B8EC0007DF90B /* ownCloudAppShared.framework in Frameworks */, + 391933CD2B0B8EBD007DF90B /* ownCloudApp.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 394A0AF622EEFC2C00603813 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1790,6 +1843,7 @@ 394A0AFA22EEFC2C00603813 /* ownCloudAppShared */, DCE4E46924C1F5610051722F /* ownCloud Share Extension */, 39DC7CCE25C2E1570001E08C /* ownCloud File Provider UI */, + 391933B72B0B81DB007DF90B /* ownCloud Action Extension */, 233BDE9D204FEFE500C06732 /* Products */, DC85573220513CC700189B9A /* Frameworks */, ); @@ -1809,6 +1863,7 @@ 394A0AF922EEFC2C00603813 /* ownCloudAppShared.framework */, DCE4E46824C1F5610051722F /* ownCloud Share Extension.appex */, 39DC7CCD25C2E1570001E08C /* ownCloud File Provider UI.appex */, + 391933B42B0B81DB007DF90B /* ownCloud Action Extension.appex */, ); name = Products; sourceTree = ""; @@ -1933,6 +1988,16 @@ path = Client; sourceTree = ""; }; + 391933B72B0B81DB007DF90B /* ownCloud Action Extension */ = { + isa = PBXGroup; + children = ( + 391933DC2B0B9863007DF90B /* InfoPlist.strings */, + 391933D12B0B9577007DF90B /* ownCloud Action Extension.entitlements */, + 391933BF2B0B81DB007DF90B /* Info.plist */, + ); + path = "ownCloud Action Extension"; + sourceTree = ""; + }; 392DDB1224CF024C009E5406 /* Import */ = { isa = PBXGroup; children = ( @@ -2776,6 +2841,7 @@ A56EA84D8AD331FFA604138B /* Pods_ownCloudTests.framework */, 42866B2892DC9EDC65D844E7 /* Pods_ownCloud_Screenshots_Tests.framework */, 54199937F74A129BC74DEB0A /* Pods_ownCloudScreenshotsTests.framework */, + 391933B52B0B81DB007DF90B /* UniformTypeIdentifiers.framework */, ); name = Frameworks; sourceTree = ""; @@ -3757,6 +3823,7 @@ DCE4E47124C1F5610051722F /* PBXTargetDependency */, DC0491AA258CAF9800DEDC27 /* PBXTargetDependency */, 39DC7CD625C2E1570001E08C /* PBXTargetDependency */, + 391933C12B0B81DB007DF90B /* PBXTargetDependency */, ); name = ownCloud; packageProductDependencies = ( @@ -3790,6 +3857,26 @@ productReference = 233BDEB0204FEFE500C06732 /* ownCloudTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 391933B32B0B81DB007DF90B /* ownCloud Action Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 391933C32B0B81DC007DF90B /* Build configuration list for PBXNativeTarget "ownCloud Action Extension" */; + buildPhases = ( + 391933B02B0B81DB007DF90B /* Sources */, + 391933B12B0B81DB007DF90B /* Frameworks */, + 391933B22B0B81DB007DF90B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 391933CC2B0B8EA9007DF90B /* PBXTargetDependency */, + 391933CA2B0B8EA5007DF90B /* PBXTargetDependency */, + 391933C82B0B8EA2007DF90B /* PBXTargetDependency */, + ); + name = "ownCloud Action Extension"; + productName = "ownCloud Action Extension"; + productReference = 391933B42B0B81DB007DF90B /* ownCloud Action Extension.appex */; + productType = "com.apple.product-type.app-extension"; + }; 394A0AF822EEFC2C00603813 /* ownCloudAppShared */ = { isa = PBXNativeTarget; buildConfigurationList = 394A0B0222EEFC2C00603813 /* Build configuration list for PBXNativeTarget "ownCloudAppShared" */; @@ -3967,7 +4054,7 @@ 233BDE94204FEFE500C06732 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1150; + LastSwiftUpdateCheck = 1500; LastUpgradeCheck = 1420; ORGANIZATIONNAME = "ownCloud GmbH"; TargetAttributes = { @@ -3996,6 +4083,9 @@ ProvisioningStyle = Automatic; TestTargetID = 233BDE9B204FEFE500C06732; }; + 391933B32B0B81DB007DF90B = { + CreatedOnToolsVersion = 15.0; + }; 394A0AF822EEFC2C00603813 = { CreatedOnToolsVersion = 11.0; LastSwiftMigration = 1430; @@ -4093,6 +4183,7 @@ DCC0855B2293F1FD008CC05C /* ownCloudApp */, 394A0AF822EEFC2C00603813 /* ownCloudAppShared */, DCC085632293F1FD008CC05C /* ownCloudAppTests */, + 391933B32B0B81DB007DF90B /* ownCloud Action Extension */, ); }; /* End PBXProject section */ @@ -4173,6 +4264,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 391933B22B0B81DB007DF90B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 391933DA2B0B9863007DF90B /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 394A0AF722EEFC2C00603813 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -4511,6 +4610,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 391933B02B0B81DB007DF90B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 391933C62B0B8E5A007DF90B /* ShareExtensionViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 394A0AF522EEFC2C00603813 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4886,6 +4993,26 @@ target = 233BDE9B204FEFE500C06732 /* ownCloud */; targetProxy = 233BDEB1204FEFE500C06732 /* PBXContainerItemProxy */; }; + 391933C12B0B81DB007DF90B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 391933B32B0B81DB007DF90B /* ownCloud Action Extension */; + targetProxy = 391933C02B0B81DB007DF90B /* PBXContainerItemProxy */; + }; + 391933C82B0B8EA2007DF90B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCC0855B2293F1FD008CC05C /* ownCloudApp */; + targetProxy = 391933C72B0B8EA2007DF90B /* PBXContainerItemProxy */; + }; + 391933CA2B0B8EA5007DF90B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 394A0AF822EEFC2C00603813 /* ownCloudAppShared */; + targetProxy = 391933C92B0B8EA5007DF90B /* PBXContainerItemProxy */; + }; + 391933CC2B0B8EA9007DF90B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ownCloudSDK; + targetProxy = 391933CB2B0B8EA9007DF90B /* PBXContainerItemProxy */; + }; 394A0AFF22EEFC2C00603813 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 394A0AF822EEFC2C00603813 /* ownCloudAppShared */; @@ -5086,6 +5213,15 @@ name = Intents.intentdefinition; sourceTree = ""; }; + 391933DC2B0B9863007DF90B /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 391933DB2B0B9863007DF90B /* en */, + 391933DD2B0B9871007DF90B /* de */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; 39534BC924EA903200AD7907 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( @@ -5444,6 +5580,86 @@ }; name = Release; }; + 391933C42B0B81DC007DF90B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CODE_SIGN_ENTITLEMENTS = "ownCloud Action Extension/ownCloud Action Extension.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = "$(APP_VERSION)"; + DEVELOPMENT_TEAM = 4AP2STM4H5; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "ownCloud Action Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "ownCloud Action Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 ownCloud GmbH. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = "${APP_SHORT_VERSION}"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.owncloud.ios-app.ownCloud-Action-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 391933C52B0B81DC007DF90B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CODE_SIGN_ENTITLEMENTS = "ownCloud Action Extension/ownCloud Action Extension.entitlements"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = "$(APP_VERSION)"; + DEVELOPMENT_TEAM = 4AP2STM4H5; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "ownCloud Action Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "ownCloud Action Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 ownCloud GmbH. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = "${APP_SHORT_VERSION}"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.owncloud.ios-app.ownCloud-Action-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; 394A0B0322EEFC2C00603813 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5906,6 +6122,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 391933C32B0B81DC007DF90B /* Build configuration list for PBXNativeTarget "ownCloud Action Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 391933C42B0B81DC007DF90B /* Debug */, + 391933C52B0B81DC007DF90B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 394A0B0222EEFC2C00603813 /* Build configuration list for PBXNativeTarget "ownCloudAppShared" */ = { isa = XCConfigurationList; buildConfigurations = (