Skip to content

Commit

Permalink
[feature/fastlane-app-group-identifier] Set App Group Identifier by F…
Browse files Browse the repository at this point in the history
…astlane via Branding.plist (#1099)

* new version number 11.9.0, enabled beta build and warning

* [feature/infinite-propfind] Infinite PROPFIND support (#1002)

* - ProgressIndicatorViewController : extend with Progress object and cancellation support / monitoring
- BookmarkViewController: add infinite PROPFIND prepopulation step after account creation
- update SDK to provide infinite PROPFIND support

* Configuration documentation updated

* - update SDK to gain access to streaming infinite PROPFIND
- switch from receive+parse to stream+parse for infinite PROPFIND

* - update SDK to gain access to new supportsInfinitePropfind capability
- BookmarkViewController: make prepopulation configurable, using new capability and new class setting
- ProgressIndicatorViewController: add support for new title label view

* - BookmarkViewController: fix property name typo
- scheme: add new options to test streaming and split bookmark prepopulation

* Configuration documentation updated

* added additional build information to the Branding.plist file:
- ios-app and ios-sdk commit hash
- copy the Branding.plist with additional app and build information as file name

* [feature/biometrical-mdm-setting ]Suggest Biometrical Unlock (#1046)

* Suggest biometrical unlock, after setting up passcode

* - do not show Cancel button, if password is enforced
- update biometrical UI switch value in settings view
- fixed bug, dismissing the view, if biometrical is not available

* moved extension into ownCloudAppShared folder

* Branding: (#1045)

- add new `branding.user-defaults-default-values` class settings key to allow registration of alternative defaults for user defaults

* - fix bug where a quick access entry showed no items when selected a second time. (#1044)

* used better wording for "Cellular transfers"

* - adjust to final capabilities naming for infinite PROPFIND support

* upgraded app version numbers

Co-authored-by: felix-schwarz <felix-schwarz@users.noreply.github.com>
Co-authored-by: Matthias Hühne <github@hosy.de>
Co-authored-by: Matthias Hühne <mhuehne@owncloud.com>

* [feature/poll-efficiency] Poll for changes efficiency enhancements (#1043)

* - change text in the footer below private links in accordance with owncloud/enterprise#4726

* - SDK update

* - ClientRootViewController: start OCFileProviderServiceStandby only
	- after the connection status is online (== authentication successful)
	- OR 5 seconds after receiving the core from the Core Manager
- fix theoretical bug in ClientRootViewController where OCFileProviderServiceStandby could be started and not stopped if Core Manager returned a core with error

* - bump version to 11.7.2 / build 202

* - FileProviderExtension:
	- handle case where OCDatabase is not available or not open (previously led to a hang/crash as the FP waited for a DB call to return)
	- disable malloc stack logging as it leads to immediate crashes when debugging the file provider

* - update SDK to new version with support for coordinated scan for changes

* - bump build number to 203

Co-authored-by: Matthias Hühne <mhuehne@owncloud.com>

* Configuration documentation updated

* [fix/media-playback-url] Fix WebDAV endpoint URL for media playback after restoration (#1093)

* - fix owncloud/enterprise#4924 via SDK update

* Configuration documentation updated

Co-authored-by: Matthias Hühne <mhuehne@owncloud.com>
Co-authored-by: hosy <hosy@users.noreply.github.com>

* [feature/webfinger] Webfinger / server location (#1059)

* - change text in the footer below private links in accordance with owncloud/enterprise#4726

* - SDK update

* added additional build information to the Branding.plist file:
- ios-app and ios-sdk commit hash
- copy the Branding.plist with additional app and build information as file name

* [feature/biometrical-mdm-setting ]Suggest Biometrical Unlock (#1046)

* Suggest biometrical unlock, after setting up passcode

* - do not show Cancel button, if password is enforced
- update biometrical UI switch value in settings view
- fixed bug, dismissing the view, if biometrical is not available

* moved extension into ownCloudAppShared folder

* Branding: (#1045)

- add new `branding.user-defaults-default-values` class settings key to allow registration of alternative defaults for user defaults

* - fix bug where a quick access entry showed no items when selected a second time. (#1044)

* used better wording for "Cellular transfers"

* - in branded clients: removed UISwitch to enable/disable deletion of available offline files in manage screen
- fixed text center layout in table view cell

* fixed UI issue in sharing view

* #4801 "Log out"  text changes

* #4801 text changes for "Prevent gestures"

* - ThemeTableViewCell, StaticTableViewRow: new .plain message style (#1053)

- add new view controller to present license texts for each component individually

* [feature/modular-localization] Modular localization (#1054)

* - Branding class:
	- move logic for VendorServices.appName to Branding.appDisplayName
	- change app.name variable value to that of Branding.appDisplayName
- switch String.localized from NSLocalizedString() to OCLocale.localize()
- SwiftLint: adapt to latest SwiftLint version

* - add .localized(replacements) function to provide easy access to custom variables support in OCLocale

* - update SDK

* [feature/mdm-auto-connect] Skip Account Screen via MDM (#1056)

* #4801 Skip "Manage" screen / automatically open "Files" screen after login via MDM parameter account.auto-connect

* - SceneDelegate: use .first (which returns nil in case there are no bookmarks) instead of bookmark(at: 0) (which crashes in case there are no bookmarks because the array is empty and the method tries to access an item at index 0)

* added auto-connect after every setup, not only the first setup

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

* [feature/mdm-biometrical-unlock]  MDM setting for Biometrical Unlock (#1058)

* #4818 control via MDM to auto enable biometrical unlock

* overwrites user defaults with MDM settings and use existing getter/setter; renamed MDM key to use-biometrical-unlock

* - use user defaults for use-biometrical-unlock
- show Face ID authorization immediately after enabling Face ID

* - StaticLoginSetupViewController: add support for OCServerLocator, requesting a username if it is enabled
- add additional debug options to ownCloud.xcscheme
- update SDK to gain access to OCServerLocator

* updated APP_VERSION number

* reverted merge conflict changes

* using correct SDK commit

* using latest development sdk commit

Co-authored-by: Matthias Hühne <github@hosy.de>
Co-authored-by: Matthias Hühne <mhuehne@owncloud.com>

* changed app version number

* #4918 added the possiblity, to set a custom app group identifier via Branding.plist parameter "build.app-group-identifier", which will be set by fastlane to all needed key/value pairs. This is needed, if customer using a own resigning script, which does not handle setting the app group identifier.

* added documentation and changelog entry

* Calens changelog updated

* - add additional parameter build.oc-app-group-identifier that only changes the OCAppGroupIdentifier and OCKeychainAccessGroupIdentifier keys in Info.plist

* - add ownCloud/Resources/Info.plist to list of files to replace OCAppGroupIdentifier and OCKeychainAccessGroupIdentifier in

* added documentation for the new build key

* added missing translation string

* [feature/rename-accounts] Rename Account without Authentication Flow (#1097)

* #972 rename account name only (bookmark) is possible without re-authentication flow

* added changelog entry

* moved duplicated code into a function for reuse

* fixed issue link in changelog entry

* Calens changelog updated

* fixed code review finding

* fixed QA findings 1,2,3
- show UI to delete authentication data in edit mode
- only proceed without authentication, if authentication data is not nil

* show delete authentication data UI in all edit mode calls

Co-authored-by: hosy <hosy@users.noreply.github.com>

* #5008 (2) only show "Settings" toolbar, if no account is configured, otherwise "Settings" would appear twice

* [feature/biometrical-button] Biometrical Authentication Button (#1098)

* #1004 added biometrical unlock button, which appears by default as fallback, if biometrical unlock does not work (in file provider or not detected)

* - added fallback image for face-id too
- added changelog entry

* Calens changelog updated

* - fixed visibility of biometrical button in edit mode and, if feature is not enabled
- removed unneeded code

* - AppLockManager: add new property biometricCancelLabel to provide a label for the Cancel-option when presenting biometric authentication
- FileProviderUI / DocumentActionViewController: use new property to display "Cancel" instead of "Enter code" for biometric authentication

Co-authored-by: hosy <hosy@users.noreply.github.com>
Co-authored-by: Felix Schwarz <fs-git@iospirit.com>

* Calens changelog updated

* Calens changelog updated

* Calens changelog updated

* fixed merge conflicts

* Calens changelog updated

* fixed syntax error

* fixed syntax error

* added missing changelog entry

* Calens changelog updated

Co-authored-by: Felix Schwarz <fs-git@iospirit.com>
Co-authored-by: felix-schwarz <felix-schwarz@users.noreply.github.com>
Co-authored-by: hosy <hosy@users.noreply.github.com>
Co-authored-by: Matthias Hühne <>
  • Loading branch information
4 people authored Mar 23, 2022
1 parent 8e845fd commit 97daa90
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 8 deletions.
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
Changelog for ownCloud iOS Client [unreleased] (UNRELEASED)
=======================================
The following sections list the changes in ownCloud iOS Client unreleased relevant to
ownCloud admins and users.

[unreleased]: https://github.com/owncloud/ios-app/compare/milestone/11.9.0...master

Summary
-------

* Change - Set App Group Identifier: [#4918](https://github.com/owncloud/enterprise/issues/4918)

Details
-------

* Change - Set App Group Identifier: [#4918](https://github.com/owncloud/enterprise/issues/4918)

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/enterprise/issues/4918

Changelog for ownCloud iOS Client [11.9.0] (2022-03-16)
=======================================
The following sections list the changes in ownCloud iOS Client 11.9.0 relevant to
Expand Down
5 changes: 5 additions & 0 deletions changelog/unreleased/4918
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Change: Set 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/enterprise/issues/4918
34 changes: 26 additions & 8 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ end
ENTERPRISE_TEAM = values[:ENTERPRISE_TEAM]
ENTERPRISE_IDENTITY = values[:ENTERPRISE_IDENTITY]
APP_GROUP_IDENTIFIERS = values[:APP_GROUP_IDENTIFIERS]
OC_APP_GROUP_IDENTIFIERS = values[:APP_GROUP_IDENTIFIERS]
EXPORT_METHOD = values[:EXPORT_METHOD]
CONFIGURATION = values[:CONFIGURATION]
BUILD_NUMBER = values[:BUILD_NUMBER]
Expand Down Expand Up @@ -561,7 +562,9 @@ end
set_info_plist_value(path: "ownCloud/Resources/Info.plist", key: "CFBundleDisplayName", value: appName)
set_info_plist_value(path: "ownCloud/Resources/Info.plist", key: "CFBundleName", value: appName)

# Check, if Branding.plist file exists and handle custom set values
if File.exist?("../" + themePath)
# Check for custom app version number
tmpCustomAppVersionNumber = get_info_plist_value(path: themePath, key: "app.version-number")
if tmpCustomAppVersionNumber && !tmpCustomAppVersionNumber.empty?
customAppVersionNumber = tmpCustomAppVersionNumber
Expand All @@ -573,6 +576,19 @@ end
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "CFBundleShortVersionString", value: customAppVersionNumber)
end

# Check for custom app group identifier
tmpAPP_GROUP_IDENTIFIERS = get_info_plist_value(path: themePath, key: "build.app-group-identifier")
if tmpAPP_GROUP_IDENTIFIERS && !tmpAPP_GROUP_IDENTIFIERS.empty?
APP_GROUP_IDENTIFIERS = tmpAPP_GROUP_IDENTIFIERS
OC_APP_GROUP_IDENTIFIERS = tmpAPP_GROUP_IDENTIFIERS
end

# Check for custom OC app group identifier
tmpOC_APP_GROUP_IDENTIFIERS = get_info_plist_value(path: themePath, key: "build.oc-app-group-identifier")
if tmpOC_APP_GROUP_IDENTIFIERS && !tmpOC_APP_GROUP_IDENTIFIERS.empty?
OC_APP_GROUP_IDENTIFIERS = tmpOC_APP_GROUP_IDENTIFIERS
end
end

if !values[:BUILD_NUMBER].nil?
Expand Down Expand Up @@ -683,15 +699,17 @@ end
identifiers: [ENTERPRISE_TEAM + "." + APP_GROUP_IDENTIFIERS]
)

set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "OCAppGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud File Provider/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: 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)
set_info_plist_value(path: "ownCloud File Provider UI/Info.plist", key: "OCAppGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud File Provider UI/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "OCAppGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "OCAppGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Share Extension/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud File Provider UI/Info.plist", key: "OCAppGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud File Provider UI/Info.plist", key: "OCKeychainAccessGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
set_info_plist_value(path: "ownCloud Intents/Info.plist", key: "OCAppGroupIdentifier", value: OC_APP_GROUP_IDENTIFIERS)
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/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)

automatic_code_signing(
path: "ownCloud.xcodeproj",
Expand Down
18 changes: 18 additions & 0 deletions ownCloudAppFramework/Building/BuildOptions.m
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
OCClassSettingsKey OCClassSettingsKeyBuildFlags = @"flags";
OCClassSettingsKey OCClassSettingsKeyCustomAppScheme = @"custom-app-scheme";
OCClassSettingsKey OCClassSettingsKeyCustomAuthScheme = @"custom-auth-scheme";
OCClassSettingsKey OCClassSettingsKeyAppGroupIdentifier = @"app-group-identifier";
OCClassSettingsKey OCClassSettingsKeyOCAppGroupIdentifier = @"oc-app-group-identifier";

@implementation BuildOptions

Expand Down Expand Up @@ -71,6 +73,22 @@ + (OCClassSettingsMetadataCollection)classSettingsMetadata
OCClassSettingsMetadataKeyStatus : OCClassSettingsKeyStatusSupported,
OCClassSettingsMetadataKeyCategory : @"Build",
},

// build.app-group-identifier
OCClassSettingsKeyAppGroupIdentifier : @{
OCClassSettingsMetadataKeyType : OCClassSettingsMetadataTypeString,
OCClassSettingsMetadataKeyDescription : @"Set a custom app group identifier via Branding.plist parameter. This value will be set by fastlane. Changes OCAppGroupIdentifier, OCKeychainAccessGroupIdentifier and updates other, directly signing-relevant parts of the Info.plist. With this value set, fastlane needs the provisioning profiles and certificate with the app group identifier. This is needed, if a customer is using an own resigning script which does not handle setting the app group identifier.",
OCClassSettingsMetadataKeyStatus : OCClassSettingsKeyStatusSupported,
OCClassSettingsMetadataKeyCategory : @"Build",
},

// build.oc-app-group-identifier
OCClassSettingsKeyOCAppGroupIdentifier : @{
OCClassSettingsMetadataKeyType : OCClassSettingsMetadataTypeString,
OCClassSettingsMetadataKeyDescription : @"Set a custom app group identifier via Branding.plist parameter. This value will be set by fastlane. Changes OCAppGroupIdentifier, OCKeychainAccessGroupIdentifier only. Fastlane does not need the provisioning profile and certificate with the given app group identifer. Needs resigning with the correct provisioning profile and certificate. This is needed, if a customer is using an own resigning script which does not handle setting the app group identifier.",
OCClassSettingsMetadataKeyStatus : OCClassSettingsKeyStatusSupported,
OCClassSettingsMetadataKeyCategory : @"Build",
},
});
}

Expand Down

0 comments on commit 97daa90

Please sign in to comment.