# refreshConfiguration

Manually refreshes the Superwall configuration. Intended for development and wrapper SDKs.

> **Warning**

This method is intended for development workflows (for example, wrapper SDK hot reloading) and should not be called during normal app runtime. It triggers extra network requests and re-caches paywalls.



Purpose [#purpose]

Fetches the latest configuration from the Superwall dashboard and refreshes cached paywalls. Useful when iterating on paywalls during development without restarting the app.

Signatures [#signatures]

```swift
public func refreshConfiguration() async
public func refreshConfiguration(completion: (() -> Void)? = nil)
```

Parameters [#parameters]

* `completion` (optional): Called after the refresh finishes when using the completion-based API.

Returns / State [#returns--state]

* Refreshes configuration and reloads any paywalls that have changed or been removed.
* Does not return a value.
* Development-only; avoid calling in production code paths.

Usage [#usage]

Refresh configuration after editing paywalls in development:

```swift
Task {
  await Superwall.shared.refreshConfiguration()
  // Updated paywalls will be used on the next presentation
}
```

Objective-C or completion-based refresh:

```swift
Superwall.shared.refreshConfiguration {
  // Handle post-refresh work here
}
```

Related [#related]

* [`configure()`](/docs/ios/sdk-reference/configure) - Initial configuration of the SDK
* [`PaywallOptions/shouldPreload`](/docs/ios/sdk-reference/PaywallOptions#properties) - Controls whether paywalls are preloaded
* [`preloadAllPaywalls()`](/docs/ios/sdk-reference/Superwall#usage) - Preload paywalls manually