Add remaining iOS 17 introspections. (#1806)

* Update compound.

* Update Ruby gems.

* Skip smudging in Fastlane.

* Link Git LFS for Xcode in setup-project.
This commit is contained in:
Doug
2023-09-29 17:29:27 +01:00
committed by GitHub
parent 6bc5a440b2
commit 56a9820ded
12 changed files with 69 additions and 43 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ let package = Package(
.library(name: "DesignKit", targets: ["DesignKit"]) .library(name: "DesignKit", targets: ["DesignKit"])
], ],
dependencies: [ dependencies: [
.package(url: "https://github.com/vector-im/compound-ios", revision: "e8c097e545a06a2ef3036af33192a07c58fafd1b"), .package(url: "https://github.com/vector-im/compound-ios", revision: "4d6300e7d9f5fd7e5c448605bd6bf89537add4b8"),
.package(url: "https://github.com/vector-im/element-design-tokens", exact: "0.0.3"), .package(url: "https://github.com/vector-im/element-design-tokens", exact: "0.0.3"),
.package(url: "https://github.com/siteline/SwiftUI-Introspect", from: "0.9.0") .package(url: "https://github.com/siteline/SwiftUI-Introspect", from: "0.9.0")
], ],
@@ -131,7 +131,7 @@ public struct ElementTextFieldStyle: TextFieldStyle {
} }
.onTapGesture { isFocused = true } // Set focus with taps outside of the text field .onTapGesture { isFocused = true } // Set focus with taps outside of the text field
} }
.introspect(.textField, on: .iOS(.v16)) { textField in .introspect(.textField, on: .iOS(.v16, .v17)) { textField in
textField.clearButtonMode = .whileEditing textField.clearButtonMode = .whileEditing
textField.attributedPlaceholder = NSAttributedString(string: textField.placeholder ?? "", textField.attributedPlaceholder = NSAttributedString(string: textField.placeholder ?? "",
attributes: [NSAttributedString.Key.foregroundColor: placeholderColor]) attributes: [NSAttributedString.Key.foregroundColor: placeholderColor])
+3 -1
View File
@@ -5443,6 +5443,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
GIT_LFS_SKIP_SMUDGE = on;
IPHONEOS_DEPLOYMENT_TARGET = 16.4; IPHONEOS_DEPLOYMENT_TARGET = 16.4;
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)"; KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)";
MACOSX_DEPLOYMENT_TARGET = 13.3; MACOSX_DEPLOYMENT_TARGET = 13.3;
@@ -5518,6 +5519,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
GIT_LFS_SKIP_SMUDGE = on;
IPHONEOS_DEPLOYMENT_TARGET = 16.4; IPHONEOS_DEPLOYMENT_TARGET = 16.4;
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)"; KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)";
MACOSX_DEPLOYMENT_TARGET = 13.3; MACOSX_DEPLOYMENT_TARGET = 13.3;
@@ -5819,7 +5821,7 @@
repositoryURL = "https://github.com/vector-im/compound-ios"; repositoryURL = "https://github.com/vector-im/compound-ios";
requirement = { requirement = {
kind = revision; kind = revision;
revision = e8c097e545a06a2ef3036af33192a07c58fafd1b; revision = 4d6300e7d9f5fd7e5c448605bd6bf89537add4b8;
}; };
}; };
9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { 9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = {
@@ -13,7 +13,7 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/vector-im/compound-ios", "location" : "https://github.com/vector-im/compound-ios",
"state" : { "state" : {
"revision" : "e8c097e545a06a2ef3036af33192a07c58fafd1b" "revision" : "4d6300e7d9f5fd7e5c448605bd6bf89537add4b8"
} }
}, },
{ {
@@ -48,7 +48,7 @@ struct Application: App {
openURL($0) openURL($0)
} }
} }
.introspect(.window, on: .iOS(.v16)) { window in .introspect(.window, on: .iOS(.v16, .v17)) { window in
// Workaround for SwiftUI not consistently applying the tint colour to Alerts/Confirmation Dialogs. // Workaround for SwiftUI not consistently applying the tint colour to Alerts/Confirmation Dialogs.
window.tintColor = .compound.textActionPrimary window.tintColor = .compound.textActionPrimary
} }
@@ -52,7 +52,7 @@ struct CreatePollScreen: View {
Text(L10n.screenCreatePollQuestionHint) Text(L10n.screenCreatePollQuestionHint)
.compoundFormTextFieldPlaceholder() .compoundFormTextFieldPlaceholder()
} }
.introspect(.textField, on: .iOS(.v16)) { textField in .introspect(.textField, on: .iOS(.v16, .v17)) { textField in
textField.clearButtonMode = .whileEditing textField.clearButtonMode = .whileEditing
} }
.textFieldStyle(.compoundForm) .textFieldStyle(.compoundForm)
@@ -151,7 +151,7 @@ private struct CreatePollOptionView: View {
Text(placeholder) Text(placeholder)
.compoundFormTextFieldPlaceholder() .compoundFormTextFieldPlaceholder()
} }
.introspect(.textField, on: .iOS(.v16)) { textField in .introspect(.textField, on: .iOS(.v16, .v17)) { textField in
textField.clearButtonMode = .whileEditing textField.clearButtonMode = .whileEditing
} }
.textFieldStyle(.compoundForm) .textFieldStyle(.compoundForm)
@@ -36,7 +36,7 @@ struct TimelineView: View {
var body: some View { var body: some View {
ScrollViewReader { scrollView in ScrollViewReader { scrollView in
timelineScrollView timelineScrollView
.introspect(.scrollView, on: .iOS(.v16)) { uiScrollView in .introspect(.scrollView, on: .iOS(.v16, .v17)) { uiScrollView in
guard uiScrollView != scrollViewAdapter.scrollView else { guard uiScrollView != scrollViewAdapter.scrollView else {
return return
} }
+33 -34
View File
@@ -9,30 +9,30 @@ GEM
specs: specs:
CFPropertyList (3.0.6) CFPropertyList (3.0.6)
rexml rexml
activesupport (7.0.5) activesupport (7.0.8)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2) i18n (>= 1.6, < 2)
minitest (>= 5.1) minitest (>= 5.1)
tzinfo (~> 2.0) tzinfo (~> 2.0)
addressable (2.8.4) addressable (2.8.5)
public_suffix (>= 2.0.2, < 6.0) public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15) artifactory (3.0.15)
atomos (0.1.3) atomos (0.1.3)
aws-eventstream (1.2.0) aws-eventstream (1.2.0)
aws-partitions (1.770.0) aws-partitions (1.829.0)
aws-sdk-core (3.173.1) aws-sdk-core (3.184.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0) aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5) aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1) jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.64.0) aws-sdk-kms (1.72.0)
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-core (~> 3, >= 3.184.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.122.0) aws-sdk-s3 (1.136.0)
aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-core (~> 3, >= 3.181.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4) aws-sigv4 (~> 1.6)
aws-sigv4 (1.5.2) aws-sigv4 (1.6.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4) babosa (1.0.4)
claide (1.1.0) claide (1.1.0)
@@ -43,13 +43,13 @@ GEM
highline (~> 2.0.0) highline (~> 2.0.0)
concurrent-ruby (1.2.2) concurrent-ruby (1.2.2)
declarative (0.0.20) declarative (0.0.20)
digest-crc (0.6.4) digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0) rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701) domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
dotenv (2.8.1) dotenv (2.8.1)
emoji_regex (3.2.3) emoji_regex (3.2.3)
excon (0.99.0) excon (0.103.0)
faraday (1.10.3) faraday (1.10.3)
faraday-em_http (~> 1.0) faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0) faraday-em_synchrony (~> 1.0)
@@ -79,7 +79,7 @@ GEM
faraday_middleware (1.2.0) faraday_middleware (1.2.0)
faraday (~> 1.0) faraday (~> 1.0)
fastimage (2.2.7) fastimage (2.2.7)
fastlane (2.213.0) fastlane (2.216.0)
CFPropertyList (>= 2.3, < 4.0.0) CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0) addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0) artifactory (~> 3.0)
@@ -100,6 +100,7 @@ GEM
google-apis-playcustomapp_v1 (~> 0.1) google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-storage (~> 1.31) google-cloud-storage (~> 1.31)
highline (~> 2.0) highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0) json (< 3.0.0)
jwt (>= 2.1.0, < 3) jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0) mini_magick (>= 4.9.4, < 5.0.0)
@@ -111,7 +112,7 @@ GEM
security (= 0.1.3) security (= 0.1.3)
simctl (~> 1.6.3) simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0) terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0) terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0) tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0) word_wrap (~> 1.0.0)
@@ -127,9 +128,9 @@ GEM
fastlane-plugin-xcodegen (1.1.0) fastlane-plugin-xcodegen (1.1.0)
fastlane-plugin-brew (~> 0.1.1) fastlane-plugin-brew (~> 0.1.1)
gh_inspector (1.1.3) gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.42.0) google-apis-androidpublisher_v3 (0.50.0)
google-apis-core (>= 0.11.0, < 2.a) google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.0) google-apis-core (0.11.1)
addressable (~> 2.5, >= 2.5.1) addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a) httpclient (>= 2.8.1, < 3.a)
@@ -158,10 +159,9 @@ GEM
google-cloud-core (~> 1.6) google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0) mini_mime (~> 1.0)
googleauth (1.5.2) googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a) faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0) jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11) multi_json (~> 1.11)
os (>= 0.9, < 2.0) os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a) signet (>= 0.16, < 2.a)
@@ -170,30 +170,29 @@ GEM
http-cookie (1.0.5) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
httpclient (2.8.3) httpclient (2.8.3)
i18n (1.13.0) i18n (1.14.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jmespath (1.6.2) jmespath (1.6.2)
json (2.6.3) json (2.6.3)
jwt (2.7.0) jwt (2.7.1)
memoist (0.16.2) mime-types (3.5.1)
mime-types (3.4.1)
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2023.0218.1) mime-types-data (3.2023.0808)
mini_magick (4.12.0) mini_magick (4.12.0)
mini_mime (1.1.2) mini_mime (1.1.5)
minitest (5.18.0) minitest (5.20.0)
multi_json (1.15.0) multi_json (1.15.0)
multipart-post (2.3.0) multipart-post (2.3.0)
nanaimo (0.3.0) nanaimo (0.3.0)
naturally (2.2.1) naturally (2.2.1)
netrc (0.11.0) netrc (0.11.0)
nokogiri (1.15.2-arm64-darwin) nokogiri (1.15.4-arm64-darwin)
racc (~> 1.4) racc (~> 1.4)
optparse (0.1.1) optparse (0.1.1)
os (1.1.4) os (1.1.4)
plist (3.7.0) plist (3.7.0)
public_suffix (5.0.1) public_suffix (5.0.3)
racc (1.6.2) racc (1.7.1)
rake (13.0.6) rake (13.0.6)
representable (3.2.0) representable (3.2.0)
declarative (< 0.1.0) declarative (< 0.1.0)
@@ -205,13 +204,13 @@ GEM
mime-types (>= 1.16, < 4.0) mime-types (>= 1.16, < 4.0)
netrc (~> 0.8) netrc (~> 0.8)
retriable (3.1.2) retriable (3.1.2)
rexml (3.2.5) rexml (3.2.6)
rouge (2.0.7) rouge (2.0.7)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
rubyzip (2.3.2) rubyzip (2.3.2)
security (0.1.3) security (0.1.3)
semantic (1.6.1) semantic (1.6.1)
signet (0.17.0) signet (0.18.0)
addressable (~> 2.8) addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a) faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0) jwt (>= 1.5, < 3.0)
@@ -226,8 +225,8 @@ GEM
nokogiri (>= 1.13.9) nokogiri (>= 1.13.9)
xcodeproj (~> 1.21) xcodeproj (~> 1.21)
terminal-notifier (2.0.0) terminal-notifier (2.0.0)
terminal-table (1.8.0) terminal-table (3.0.2)
unicode-display_width (~> 1.1, >= 1.1.1) unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2) trailblazer-option (0.1.2)
tty-cursor (0.7.1) tty-cursor (0.7.1)
tty-screen (0.8.1) tty-screen (0.8.1)
@@ -239,13 +238,13 @@ GEM
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.8.2) unf_ext (0.0.8.2)
unicode-display_width (1.8.0) unicode-display_width (2.4.2)
webrick (1.8.1) webrick (1.8.1)
word_wrap (1.0.0) word_wrap (1.0.0)
xcode-install (2.8.1) xcode-install (2.8.1)
claide (>= 0.9.1) claide (>= 0.9.1)
fastlane (>= 2.1.0, < 3.0.0) fastlane (>= 2.1.0, < 3.0.0)
xcodeproj (1.22.0) xcodeproj (1.23.0)
CFPropertyList (>= 2.3.3, < 4.0) CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3) atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0) claide (>= 1.0.2, < 2.0)
+14
View File
@@ -11,6 +11,7 @@ struct SetupProject: ParsableCommand {
try setupGitHooks() try setupGitHooks()
try brewBundleInstall() try brewBundleInstall()
try mintPackagesInstall() try mintPackagesInstall()
try linkGitLFS()
try xcodegen() try xcodegen()
} }
@@ -29,6 +30,19 @@ struct SetupProject: ParsableCommand {
try Utilities.zsh("mint install Asana/locheck") try Utilities.zsh("mint install Asana/locheck")
} }
func linkGitLFS() throws {
guard let gitPath = try Utilities.zsh("git --exec-path")?.replacingOccurrences(of: "\n", with: "") else { return }
let lfsPath = URL(fileURLWithPath: gitPath).appendingPathComponent("git-lfs").path
guard !FileManager.default.fileExists(atPath: lfsPath) else {
print("Git LFS already linked.")
return
}
try Utilities.zsh("ln -s \"$(which git-lfs)\" \"\(lfsPath)\"")
}
func xcodegen() throws { func xcodegen() throws {
try Utilities.zsh("xcodegen") try Utilities.zsh("xcodegen")
} }
+1
View File
@@ -0,0 +1 @@
Add remaining iOS 17 introspections.
+9
View File
@@ -76,6 +76,9 @@ lane :alpha do
end end
lane :unit_tests do lane :unit_tests do
# Xcode fails to check out Compound snapshots. We don't need them so skip smudging.
ENV["GIT_LFS_SKIP_SMUDGE"] = "true"
run_tests( run_tests(
scheme: "UnitTests", scheme: "UnitTests",
device: 'iPhone 14 (16.4)', device: 'iPhone 14 (16.4)',
@@ -93,6 +96,9 @@ lane :unit_tests do
end end
lane :ui_tests do |options| lane :ui_tests do |options|
# Xcode fails to check out Compound snapshots. We don't need them so skip smudging.
ENV["GIT_LFS_SKIP_SMUDGE"] = "true"
# Use a fresh simulator state to ensure hardware keyboard isn't attached. # Use a fresh simulator state to ensure hardware keyboard isn't attached.
reset_simulator_contents() reset_simulator_contents()
@@ -136,6 +142,9 @@ end
lane :integration_tests do lane :integration_tests do
# Xcode fails to check out Compound snapshots. We don't need them so skip smudging.
ENV["GIT_LFS_SKIP_SMUDGE"] = "true"
clear_derived_data() clear_derived_data()
create_simulator_if_necessary( create_simulator_if_necessary(
+2 -1
View File
@@ -20,6 +20,7 @@ options:
postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh
settings: settings:
GIT_LFS_SKIP_SMUDGE: "on"
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: YES CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: YES
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: "colors/accent-color" ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: "colors/accent-color"
ENABLE_BITCODE: NO ENABLE_BITCODE: NO
@@ -51,7 +52,7 @@ packages:
path: DesignKit path: DesignKit
Compound: Compound:
url: https://github.com/vector-im/compound-ios url: https://github.com/vector-im/compound-ios
revision: e8c097e545a06a2ef3036af33192a07c58fafd1b revision: 4d6300e7d9f5fd7e5c448605bd6bf89537add4b8
# path: ../compound-ios # path: ../compound-ios
AnalyticsEvents: AnalyticsEvents:
url: https://github.com/matrix-org/matrix-analytics-events url: https://github.com/matrix-org/matrix-analytics-events