From 04991b85c2519ca6eb123f60c3f18510f04d5b60 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 19:49:14 +1000 Subject: [PATCH 01/12] Remove dead Google login credentials Removed with WordPressAuthenticator, via f8ad8c49d5 - https://github.com/wordpress-mobile/WordPress-iOS/pull/25646 --- .../Sources/BuildSettingsKit/BuildSecrets.swift | 16 ---------------- .../System/ApiCredentials+BuildSecrets.swift | 5 ----- WordPress/Credentials/Secrets-example.swift | 5 ----- 3 files changed, 26 deletions(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift index 520d9fa79fa8..bf8658d9afe2 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift @@ -10,18 +10,6 @@ public struct BuildSecrets: Sendable { } } - public struct Google: Sendable { - public let clientId: String - public let schemeId: String - public let serverClientId: String - - public init(clientId: String, schemeId: String, serverClientId: String) { - self.clientId = clientId - self.schemeId = schemeId - self.serverClientId = serverClientId - } - } - public struct Zendesk: Sendable { public let appId: String public let url: String @@ -35,7 +23,6 @@ public struct BuildSecrets: Sendable { } public let oauth: OAuth - public let google: Google public let zendesk: Zendesk public let sentryDSN: String public let docsBotId: String @@ -44,7 +31,6 @@ public struct BuildSecrets: Sendable { public init( oauth: OAuth, - google: Google, zendesk: Zendesk, sentryDSN: String, docsBotId: String, @@ -52,7 +38,6 @@ public struct BuildSecrets: Sendable { debuggingKey: String ) { self.oauth = oauth - self.google = google self.zendesk = zendesk self.sentryDSN = sentryDSN self.docsBotId = docsBotId @@ -65,7 +50,6 @@ extension BuildSecrets { public static let dummy = BuildSecrets( oauth: .init(client: "", secret: ""), - google: .init(clientId: "", schemeId: "", serverClientId: ""), zendesk: .init(appId: "", url: "", clientId: ""), sentryDSN: "", docsBotId: "", diff --git a/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift b/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift index a0604d178be9..343e4e526fcb 100644 --- a/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift +++ b/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift @@ -5,11 +5,6 @@ extension ApiCredentials { static func toSecrets() -> BuildSecrets { BuildSecrets( oauth: .init(client: client, secret: secret), - google: .init( - clientId: googleLoginClientId, - schemeId: googleLoginSchemeId, - serverClientId: googleLoginServerClientId - ), zendesk: .init( appId: zendeskAppId, url: zendeskUrl, diff --git a/WordPress/Credentials/Secrets-example.swift b/WordPress/Credentials/Secrets-example.swift index 430f4e036212..217a53481b10 100644 --- a/WordPress/Credentials/Secrets-example.swift +++ b/WordPress/Credentials/Secrets-example.swift @@ -7,11 +7,6 @@ class ApiCredentials: NSObject { static let client = "0" static let secret = "your-secret-here" - // Google Login - static let googleLoginClientId = "" - static let googleLoginSchemeId = "" - static let googleLoginServerClientId = "" - // ZenDesk static let zendeskAppId = "" static let zendeskUrl = "" From 78eab4e794cfd0588f8c2fb3ee6bd15e1c707dbc Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 19:53:50 +1000 Subject: [PATCH 02/12] Remove dead GoogleSignIn URL scheme entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These were the OAuth callback schemes — reversed Google client IDs — for the Google sign-in flow that lived in `WordPressAuthenticator`, deleted in #25646. Nothing handles the scheme anymore. The schemes were hardcoded here rather than injected from `googleLoginSchemeId`, so removing that secret in the preceding commit left them untouched and equally dead. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- Sources/Jetpack/Info.plist | 10 ---------- Sources/WordPress/Info.plist | 10 ---------- 2 files changed, 20 deletions(-) diff --git a/Sources/Jetpack/Info.plist b/Sources/Jetpack/Info.plist index 8d43a85a56df..17b3e93eeb05 100644 --- a/Sources/Jetpack/Info.plist +++ b/Sources/Jetpack/Info.plist @@ -555,16 +555,6 @@ jetpacknotificationmigration - - CFBundleTypeRole - Editor - CFBundleURLName - GoogleSignIn - CFBundleURLSchemes - - com.googleusercontent.apps.108380595987-qmh1rvuqi418cs6otokppnemo48288c9 - - CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/Sources/WordPress/Info.plist b/Sources/WordPress/Info.plist index 7fbac12f3607..69c7d47cbfa5 100644 --- a/Sources/WordPress/Info.plist +++ b/Sources/WordPress/Info.plist @@ -481,16 +481,6 @@ wordpressnotificationmigration - - CFBundleTypeRole - Editor - CFBundleURLName - GoogleSignIn - CFBundleURLSchemes - - com.googleusercontent.apps.108380595987-ujhrhknecrqli756i72gkcs4aaia6nhb - - CFBundleVersion ${VERSION_LONG} From db82159f48af05a942237484cfce60d4dc0ad52e Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 20:21:46 +1000 Subject: [PATCH 03/12] Move Sentry DSN definition from secrets to `Info.plist` That value does not need to be secret. See https://docs.sentry.io/concepts/key-terms/dsn-explainer/#dsn-utilization --- Modules/Sources/BuildSettingsKit/BuildSecrets.swift | 4 ---- Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift | 1 + Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift | 3 ++- Modules/Sources/BuildSettingsKit/BuildSettings.swift | 2 ++ Sources/Jetpack/Info.plist | 2 ++ Sources/Reader/Info.plist | 2 ++ Sources/WordPress/Info.plist | 2 ++ WordPress/Classes/System/ApiCredentials+BuildSecrets.swift | 1 - .../Classes/Utility/Logging/WPCrashLoggingProvider.swift | 2 +- WordPress/Credentials/Secrets-example.swift | 1 - 10 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift index bf8658d9afe2..8645f68461c7 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift @@ -24,7 +24,6 @@ public struct BuildSecrets: Sendable { public let oauth: OAuth public let zendesk: Zendesk - public let sentryDSN: String public let docsBotId: String public let encryptedLogsKey: String public let debuggingKey: String @@ -32,14 +31,12 @@ public struct BuildSecrets: Sendable { public init( oauth: OAuth, zendesk: Zendesk, - sentryDSN: String, docsBotId: String, encryptedLogsKey: String, debuggingKey: String ) { self.oauth = oauth self.zendesk = zendesk - self.sentryDSN = sentryDSN self.docsBotId = docsBotId self.encryptedLogsKey = encryptedLogsKey self.debuggingKey = debuggingKey @@ -51,7 +48,6 @@ extension BuildSecrets { public static let dummy = BuildSecrets( oauth: .init(client: "", secret: ""), zendesk: .init(appId: "", url: "", clientId: ""), - sentryDSN: "", docsBotId: "", encryptedLogsKey: "", debuggingKey: "" diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift index 0a86ee048124..aed5c64ed6dd 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift @@ -34,6 +34,7 @@ extension BuildSettings { zendeskSourcePlatform = bundle.infoValue(forKey: "WPZendeskSourcePlatform") mobileAnnounceAppID = bundle.infoValue(forKey: "WPMobileAnnounceAppID") authKeychainServiceName = bundle.infoValue(forKey: "WPAuthKeychainServiceName") + sentryDSN = bundle.infoValue(forKey: "WPSentryDSN") } } diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift index fedbdd1bf0a1..eae3143e0469 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift @@ -20,7 +20,8 @@ extension BuildSettings { ), zendeskSourcePlatform: "zen", mobileAnnounceAppID: "1234567890", - authKeychainServiceName: "public-api.wordpress.com" + authKeychainServiceName: "public-api.wordpress.com", + sentryDSN: "" ) } diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings.swift b/Modules/Sources/BuildSettingsKit/BuildSettings.swift index f9fcd43a0523..763084caab2b 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings.swift @@ -38,6 +38,8 @@ public struct BuildSettings: Sendable { public var zendeskSourcePlatform: String public var mobileAnnounceAppID: String public var authKeychainServiceName: String + /// See [Sentry: DSN utilization](https://docs.sentry.io/concepts/key-terms/dsn-explainer/#dsn-utilization) + public var sentryDSN: String public struct ProductAboutDetails: Sendable { public var blogURL: URL diff --git a/Sources/Jetpack/Info.plist b/Sources/Jetpack/Info.plist index 17b3e93eeb05..8ee44d09ea63 100644 --- a/Sources/Jetpack/Info.plist +++ b/Sources/Jetpack/Info.plist @@ -670,6 +670,8 @@ jetpack.com/blog WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} + WPSentryDSN + https://ed059b31605743eb8cfb5034bc4a195c@o248881.ingest.sentry.io/5716771 WPZendeskSourcePlatform mobile_-_jp_ios diff --git a/Sources/Reader/Info.plist b/Sources/Reader/Info.plist index b801c5edef13..018993acafa3 100644 --- a/Sources/Reader/Info.plist +++ b/Sources/Reader/Info.plist @@ -33,6 +33,8 @@ jetpack.com/blog WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} + WPSentryDSN + https://2a7b5c4f9d325dd2b93f0abff78cb9c1@o248881.ingest.us.sentry.io/4509160620621824 WPZendeskSourcePlatform mobile_-_jp_ios diff --git a/Sources/WordPress/Info.plist b/Sources/WordPress/Info.plist index 69c7d47cbfa5..3ac9379fdc5a 100644 --- a/Sources/WordPress/Info.plist +++ b/Sources/WordPress/Info.plist @@ -595,6 +595,8 @@ wordpress.org/news/ WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} + WPSentryDSN + https://484d81126ac9483da3756876e80148ab@o248881.ingest.sentry.io/1438083 WPZendeskSourcePlatform mobile_-_ios diff --git a/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift b/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift index 343e4e526fcb..b72dc0d3375a 100644 --- a/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift +++ b/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift @@ -10,7 +10,6 @@ extension ApiCredentials { url: zendeskUrl, clientId: zendeskClientId ), - sentryDSN: sentryDSN, docsBotId: docsBotId, encryptedLogsKey: encryptedLogKey, debuggingKey: debuggingKey diff --git a/WordPress/Classes/Utility/Logging/WPCrashLoggingProvider.swift b/WordPress/Classes/Utility/Logging/WPCrashLoggingProvider.swift index db36c98e6fa1..5f082320677a 100644 --- a/WordPress/Classes/Utility/Logging/WPCrashLoggingProvider.swift +++ b/WordPress/Classes/Utility/Logging/WPCrashLoggingProvider.swift @@ -45,7 +45,7 @@ struct WPCrashLoggingDataProvider: CrashLoggingDataProvider { init( contextManager: ContextManager = .shared, - sentryDSN: String = BuildSettings.current.secrets.sentryDSN + sentryDSN: String = BuildSettings.current.sentryDSN ) { self.contextManager = contextManager self.sentryDSN = sentryDSN diff --git a/WordPress/Credentials/Secrets-example.swift b/WordPress/Credentials/Secrets-example.swift index 217a53481b10..b0a277e455b5 100644 --- a/WordPress/Credentials/Secrets-example.swift +++ b/WordPress/Credentials/Secrets-example.swift @@ -13,7 +13,6 @@ class ApiCredentials: NSObject { static let zendeskClientId = "" // Other Services - static let sentryDSN = "" static let encryptedLogKey = "" static let debuggingKey = "" static let docsBotId = "" From bbf8b8637c36324c91c4c4f367a2556ef3b8905d Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 20:53:47 +1000 Subject: [PATCH 04/12] Update DocsBot documentation links The `/docs/` path the widget comment pointed at is stale; the page now lives under `/documentation/developer/`. The same link sits on `docsBotId` because it establishes what the value is: the widget `id` is embed code, documented for placement in a site's public HTML. That makes it a candidate to leave `BuildSecrets` the way the Sentry DSN did. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- Modules/Sources/BuildSettingsKit/BuildSecrets.swift | 1 + .../Support/SupportChatBot/SupportChatBotViewController.swift | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift index 8645f68461c7..46683a2d25b1 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift @@ -24,6 +24,7 @@ public struct BuildSecrets: Sendable { public let oauth: OAuth public let zendesk: Zendesk + /// See [DocsBot: Embeddable Chat Widget](https://docsbot.ai/documentation/developer/embeddable-chat-widget) public let docsBotId: String public let encryptedLogsKey: String public let debuggingKey: String diff --git a/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewController.swift b/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewController.swift index 0ed817f582f4..a5cc1d15c694 100644 --- a/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewController.swift +++ b/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewController.swift @@ -71,7 +71,7 @@ final class SupportChatBotViewController: UIViewController { } /// Creating DocsBotAI JavaScript code so we could tweak configuration from within Swift code - /// https://docsbot.ai/docs/embeddable-chat-widget + /// https://docsbot.ai/documentation/developer/embeddable-chat-widget private func createDocsBotInitCode() -> String { """ (function() { From d307d502f50055e39006e6b21a62523935c0c618 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 20:59:35 +1000 Subject: [PATCH 05/12] Move Docs Bot ID from secrets to Jetpack's `Info.plist` --- Modules/Sources/BuildSettingsKit/BuildSecrets.swift | 5 ----- Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift | 1 + Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift | 3 ++- Modules/Sources/BuildSettingsKit/BuildSettings.swift | 4 ++++ Sources/Jetpack/Info.plist | 2 ++ Sources/Reader/Info.plist | 2 ++ Sources/WordPress/Info.plist | 2 ++ WordPress/Classes/System/ApiCredentials+BuildSecrets.swift | 1 - .../Support/SupportChatBot/SupportChatBotViewModel.swift | 2 +- WordPress/Credentials/Secrets-example.swift | 1 - 10 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift index 46683a2d25b1..9af9ac0fbe64 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSecrets.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSecrets.swift @@ -24,21 +24,17 @@ public struct BuildSecrets: Sendable { public let oauth: OAuth public let zendesk: Zendesk - /// See [DocsBot: Embeddable Chat Widget](https://docsbot.ai/documentation/developer/embeddable-chat-widget) - public let docsBotId: String public let encryptedLogsKey: String public let debuggingKey: String public init( oauth: OAuth, zendesk: Zendesk, - docsBotId: String, encryptedLogsKey: String, debuggingKey: String ) { self.oauth = oauth self.zendesk = zendesk - self.docsBotId = docsBotId self.encryptedLogsKey = encryptedLogsKey self.debuggingKey = debuggingKey } @@ -49,7 +45,6 @@ extension BuildSecrets { public static let dummy = BuildSecrets( oauth: .init(client: "", secret: ""), zendesk: .init(appId: "", url: "", clientId: ""), - docsBotId: "", encryptedLogsKey: "", debuggingKey: "" ) diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift index aed5c64ed6dd..d4b080fd6430 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift @@ -35,6 +35,7 @@ extension BuildSettings { mobileAnnounceAppID = bundle.infoValue(forKey: "WPMobileAnnounceAppID") authKeychainServiceName = bundle.infoValue(forKey: "WPAuthKeychainServiceName") sentryDSN = bundle.infoValue(forKey: "WPSentryDSN") + docsBotId = bundle.infoValue(forKey: "WPDocsBotId") } } diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift index eae3143e0469..b5611ff27b82 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Preview.swift @@ -21,7 +21,8 @@ extension BuildSettings { zendeskSourcePlatform: "zen", mobileAnnounceAppID: "1234567890", authKeychainServiceName: "public-api.wordpress.com", - sentryDSN: "" + sentryDSN: "", + docsBotId: "" ) } diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings.swift b/Modules/Sources/BuildSettingsKit/BuildSettings.swift index 763084caab2b..b1dc47c1cd9a 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings.swift @@ -40,6 +40,10 @@ public struct BuildSettings: Sendable { public var authKeychainServiceName: String /// See [Sentry: DSN utilization](https://docs.sentry.io/concepts/key-terms/dsn-explainer/#dsn-utilization) public var sentryDSN: String + /// Empty outside Jetpack, the only app that presents the support chat bot. + /// + /// See [DocsBot: Embeddable Chat Widget](https://docsbot.ai/documentation/developer/embeddable-chat-widget) + public var docsBotId: String public struct ProductAboutDetails: Sendable { public var blogURL: URL diff --git a/Sources/Jetpack/Info.plist b/Sources/Jetpack/Info.plist index 8ee44d09ea63..1035fa3d7b77 100644 --- a/Sources/Jetpack/Info.plist +++ b/Sources/Jetpack/Info.plist @@ -656,6 +656,8 @@ jetpack.public-api.wordpress.com WPBuildConfiguration ${WP_BUILD_CONFIGURATION} + WPDocsBotId + TqTdebbGjJeUjrmBIFjh/YbAMwiheXLs2Ue5j7elH WPEventNamePrefix jpios WPExplatPlatform diff --git a/Sources/Reader/Info.plist b/Sources/Reader/Info.plist index 018993acafa3..49047aeb7a11 100644 --- a/Sources/Reader/Info.plist +++ b/Sources/Reader/Info.plist @@ -19,6 +19,8 @@ reader.public-api.wordpress.com WPBuildConfiguration ${WP_BUILD_CONFIGURATION} + WPDocsBotId + WPEventNamePrefix jpios WPExplatPlatform diff --git a/Sources/WordPress/Info.plist b/Sources/WordPress/Info.plist index 3ac9379fdc5a..27a9b881fb6f 100644 --- a/Sources/WordPress/Info.plist +++ b/Sources/WordPress/Info.plist @@ -581,6 +581,8 @@ public-api.wordpress.com WPBuildConfiguration ${WP_BUILD_CONFIGURATION} + WPDocsBotId + WPEventNamePrefix wpios WPExplatPlatform diff --git a/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift b/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift index b72dc0d3375a..5d926ef77165 100644 --- a/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift +++ b/WordPress/Classes/System/ApiCredentials+BuildSecrets.swift @@ -10,7 +10,6 @@ extension ApiCredentials { url: zendeskUrl, clientId: zendeskClientId ), - docsBotId: docsBotId, encryptedLogsKey: encryptedLogKey, debuggingKey: debuggingKey ) diff --git a/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewModel.swift b/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewModel.swift index 63e197ddb0f7..43effc119215 100644 --- a/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewModel.swift +++ b/WordPress/Classes/ViewRelated/Support/SupportChatBot/SupportChatBotViewModel.swift @@ -11,7 +11,7 @@ struct SupportChatBotViewModel { init( zendeskUtils: ZendeskUtilsProtocol = ZendeskUtils.sharedInstance, - docsBotId: String = BuildSettings.current.secrets.docsBotId + docsBotId: String = BuildSettings.current.docsBotId ) { self.zendeskUtils = zendeskUtils self.docsBotId = docsBotId diff --git a/WordPress/Credentials/Secrets-example.swift b/WordPress/Credentials/Secrets-example.swift index b0a277e455b5..d2483a7526af 100644 --- a/WordPress/Credentials/Secrets-example.swift +++ b/WordPress/Credentials/Secrets-example.swift @@ -15,5 +15,4 @@ class ApiCredentials: NSObject { // Other Services static let encryptedLogKey = "" static let debuggingKey = "" - static let docsBotId = "" } From f36f7c327b75bfbbbf67ccf79275d299f9e41948 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 21:27:30 +1000 Subject: [PATCH 06/12] Read one secrets file for all app targets The per-app branching existed because the secrets files held app-specific values. Those have since moved to each app's `Info.plist`, read via `BuildSettings`, leaving only values the three apps share. `WordPress-Secrets-Internal.swift` and `-Alpha.swift` leave the input list too: the script stopped reading them well before this change. The shebang moves to `#!/usr/bin/env bash` with a separate `set -euo pipefail`. `#!/bin/bash -euo pipefail` passed multiple parameters, which most systems do not support. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- Scripts/BuildPhases/GenerateCredentials.sh | 29 ++++--------------- .../GenerateCredentials.xcfilelist | 4 --- 2 files changed, 5 insertions(+), 28 deletions(-) diff --git a/Scripts/BuildPhases/GenerateCredentials.sh b/Scripts/BuildPhases/GenerateCredentials.sh index ebef9d0644cc..8a85c6562920 100755 --- a/Scripts/BuildPhases/GenerateCredentials.sh +++ b/Scripts/BuildPhases/GenerateCredentials.sh @@ -1,4 +1,6 @@ -#!/bin/bash -euo pipefail +#!/usr/bin/env bash + +set -euo pipefail # The Secrets File Sources SECRETS_ROOT="${HOME}/.configure/wordpress-ios/secrets" @@ -49,11 +51,6 @@ function ensure_is_in_input_files_list() { WORDPRESS_SECRETS_FILE="${SECRETS_ROOT}/WordPress-Secrets.swift" ensure_is_in_input_files_list $WORDPRESS_SECRETS_FILE -JETPACK_SECRETS_FILE="${SECRETS_ROOT}/Jetpack-Secrets.swift" -ensure_is_in_input_files_list $JETPACK_SECRETS_FILE - -READER_SECRETS_FILE="${SECRETS_ROOT}/Reader-Secrets.swift" -ensure_is_in_input_files_list $READER_SECRETS_FILE LOCAL_SECRETS_FILE="${SRCROOT}/Credentials/Secrets.swift" EXAMPLE_SECRETS_FILE="${SRCROOT}/Credentials/Secrets-example.swift" @@ -63,29 +60,13 @@ ensure_is_in_input_files_list $EXAMPLE_SECRETS_FILE SECRETS_DESTINATION_FILE="${SCRIPT_OUTPUT_FILE_0}" mkdir -p "$(dirname "$SECRETS_DESTINATION_FILE")" -WORDPRESS_TARGETS=("WordPress" "WordPressShareExtension" "WordPressDraftActionExtension" "WordPressNotificationServiceExtension") -# If the WordPress Production Secrets are available for WordPress, use them -if [ -f "$WORDPRESS_SECRETS_FILE" ] && [[ " ${WORDPRESS_TARGETS[*]} " == *" $TARGET_NAME "* ]]; then +# WordPress, Jetpack, and Reader use all the same secrets at this time. +if [ -f "$WORDPRESS_SECRETS_FILE" ]; then echo "Applying Production Secrets" cp -v "$WORDPRESS_SECRETS_FILE" "${SECRETS_DESTINATION_FILE}" exit 0 fi -JETPACK_TARGETS=("Jetpack" "JetpackStatsWidgets" "JetpackShareExtension" "JetpackDraftActionExtension" "JetpackNotificationServiceExtension") -# If the Jetpack Secrets are available and if we're building Jetpack use them -if [ -f "$JETPACK_SECRETS_FILE" ] && [[ " ${JETPACK_TARGETS[*]} " == *" $TARGET_NAME "* ]]; then - echo "Applying Jetpack Secrets" - cp -v "$JETPACK_SECRETS_FILE" "${SECRETS_DESTINATION_FILE}" - exit 0 -fi - -# If the Reader Secrets are available and if we're building Reader use them -if [ -f "$READER_SECRETS_FILE" ] && [ "${TARGET_NAME}" == "Reader" ]; then - echo "Applying Reader Secrets" - cp -v "$READER_SECRETS_FILE" "${SECRETS_DESTINATION_FILE}" - exit 0 -fi - EXTERNAL_CONTRIBUTOR_RELEASE_MSG="External contributors should not need to perform a Release build" # If the developer has a local secrets file, use it diff --git a/Scripts/BuildPhases/GenerateCredentials.xcfilelist b/Scripts/BuildPhases/GenerateCredentials.xcfilelist index c52def6be2d1..6d96684147aa 100644 --- a/Scripts/BuildPhases/GenerateCredentials.xcfilelist +++ b/Scripts/BuildPhases/GenerateCredentials.xcfilelist @@ -1,10 +1,6 @@ # Lists of input files for the script that populates the app's secrets with the # correct values for the current scheme and build configuration. ${HOME}/.configure/wordpress-ios/secrets/WordPress-Secrets.swift -${HOME}/.configure/wordpress-ios/secrets/WordPress-Secrets-Internal.swift -${HOME}/.configure/wordpress-ios/secrets/WordPress-Secrets-Alpha.swift -${HOME}/.configure/wordpress-ios/secrets/Jetpack-Secrets.swift -${HOME}/.configure/wordpress-ios/secrets/Reader-Secrets.swift # Local Secrets file that external contributors can use to specify their own # ClientID and Secrets. This file is created by the Rakefile when external From 50b23a6eeefc040e0265c05ee3826d698cc65b48 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 21:27:55 +1000 Subject: [PATCH 07/12] Fix stale script path in credentials filelist The entry pointed at `ApplyConfiguration.sh`, renamed in e78ed884ff and never updated here, so the self-dependency its comment describes was not wired: Xcode had no edge from the build phase to the script driving it. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- Scripts/BuildPhases/GenerateCredentials.xcfilelist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scripts/BuildPhases/GenerateCredentials.xcfilelist b/Scripts/BuildPhases/GenerateCredentials.xcfilelist index 6d96684147aa..d76f05ea476b 100644 --- a/Scripts/BuildPhases/GenerateCredentials.xcfilelist +++ b/Scripts/BuildPhases/GenerateCredentials.xcfilelist @@ -14,4 +14,4 @@ ${SRCROOT}/Credentials/Secrets-example.swift # Add the script that uses this file as a source, so that, if the script # changes, Xcode will run it again on the next build. -${SRCROOT}/../Scripts/BuildPhases/ApplyConfiguration.sh +${SRCROOT}/../Scripts/BuildPhases/GenerateCredentials.sh From 78ff4475908c24d086e7ab775b68ac2188d36254 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sat, 18 Jul 2026 22:02:17 +1000 Subject: [PATCH 08/12] Store the Sentry DSN without its scheme `INFOPLIST_PREPROCESS` is on for WordPress and Jetpack, so the plist goes through the C preprocessor, where `//` opens a comment. The `https://` in the DSN swallowed the rest of the line including ``, leaving XML that `ProcessInfoPlistFile` could not parse, and every app build failed. Reader does not preprocess its plist, but the value is read through one code path, so all three stay consistent. This mirrors `WPProductBlogURL`, which is stored scheme-less for the same reason. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift | 4 +++- Sources/Jetpack/Info.plist | 2 +- Sources/Reader/Info.plist | 2 +- Sources/WordPress/Info.plist | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift index d4b080fd6430..cc2518ccdef5 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift @@ -34,7 +34,9 @@ extension BuildSettings { zendeskSourcePlatform = bundle.infoValue(forKey: "WPZendeskSourcePlatform") mobileAnnounceAppID = bundle.infoValue(forKey: "WPMobileAnnounceAppID") authKeychainServiceName = bundle.infoValue(forKey: "WPAuthKeychainServiceName") - sentryDSN = bundle.infoValue(forKey: "WPSentryDSN") + // Keep the scheme out of the plist: `INFOPLIST_PREPROCESS` runs it through the C + // preprocessor, where `//` starts a comment and would truncate the value. + sentryDSN = "https://" + bundle.infoValue(forKey: "WPSentryDSN") docsBotId = bundle.infoValue(forKey: "WPDocsBotId") } } diff --git a/Sources/Jetpack/Info.plist b/Sources/Jetpack/Info.plist index 1035fa3d7b77..96661c06ab1b 100644 --- a/Sources/Jetpack/Info.plist +++ b/Sources/Jetpack/Info.plist @@ -673,7 +673,7 @@ WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} WPSentryDSN - https://ed059b31605743eb8cfb5034bc4a195c@o248881.ingest.sentry.io/5716771 + ed059b31605743eb8cfb5034bc4a195c@o248881.ingest.sentry.io/5716771 WPZendeskSourcePlatform mobile_-_jp_ios diff --git a/Sources/Reader/Info.plist b/Sources/Reader/Info.plist index 49047aeb7a11..d9942a9cbe9b 100644 --- a/Sources/Reader/Info.plist +++ b/Sources/Reader/Info.plist @@ -36,7 +36,7 @@ WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} WPSentryDSN - https://2a7b5c4f9d325dd2b93f0abff78cb9c1@o248881.ingest.us.sentry.io/4509160620621824 + 2a7b5c4f9d325dd2b93f0abff78cb9c1@o248881.ingest.us.sentry.io/4509160620621824 WPZendeskSourcePlatform mobile_-_jp_ios diff --git a/Sources/WordPress/Info.plist b/Sources/WordPress/Info.plist index 27a9b881fb6f..0227dac142a9 100644 --- a/Sources/WordPress/Info.plist +++ b/Sources/WordPress/Info.plist @@ -598,7 +598,7 @@ WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} WPSentryDSN - https://484d81126ac9483da3756876e80148ab@o248881.ingest.sentry.io/1438083 + 484d81126ac9483da3756876e80148ab@o248881.ingest.sentry.io/1438083 WPZendeskSourcePlatform mobile_-_ios From 75ac465f0c6325276762d7f1fe47cac8700a0d56 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sun, 19 Jul 2026 11:59:52 +1000 Subject: [PATCH 09/12] Slim down AI-generated comment --- Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift index cc2518ccdef5..77f9d7e1f99a 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift @@ -34,8 +34,7 @@ extension BuildSettings { zendeskSourcePlatform = bundle.infoValue(forKey: "WPZendeskSourcePlatform") mobileAnnounceAppID = bundle.infoValue(forKey: "WPMobileAnnounceAppID") authKeychainServiceName = bundle.infoValue(forKey: "WPAuthKeychainServiceName") - // Keep the scheme out of the plist: `INFOPLIST_PREPROCESS` runs it through the C - // preprocessor, where `//` starts a comment and would truncate the value. + // The plist does not carry the URL scheme because the C preprocessor treats the `//` as a comment resulting in a truncated value. sentryDSN = "https://" + bundle.infoValue(forKey: "WPSentryDSN") docsBotId = bundle.infoValue(forKey: "WPDocsBotId") } From e04d3b5e344fdb07e1a485120e2259079394aaa3 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sun, 19 Jul 2026 12:02:49 +1000 Subject: [PATCH 10/12] Name the Sentry DSN key for its missing scheme The constraint only shows up in `BuildSettings+Live.swift`, which someone editing the plist never opens. `WPSentryNoSchemeDSN` states it where a full DSN would otherwise get pasted, and unlike an XML comment it survives Xcode's plist editor. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift | 2 +- Sources/Jetpack/Info.plist | 2 +- Sources/Reader/Info.plist | 2 +- Sources/WordPress/Info.plist | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift index 77f9d7e1f99a..6c47093901a2 100644 --- a/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift +++ b/Modules/Sources/BuildSettingsKit/BuildSettings+Live.swift @@ -35,7 +35,7 @@ extension BuildSettings { mobileAnnounceAppID = bundle.infoValue(forKey: "WPMobileAnnounceAppID") authKeychainServiceName = bundle.infoValue(forKey: "WPAuthKeychainServiceName") // The plist does not carry the URL scheme because the C preprocessor treats the `//` as a comment resulting in a truncated value. - sentryDSN = "https://" + bundle.infoValue(forKey: "WPSentryDSN") + sentryDSN = "https://" + bundle.infoValue(forKey: "WPSentryNoSchemeDSN") docsBotId = bundle.infoValue(forKey: "WPDocsBotId") } } diff --git a/Sources/Jetpack/Info.plist b/Sources/Jetpack/Info.plist index 96661c06ab1b..33b4afd61ab4 100644 --- a/Sources/Jetpack/Info.plist +++ b/Sources/Jetpack/Info.plist @@ -672,7 +672,7 @@ jetpack.com/blog WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} - WPSentryDSN + WPSentryNoSchemeDSN ed059b31605743eb8cfb5034bc4a195c@o248881.ingest.sentry.io/5716771 WPZendeskSourcePlatform mobile_-_jp_ios diff --git a/Sources/Reader/Info.plist b/Sources/Reader/Info.plist index d9942a9cbe9b..9745931d59f7 100644 --- a/Sources/Reader/Info.plist +++ b/Sources/Reader/Info.plist @@ -35,7 +35,7 @@ jetpack.com/blog WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} - WPSentryDSN + WPSentryNoSchemeDSN 2a7b5c4f9d325dd2b93f0abff78cb9c1@o248881.ingest.us.sentry.io/4509160620621824 WPZendeskSourcePlatform mobile_-_jp_ios diff --git a/Sources/WordPress/Info.plist b/Sources/WordPress/Info.plist index 0227dac142a9..2e80a9be1079 100644 --- a/Sources/WordPress/Info.plist +++ b/Sources/WordPress/Info.plist @@ -597,7 +597,7 @@ wordpress.org/news/ WPPushNotificationAppID ${WP_PUSH_NOTIFICATION_APP_ID} - WPSentryDSN + WPSentryNoSchemeDSN 484d81126ac9483da3756876e80148ab@o248881.ingest.sentry.io/1438083 WPZendeskSourcePlatform mobile_-_ios From 734d36f777bc3bc557c1312d2094915d5b173d26 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sun, 19 Jul 2026 12:12:47 +1000 Subject: [PATCH 11/12] Remove now-unused app-specific secrets --- .configure | 20 -------------------- .configure-files/Jetpack-Secrets.swift.enc | Bin 1200 -> 0 bytes .configure-files/Reader-Secrets.swift.enc | Bin 1360 -> 0 bytes .configure-files/Secrets-Alpha.swift.enc | Bin 1152 -> 0 bytes .configure-files/Secrets-Internal.swift.enc | Bin 1152 -> 0 bytes 5 files changed, 20 deletions(-) delete mode 100644 .configure-files/Jetpack-Secrets.swift.enc delete mode 100644 .configure-files/Reader-Secrets.swift.enc delete mode 100644 .configure-files/Secrets-Alpha.swift.enc delete mode 100644 .configure-files/Secrets-Internal.swift.enc diff --git a/.configure b/.configure index 4da74081ca7c..72b8b3be4667 100644 --- a/.configure +++ b/.configure @@ -7,26 +7,6 @@ "file": "iOS/WPiOS/Secrets.swift", "destination": "~/.configure/wordpress-ios/secrets/WordPress-Secrets.swift", "encrypt": true - }, - { - "file": "iOS/WPiOS/Secrets-Internal.swift", - "destination": "~/.configure/wordpress-ios/secrets/WordPress-Secrets-Internal.swift", - "encrypt": true - }, - { - "file": "iOS/WPiOS/Secrets-Alpha.swift", - "destination": "~/.configure/wordpress-ios/secrets/WordPress-Secrets-Alpha.swift", - "encrypt": true - }, - { - "file": "iOS/JPiOS/Jetpack-Secrets.swift", - "destination": "~/.configure/wordpress-ios/secrets/Jetpack-Secrets.swift", - "encrypt": true - }, - { - "file": "iOS/Reader/Reader-Secrets.swift", - "destination": "~/.configure/wordpress-ios/secrets/Reader-Secrets.swift", - "encrypt": true } ], "file_dependencies": [] diff --git a/.configure-files/Jetpack-Secrets.swift.enc b/.configure-files/Jetpack-Secrets.swift.enc deleted file mode 100644 index ea3cc37302b2dd571ff5743d3e278b0139d2a568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 zcmV;h1W)_##81BYE8wZir~1r;eZ9xI!DK;Y=}%{P&2fa|1j~$?<89t;V~^{tm=Byy zU)jvpe3*JI(*uZlh!$=|@Suhs@LH^zBq*&U21muS6EW|=P@c9j;g-YPr_3bjSpEvo ziz=W}u65u?k~go*-Z-Bk^qyIxl7}q>XjNdS1T;Ey?Fv{}*@;-#i0qMzy{HF*VlFB} zmdutX^#Qv#AJV}=LV@8teJkcSu&zMqtn6zN>nJCT+0|bko(Vn05>Sk|C%;mydBa?l zF`Tvm*lF?WmJ90pnN=PqP3}CsJR_h6-nlL36M(dHLo5bKaQ}w;gBJb5h_s!j!8bQ4 ziDd-eRy20Cy9H13XJR z$1yH6ZKsmw=t3lM3}N7o9ePaZBNk)Eg%7*joWYUg&YZLcTEE!h(M7ta!%+K`*x&B2 zs#bf#KrVU{q{*PaGimvF8E}^{^NlGT$k(JfR6Q|{0uHX%@yyU9`PP^3B^KiwsI7t9 z#blO($1S(#x;^8}W|X%?8k!Gt8qk>@@VQ_CDx`Lb#_5HA?@;ST1SR$T>nGcN zZPXm6{o{#WThN*^mve4xnePnb@IE}JS55`?m=L;jeyLd4UAZZ}=0WNcw2 zqUeU^L>5%Sprnp8vjC9DoP45VbnuO^6N!B@Y2DAx!>A8;w(|VqVD$9A*n#rQ)Y9QD zDMAFG#l(+No1#6^B``;06F=-L+NS1A|U)l_jdK5&#ox;?$16#x7FA^hm_OJbE=c zB_$e$3(p={KG514Y6~W=r&K;q^Q>L-ZPB$9pEiOn-#}^ENXQR2LL57G@iO%i!_x|c z$M|z=aanMwwk>aJW=x+<6z?lfLndH3NQ<^Vb0&_rr?cr%)k&=n%m&L^bcOcPv8 z?xu9iF=hHuB{c3}l)t4(xKZOl+e=a@PH3I4w=9xeE9bMEMZ-{=ziS=I@}C$YX=TMx zZbsHFI>0mjcsz?X)hyQln>GG857-<TL?2YhM zku)XebsT~VXKgGcFIfhn6UAfx^Rc)KcSw_KtD8^no#a&{Eo|%iQxZ59&r*BJ4v<)1 ziBpV3sq~SrX2yD$CivF3de!{305vu3t>=^4GR~)TrdP`c0G@Uo`T%FrR0v4u{n4Po zU}(939N0iYXJXj8O~@FCG)uD=J4sp)Liob diff --git a/.configure-files/Reader-Secrets.swift.enc b/.configure-files/Reader-Secrets.swift.enc deleted file mode 100644 index ccf158a9cbf119b3648e92bba7687ba23106090f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1360 zcmV-W1+V(=#81BYE8wZir~1r;eZ9xI!DK;Y=}%{P&2fa|1j~$?<89t;V~^{tm=Byy zU)jvpe3*JI(*uZlh!$=|@SuiJ(ItJs#-{fh1^z(bHgq4NGHd9Y7zB-IE|qYG`|vX{ zgUSfOvJ@G{Xb#Lk9h-lM*tRqI_2a}rRsR8l6v*~wwJbs{14{6aXe>9--TwyMcGEg( zC*ACJTh#v+POGP>A}H|`qLW7F1N-d%7DmZ$U|=QkauUG?T4B<~ed}rvj#hHZ!i-l+ zvDXGBS_E9Ntt@fL`9;l#7ksU*+;_`d7y7rBJ7Rz#SHJO2-){Wru3!{$Za99#(?&rV zI$QTsNU+xA8jR?>;RM|YL}C)sldZCd{C{W5aDxXEd|JcmT*{g1n-% z93roA0+7)hr;H?S4ESJi(m<9Cz z?Hh&uRyX~SNPHO-D)!L8AogL?(z`!r49{RAr5%W0JwNbkU36d>6#QlR0KR4wGi0C6 zH;EA0Uu+nW16K1tiC^wp=4uAKx0&Q-5|6o!0vKbNo)Y0yphGw8{BHB6weqv@gZ>Nd zTQ&lEn@4|q0nLwYT1Vg|v_K#i2Q%D286cs^R1}*w&qOcgvNsWr#_myBDLKZl zu8O?y$9kI;6j+pr0SSvd{N5y z-sRzuQ)S5&^>Y;KwhvB}$|z34p~KP{DFq3p9;gHa6pGsK^%JZ+OFA}~Vj>y3c;M=Z z=MQK~llGe*KX1I?Jc};-5-ezKxMUeVVFt??)0JS1OJ;g;O01S?!zq2-jh8n?fMRE8K-kB zsih0mN_TNfk{$4*I+O;hhGcEedR{sF+ZikDPMX37O^9=QBp2oK*QhH}ZD)yuI;D{y zpH9HLjEt^1DuA(E*#_L5T7$k1el?mOO8vp)k^Jz{%P%O zakmf=h;wtpAKreF?c`(4wh;pmRuJRy+-L8y4jW;Pj;j}$L=c>r8JG26C?JpJl6V9T zaq0P>^+nqBm33Yn=W+}q5wYX=aTg*}?J)W(DfZ2~+h`Dkn{F9^dad=MGQ_7Kg9s1% zRY%75pMr*2O-6uA zA^oPo+GHcbYrujb3+_m0l4LrKkeA#4p78TH8&o%cymZdx-C|6aLtDs2XqtU(A!Ess S<{7-Td5KYFZ9Q!TUqtr~#H@w@ diff --git a/.configure-files/Secrets-Alpha.swift.enc b/.configure-files/Secrets-Alpha.swift.enc deleted file mode 100644 index 6d064130c09954e605590ec6a005fb097b909275..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 zcmV-`1b_SQ#81BYE8wZir~1r;eZ9xI!DK;Y=}%{P&2fa|1j~$?<89t;V~^{tm=Byy zU)jvpe3*JI(*uZlh!$=|@Suhs@LH^zBq*&U21muS6EW|=P@c9j;g-YPr_3bjSpEvo ziz=W}u65u?k~go*-Z-Bk^qyIxl7}q>XjNdS1T;Ey?Fv{}*@;-#i0qMzy{HF*VlFB} zmdutX^#Qv#AJV}=LV@8teJkcSu&zMqtn6zN>nJCT+0|bko(Vn05>Sk|C%;mydBa?l zF`Tvm*lF?WmJ90pnN=PqP3}CsJR_h6-nlL36M(dHLo5bKaQ}w;gBJb5h_s!j!8bQ4 ziD1PDy-W<7w>S;adY+vujhGX)`nmiVE-P5151>CJ+#Rzat6p%O)lgyXe4z z7avFtOIg&{GL36D>SRP?@#H@pfB*PUCbt!7_WRe?c-dwcx@f9X+P4&<)}+(=I9PVq z=sz3loB|o&E)7!{@%!|+?qL%;w`D&f_rbp&q*r9c5$PHh_g*Xu4@}a%D!bTo^SJ72 z4G0qlgpNDRl6WiU*%YwZTLBiy)mtX{5W=(DTXOvpgBa!tUp@yIw;BH$X|$EH9kE%%PrCaT zylD(+{145%jXrw5Pe0nilodLe743)8=U8 z1X-;sER?{RWuyS|vr!iVzTtzWG^U?yARz=r3BE3$OF@eN!joy2ZuOQfoX|}MJpxInI+Co+ z3gkS*;;-x-?>mBRS5|$OsQV!KFaZ&4U$68!aXA+O{~=x< zby*T#kN$`R_5v$-mbe+5X1qynYZRnVlKN1v@)(JZddq9eVPvXI4hN^BPxW$JRa5$> zL)-a3pyE_Xem89i3wM$^uT}F3V7%$rD7mobL2PX-Z`KV~8*xE2>pTsVn<6$d`!L!i z9KfN>UxFvtl9osb3Vf({u@XL*^90)=4jVrCxI_=A9g|H4FTLt-jyC&XjNdS1T;GMLEgioNS;P*8?t+@62a>b3vRlS zps+2@Jnpi}fyO&Y_Ks(9v-c_GAVlk`>8AB+CK>hj!rMXb(H#1HFNAx<4uz1Aw9NpQ z+u5<8PVk#7d_rcQM|*{6d2m1+Vm;W%GV<;nlThV1q68r$M_`a<>@Ja^bEv7 zFQu2kA4tV63inv`qOI;^iU#!b-=2n{v&ex^#;g9q@YBgXa1S6rA>TN}^t~+=A+$zZ zr;K;HMRf}0048k%v$Ce}081nSUkN-wq5L*I5AW>4x7!ZPIFrFkBZ5|F&8uDjLr$i%Ew(6{od ziLnF2`(2??!wTIVAh9$mPn3wV4Bt9_$pa!73az8rX76RoLZ?AybXx;8%W?JI7V~=q z$1o|5_P?ax$Ye59d^IZ0u)EH$_Q*Hs`%TBO)2}9hH4r)-q3iY*8@~fb_070Ai(h-L0-HkwP+f?I1St3r;&@89n!t>9GTL$ zzdQxl4@K5sZx$5)TB2bnP{{uD)Tx9@i<25UNFD+uN#Txmz5_>!pKSyV#%C2nQnGsN z8L~;u5{IL9%L84pL21odYi;4xm;Q;y-?L%On3j%NDXgF6%<3PmX&q&rDh(|bN_@_I z{}Fh8IpsTo&=nq6W^9LIFFP}OYQcz1PplQ|clF6Hr4rk6d6#1m=$KxNgM}KCrda$m z3EZ?%S$n2VuqRDxofUDMa}6oh-IFd-Ejqv2=dg@K(%h&{K^Rs=%|XX#E8n5RgRU0I}gonc+eX4ta-w)r{q48)_&6q^!>g zgtiNzwQY^?^09+BAm=pW1231tIFnl-x!`ieX{YQG2F;9_B{Vym{0>NFK=n|BoJrpX zNO=C3<@>pmo8Oz{&%m^kmpfs<=nRcKZ8HJCEis{KP+eb;x&Ci7fFDf3EzYxX-ll!WH?7ulr_{va`4njwn9>;kz& SX+`H?+k<@GA4;ErNN^_y@ka;% From 8aa1cf23e591ad349a5a3ff5faf1b9ae9388f587 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Sun, 19 Jul 2026 12:17:03 +1000 Subject: [PATCH 12/12] Drop the app prefix from the secrets file name Every target reads this file now, so naming it after one of them misleads. It also matches the source name in the secrets repo, `iOS/WPiOS/Secrets.swift`. --- Generated with the help of Claude Code, https://claude.ai/code Co-Authored-By: Claude Code Opus 4.8 --- .configure | 2 +- Scripts/BuildPhases/GenerateCredentials.sh | 8 ++++---- Scripts/BuildPhases/GenerateCredentials.xcfilelist | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.configure b/.configure index 72b8b3be4667..b7892ab8149c 100644 --- a/.configure +++ b/.configure @@ -5,7 +5,7 @@ "files_to_copy": [ { "file": "iOS/WPiOS/Secrets.swift", - "destination": "~/.configure/wordpress-ios/secrets/WordPress-Secrets.swift", + "destination": "~/.configure/wordpress-ios/secrets/Secrets.swift", "encrypt": true } ], diff --git a/Scripts/BuildPhases/GenerateCredentials.sh b/Scripts/BuildPhases/GenerateCredentials.sh index 8a85c6562920..8afb065ffdd8 100755 --- a/Scripts/BuildPhases/GenerateCredentials.sh +++ b/Scripts/BuildPhases/GenerateCredentials.sh @@ -49,8 +49,8 @@ function ensure_is_in_input_files_list() { fi } -WORDPRESS_SECRETS_FILE="${SECRETS_ROOT}/WordPress-Secrets.swift" -ensure_is_in_input_files_list $WORDPRESS_SECRETS_FILE +SECRETS_FILE="${SECRETS_ROOT}/Secrets.swift" +ensure_is_in_input_files_list $SECRETS_FILE LOCAL_SECRETS_FILE="${SRCROOT}/Credentials/Secrets.swift" EXAMPLE_SECRETS_FILE="${SRCROOT}/Credentials/Secrets-example.swift" @@ -61,9 +61,9 @@ SECRETS_DESTINATION_FILE="${SCRIPT_OUTPUT_FILE_0}" mkdir -p "$(dirname "$SECRETS_DESTINATION_FILE")" # WordPress, Jetpack, and Reader use all the same secrets at this time. -if [ -f "$WORDPRESS_SECRETS_FILE" ]; then +if [ -f "$SECRETS_FILE" ]; then echo "Applying Production Secrets" - cp -v "$WORDPRESS_SECRETS_FILE" "${SECRETS_DESTINATION_FILE}" + cp -v "$SECRETS_FILE" "${SECRETS_DESTINATION_FILE}" exit 0 fi diff --git a/Scripts/BuildPhases/GenerateCredentials.xcfilelist b/Scripts/BuildPhases/GenerateCredentials.xcfilelist index d76f05ea476b..2d99cf0ff613 100644 --- a/Scripts/BuildPhases/GenerateCredentials.xcfilelist +++ b/Scripts/BuildPhases/GenerateCredentials.xcfilelist @@ -1,6 +1,6 @@ # Lists of input files for the script that populates the app's secrets with the # correct values for the current scheme and build configuration. -${HOME}/.configure/wordpress-ios/secrets/WordPress-Secrets.swift +${HOME}/.configure/wordpress-ios/secrets/Secrets.swift # Local Secrets file that external contributors can use to specify their own # ClientID and Secrets. This file is created by the Rakefile when external