Common challenge
Bundled .strings and .xcstrings remain the safe baseline, but app teams need a controlled path for approved text changes after release.
Platform localization
ReRune iOS SDK 1.0.0 delivers approved OTA values through native Bundle.main lookup paths while bundled .strings, .stringsdict, and .xcstrings remain the fallback.





Bundled .strings and .xcstrings remain the safe baseline, but app teams need a controlled path for approved text changes after release.
iOS teams that want ReRune 1.0.0 through Swift Package Manager, native localization behavior, dashboard review, and OTA update delivery.
ReRune keeps iOS OTA delivery tied to project context, dictionaries, language progress, and the same translation workspace used by other product surfaces.
Workflow
ReRune connects translation management to the delivery path developers already use: dashboard work, AI assistance, CLI/API sync, and OTA updates where a supported SDK is installed.
Connect the supported app runtime to a ReRune publish ID while keeping native or framework localization behavior in place.
Approve translation changes in the workspace, then publish runtime updates without turning every text fix into a full store release.
Let supported SDK hooks check for updates and refresh text when new approved localization payloads are available.
When runtime updates are unavailable, the app keeps reading bundled resources so localization failures do not break the product.
Coverage
Start where localization creates release friction, then keep web, mobile, and cross-platform products in one shared workspace as your surface area grows.
Developer delivery
Use the ReRune CLI locally or in CI/CD to manage project translations, then deliver approved runtime updates through the SDK built for your app.
Companion CLI
Use the ReRune CLI to sync, validate, and manage translations right from your terminal. Run syncs in CI/CD or locally whenever you need to push a new language.
Homebrew (macOS/Linux):
brew install BasalBit/tap/rerunereruneConnect the project
Create the project config and connect the repository to its ReRune workspace.
rerune --pullPull approved updates
Bring current dashboard translations into the app or its build workflow.
rerune --pushPush local changes
Send local translation updates back to ReRune for the team to manage and publish.
Ship OTA localization updates in native iOS apps while keeping UIKit and SwiftUI on Apple's native localization APIs.
UI stack
SwiftUI quick start
// Swift Package Manager
// https://swiftpackageindex.com/BasalBit/rerune-ios
// Version: 1.0.0
import ReRune
import SwiftUI
@main
struct ExampleApp: App {
init() {
reRuneSetup(otaPublishId: "replace-with-ota-publish-id")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
struct ContentView: View {
var body: some View {
VStack {
Text(NSLocalizedString("title", comment: ""))
Text(Bundle.main.localizedString(forKey: "subtitle", value: nil, table: nil))
}
.reRuneObserveRevision()
}
}Native lookup path
Resolve SwiftUI text with NSLocalizedString(...) first, then attach .reRuneObserveRevision() on the visible screen so OTA revisions trigger a redraw.
Current SwiftUI scope
SwiftUI Text("key"), LocalizedStringKey, and LocalizedStringResource are not part of the OTA interception path yet, so resolve the string first and then pass it into Text(...).
Questions
Yes. ReRune 1.0.0 applies OTA values through native Bundle.main lookups, supports plain and cardinal plural content, and keeps bundled .xcstrings as fallback.
No. ReRune is designed to work alongside native localization behavior, with bundled resources remaining the fallback when runtime updates are unavailable.
Supported SDK flows keep bundled resources as the fallback. Runtime updates add approved text delivery on top of the app's existing localization path instead of replacing the safe baseline.
Explore next
Go deeper into the developer, platform, and delivery workflows connected to this page.
Publish approved OTA localization updates through ReRune SDKs for Flutter, Android, iOS, React, and React Native with bundled fallbacks.
Read moreUse ReRune Android Compose or Views SDK 1.0.1 for OTA app strings with native resource fallback, translation management, and developer sync.
Read moreUse ReRune Flutter SDK 1.0.0 for OTA localization updates while keeping generated delegates, bundled resources, CLI sync, and AI assistance.
Read moreCreate projects, manage keys, use AI assistance with context, sync through CLI/API, and publish approved runtime updates when your app uses a supported ReRune SDK.