---
title: The iOS Troubleshooting Guide for Capacitor
description: Troubleshoot common issues when building your iOS app with Capacitor, including errors related to modules, plugins, and blank screens.
date: 
  created: 2024-03-12
  updated: 2026-07-14
search:
  boost: 2
authors:
  - robingenz
categories:
  - Capacitor
  - Guides
faq: true
---

# The iOS Troubleshooting Guide for Capacitor

Capacitor is a great tool to build cross-platform apps with web technologies. 
However, sometimes you might run into issues when building your iOS app. 
This post will help you to troubleshoot common issues.

<!-- more -->

???+ info "Help us to improve this guide"

    If you are aware of any other common issues, please send us an email to [support@capawesome.io](mailto:support@capawesome.io) so that we can update the guide.

## Errors

### `could not find module 'Capacitor' for target 'x86_64-apple-ios-simulator'`

<!-- error: could not find module 'Capacitor' for target 'x86_64-apple-ios-simulator'; found: arm64-apple-ios-simulator -->

This error indicates that the `Capacitor` module is not available for the `x86_64` architecture which is used by the iOS simulator.

Add the following `post_install` hook to your `Podfile` (usually `ios/App/Podfile`):

```ruby
post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            # Build for all architectures
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
            # Exclude arm64 architecture for the iOS simulator
            config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
        end
    end
end
```

The `ONLY_ACTIVE_ARCH` build setting is set to `YES` by default, which means that the build system will only build for the active architecture.
By setting it to `NO`, the build system will build for both `arm64` and `x86_64` architectures, making the `Capacitor` module available for the iOS simulator.

The `EXCLUDED_ARCHS[sdk=iphonesimulator*]` build setting is used to exclude the `arm64` architecture for the iOS simulator.

### `value of type 'WKWebView' has no member 'isInspectable'`

<!-- Error: value of type 'WKWebView' has no member 'isInspectable' -->

This error occurs if you are using an outdated version of Xcode — `isInspectable` requires Xcode 15 or later. Apple's toolchain requirement moves forward regularly; see [Apple's New Xcode 26 Requirement for Capacitor Apps](./xcode-26-requirement-for-capacitor-apps.md) for the current minimum required to submit to the App Store.

