This page includes common troubleshooting scenarios and resolutions for the Kustomer Chat iOS SDK. For additional support, contact [[email protected]](🔗).
## Archived app validation fails with Swift Package Manager
The Apple Xcode 12.4 release notes includes a [known issue](🔗) for Swift Packages that causes validation of the archived app to fail when embedding extensions in an app with a Swift package with binary dependencies.
The Kustomer Chat iOS SDK uses Swift Binary Targets to support Swift Package Manager and to allow companies to close source their code.
We've included the relevant section of the Xcode 12.4 release notes below with the known issue and suggested workaround from Apple.
**Known issue and workaround**
If you use a Swift package with binary dependencies in an app with extensions, the build system incorrectly embeds the binary dependencies alongside the extension in the PlugIns directory, causing validation of the archived app to fail. (69834549) (FB8761306)
Workaround: Add a scheme post-build action which removes the embedded binaries from the PlugIns directory after the build: `
rm -rf "${TARGET_BUILD_DIR}/${TARGET_NAME}.app"/PlugIns/*.framework
`.
To learn more, visit the [Xcode 12.4 release notes from Apple](🔗).
## Unexpected UI appearance and/or colors
The Kustomer UI uses standard navigation objects, such as `UINavigationBar
`, `UIBarButtonItem
`, and so on. This means any global overrides can alter the UI appearance.
If you use `UIAppearance
` in your app to customize `UINavigationBar
`, `UIBarButtonItem
`, or [other classes in your app globally](🔗), these global overrides may cause your UI to display with an unexpected appearance or colors.
**Step 1: Check all `UIAppearance
` calls**
First, confirm that `UIAppearance
` is causing the UI appearance issues in your code. To test this, remove all `UIAppearance
` calls from your code. If this fixes your issue, then these global overrides are the root cause.
**Step 2: Turn off your global customizations**
After you've confirmed 'UIAppearance' calls as the root cause, go back to your original code and use `Kustomer.options.onViewWillAppear({...})
` and `Kustomer.onViewWillDisappear({...})
` to turn off your UI customizations for 1) when the Kustomer UI will open, and 2) when the Kustomer UI will close.