rebrand: Jarvis -> Jervis for App Store submission
"JARVIS" is Marvel's trademark for the Iron Man/Avengers AI — real
legal risk for a commercial App Store listing, and the name is already
contested there ("Jarvis: Powered by Marvel", "Jarvis - AI Chatbot").
Jervis reads identically but doesn't collide.
Scoped to user-facing surfaces only:
- CFBundleDisplayName, PRODUCT_BUNDLE_IDENTIFIER (com.kisani.jervis)
- BGTaskSchedulerPermittedIdentifiers + matching Swift constants
- NSLocalNetworkUsageDescription permission prompt copy
- JarvisWordmark rendered text ("j" + "ervis")
- Notification permission prompt copy
Internal Xcode target/executable name, Swift type names (JarvisWordmark,
JarvisApp), file/folder names, and repo name are unchanged — renaming
those is a separate, larger refactor with no user-facing benefit.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,13 +4,13 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>com.kisani.jarvis.briefing.refresh</string>
|
<string>com.kisani.jervis.briefing.refresh</string>
|
||||||
<string>com.kisani.jarvis.feed.refresh</string>
|
<string>com.kisani.jervis.feed.refresh</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Jarvis</string>
|
<string>Jervis</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
<key>NSLocalNetworkUsageDescription</key>
|
<key>NSLocalNetworkUsageDescription</key>
|
||||||
<string>Jarvis connects to your self-hosted news platform on the local network.</string>
|
<string>Jervis connects to your self-hosted news platform on the local network.</string>
|
||||||
<key>UIBackgroundModes</key>
|
<key>UIBackgroundModes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>fetch</string>
|
<string>fetch</string>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ enum BriefingPeriod { case morning, evening
|
|||||||
|
|
||||||
/// Background-refresh task identifier (also declared in Info.plist
|
/// Background-refresh task identifier (also declared in Info.plist
|
||||||
/// BGTaskSchedulerPermittedIdentifiers and registered in AppDelegate).
|
/// BGTaskSchedulerPermittedIdentifiers and registered in AppDelegate).
|
||||||
let jarvisBriefingRefreshID = "com.kisani.jarvis.briefing.refresh"
|
let jarvisBriefingRefreshID = "com.kisani.jervis.briefing.refresh"
|
||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
final class NotificationManager: NSObject, ObservableObject {
|
final class NotificationManager: NSObject, ObservableObject {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import BackgroundTasks
|
|||||||
import SwiftData
|
import SwiftData
|
||||||
import UserNotifications
|
import UserNotifications
|
||||||
|
|
||||||
let jarvisFeedRefreshID = "com.kisani.jarvis.feed.refresh"
|
let jarvisFeedRefreshID = "com.kisani.jervis.feed.refresh"
|
||||||
|
|
||||||
enum BackgroundRefreshManager {
|
enum BackgroundRefreshManager {
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ struct NotificationsView: View {
|
|||||||
|
|
||||||
private var permissionCard: some View {
|
private var permissionCard: some View {
|
||||||
VStack(alignment: .leading, spacing: 12) {
|
VStack(alignment: .leading, spacing: 12) {
|
||||||
Text("Jarvis needs permission to send briefings and breaking alerts.")
|
Text("Jervis needs permission to send briefings and breaking alerts.")
|
||||||
.font(.system(size: 14)).foregroundStyle(Color(hex: "BBBBBB"))
|
.font(.system(size: 14)).foregroundStyle(Color(hex: "BBBBBB"))
|
||||||
.fixedSize(horizontal: false, vertical: true)
|
.fixedSize(horizontal: false, vertical: true)
|
||||||
Button {
|
Button {
|
||||||
|
|||||||
@@ -363,7 +363,7 @@ struct JarvisWordmark: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
HStack(spacing: 0) {
|
HStack(spacing: 0) {
|
||||||
Text("j").font(font).foregroundStyle(Palette.orange)
|
Text("j").font(font).foregroundStyle(Palette.orange)
|
||||||
Text("arvis").font(font).foregroundStyle(Palette.primaryText)
|
Text("ervis").font(font).foregroundStyle(Palette.primaryText)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
project.yml
10
project.yml
@@ -15,12 +15,12 @@ targets:
|
|||||||
info:
|
info:
|
||||||
path: Jarvis/Info.plist
|
path: Jarvis/Info.plist
|
||||||
properties:
|
properties:
|
||||||
CFBundleDisplayName: Jarvis
|
CFBundleDisplayName: Jervis
|
||||||
UILaunchScreen:
|
UILaunchScreen:
|
||||||
UIColorName: ""
|
UIColorName: ""
|
||||||
UISupportedInterfaceOrientations:
|
UISupportedInterfaceOrientations:
|
||||||
- UIInterfaceOrientationPortrait
|
- UIInterfaceOrientationPortrait
|
||||||
NSLocalNetworkUsageDescription: "Jarvis connects to your self-hosted news platform on the local network."
|
NSLocalNetworkUsageDescription: "Jervis connects to your self-hosted news platform on the local network."
|
||||||
NSAppTransportSecurity:
|
NSAppTransportSecurity:
|
||||||
NSAllowsArbitraryLoads: true
|
NSAllowsArbitraryLoads: true
|
||||||
NSAllowsLocalNetworking: true
|
NSAllowsLocalNetworking: true
|
||||||
@@ -32,11 +32,11 @@ targets:
|
|||||||
- fetch
|
- fetch
|
||||||
- processing
|
- processing
|
||||||
BGTaskSchedulerPermittedIdentifiers:
|
BGTaskSchedulerPermittedIdentifiers:
|
||||||
- com.kisani.jarvis.briefing.refresh
|
- com.kisani.jervis.briefing.refresh
|
||||||
- com.kisani.jarvis.feed.refresh
|
- com.kisani.jervis.feed.refresh
|
||||||
settings:
|
settings:
|
||||||
base:
|
base:
|
||||||
PRODUCT_BUNDLE_IDENTIFIER: com.kisani.jarvis
|
PRODUCT_BUNDLE_IDENTIFIER: com.kisani.jervis
|
||||||
MARKETING_VERSION: "1.0"
|
MARKETING_VERSION: "1.0"
|
||||||
CURRENT_PROJECT_VERSION: "1"
|
CURRENT_PROJECT_VERSION: "1"
|
||||||
TARGETED_DEVICE_FAMILY: "1"
|
TARGETED_DEVICE_FAMILY: "1"
|
||||||
|
|||||||
Reference in New Issue
Block a user