If this error occurs in GitHub Actions, your runner image is pinned to an old Xcode version. Please note that `macos-latest` does not always map to the newest available Xcode (see [here](https://twitter.com/jcesarmobile/status/1780142061129204204){:target="_blank"}) — check [GitHub's runner image matrix](https://github.com/actions/runner-images){:target="_blank"} for the macOS image that ships the Xcode version your app needs, and pin to it explicitly:

```diff
- runs-on: macos-latest
+ runs-on: macos-15
```

### `CocoaPods could not find compatible versions for pod "..."`

<!--
✖ update ios - failed!
[error] Analyzing dependencies
        [!] CocoaPods could not find compatible versions for pod "FirebaseAuth":
        In snapshot (Podfile.lock):
        FirebaseAuth (= 10.22.0, ~> 10.8)
        
        In Podfile:
        CapacitorFirebaseAuthentication/Google (from `../../node_modules/@capacitor-firebase/authentication`) was
        resolved to 5.4.1, which depends on
        FirebaseAuth (~> 10.8)
        
        CapawesomeTeamCapacitorStopBle (from `../../../../../GitHub/capawesome-team/capacitor-stop-ble`) was resolved to
        0.0.1, which depends on
        FirebaseAuth (~> 10.24)
        
        
        You have either:
        * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
        * changed the constraints of dependency `FirebaseAuth` inside your development pod
        `CapawesomeTeamCapacitorStopBle`.
        You should run `pod update FirebaseAuth` to apply changes you've made.
-->

This error occurs when CocoaPods cannot find compatible versions for a pod. This can either be due to outdated sources or other dependencies that require different versions of the same pod.

Follow the steps below to find out if outdated sources are causing the problem:

1. Delete the `Podfile.lock` (usually `ios/App/Podfile.lock`) file and the `Pods` directory (usually `ios/App/Pods`).
2. Run `pod install --repo-update` where the `Podfile` is located (usually `ios/App`).

If the problem persists, you need to check the dependencies in your `Podfile` and make sure that all dependencies use the same version of the pod.
For example, this was one of the reasons why we created the [Capacitor Firebase](../../sdks/capacitor/firebase/index.md) Plugin Collection to ensure that all Firebase plugins use the same version of the Firebase SDK.

### Plugin is not implemented

If Capacitor cannot find a plugin or cannot inject its code into the WebView, the following error is thrown, for example:

```
"Badge" plugin is not implemented
```

Follow the steps below to solve this issue:

1. Make sure that the plugin is installed and appears in the `package.json`.
2. Sync the native project by running `npx cap sync ios`.
3. Make sure that no other plugin is installed that might conflict with the plugin. For example, do not install two different Push Notification plugins.
4. Make sure that you do not have `WKAppBoundDomains` key in your `Info.plist` file. This key is used to restrict the domains that your app can access and can cause issues with plugins that need to inject code into the WebView.
5. If you are using CocoaPods instead of Swift Package Manager, make sure that the plugin is listed in `ios/App/Podfile`.
6. If you are using CocoaPods instead of Swift Package Manager, make sure that CocoaPods was installed correctly and no warning is shown when running `npx cap sync ios`.
7. Make sure to use the latest Node.js and npm version. Run `node -v` and `npm -v` to check your versions.
8. Make sure to use the latest Capacitor CLI version. Run `npx cap doctor` to check your versions.
9. Make sure you only have one version of Xcode installed. You can check this by running `xcode-select -p` in the terminal.

If the problem persists, check the following GitHub issues and discussions for more information:

- https://github.com/capacitor-community/sqlite/issues/662#issuecomment-3364677943
- https://github.com/capawesome-team/capacitor-plugins/discussions/617#discussioncomment-14527491

### Blank screen

A blank screen can have many causes. Here are some common reasons and solutions.

#### With live reload

If you see a blank screen when using live reload, check the following:

1. Make sure that your development server uses all network interfaces and not only `localhost`. For example, if you are using the Ionic CLI, you can use the `--external` option to bind to all network interfaces:

    ```bash
    ionic cap run ios -l --external
    ```

2. Make sure that your development server is accessible from the device. You can check this by opening the URL in the device's browser. If the URL is not accessible, the app will not be able to load the content. This may be due to the following reasons:

    - The device is not connected to the same network as the development server.
    - The development server is not accessible from the device due to firewall settings.

3. Make sure that the content is not blocked by a Content Security Policy (CSP) or other security mechanisms. You can check this by opening the browser's developer tools and looking for errors in the console.

#### Without live reload

If you see a blank screen without live reload, check the following:

1. If you are using **Angular**, make sure that your `.browserslistrc` or `browserslist` file includes the browser versions you need to support. The Angular CLI uses this file to determine which code it can optimize. Check out [this topic](https://forum.ionicframework.com/t/ionic-6-default-project-white-screen-on-android-30-or-below-when-using-prod/228087){:target="_blank"} for more information.

### Version 70 error

<!-- Error: Unable to find compatibility version string for object version `70`. -->

You may encounter the following error when building your iOS app:

```
Unable to find compatibility version string for object version `70`.
```

This is caused by Xcode when you add an extension file to your project. The problem is in your Xcode project `pbxproj` file. Open this file and change objectVersion from 70 to 60.

## FAQ

### How do I clean and rebuild my iOS project?

A clean rebuild clears many iOS build errors. Delete `ios/App/Pods` and `ios/App/Podfile.lock`, clear Xcode's DerivedData (**Xcode > Settings > Locations**), then run `npx cap sync ios` and, if you use CocoaPods, `pod install --repo-update` in `ios/App`. Reopen the project with `npx cap open ios` and build again.

### Should I use CocoaPods or Swift Package Manager?

Capacitor supports both, and Swift Package Manager (SPM) is the modern default for new apps. If you keep hitting CocoaPods dependency conflicts like the one above, migrating can simplify things — see [how to migrate a Capacitor app to SPM](./how-to-migrate-a-capacitor-app-to-spm.md).

### Why don't my web code changes show up in the app?

Capacitor bundles your **built** web assets into the native app, so editing source files isn't enough. Rebuild the web app and copy it over with `npx cap sync ios` (or `npx cap copy ios`), then run the app again. During active development, use live reload so changes appear instantly.

### How do I inspect the WebView and see console logs?

On a Mac, open **Safari > Develop > [your device] > [your app]** to attach Safari Web Inspector to the WebView, where you can read console logs and inspect the DOM. The WebView is inspectable by default in development builds on iOS 16.4 and later.

### Which Xcode version do I need for Capacitor?

Use the latest stable Xcode. Capacitor 6 requires Xcode 15 or later, and newer Capacitor majors track the current Xcode release. In CI, pin a specific macOS image (for example `macos-14`) rather than `macos-latest`, which isn't always the newest.

### My app still won't build after fixing an error — what next?

Run `npx cap doctor` to check your Capacitor, Node, and plugin versions, confirm you have a single Xcode installed with `xcode-select -p`, and if the issue is plugin-specific, try [patching the plugin](./how-to-patch-a-capacitor-plugin.md). For Android-side issues, see [The Android Troubleshooting Guide for Capacitor](./troubleshooting-capacitor-android-issues.md).

## Related Posts

- [How to Fix Capacitor Plugin Build Errors with AGP 9](./how-to-fix-capacitor-plugin-build-errors-with-agp-9.md)
- [How to patch a Capacitor plugin](./how-to-patch-a-capacitor-plugin.md)
- [The Android Troubleshooting Guide for Capacitor](./troubleshooting-capacitor-android-issues.md)
