Build Errors
SwiftUI Preview Issues
SwiftUI previews often fail when React Native is in the project due to build complexity.Clear SwiftUI preview cache
Clear SwiftUI preview cache
Prebuild without React Native
Prebuild without React Native
- Building widgets that don’t use React Native
- Working on SwiftUI previews
- Iterating on native UI quickly
Disable SwiftUI previews
Disable SwiftUI previews
Widget Not Showing on Home Screen
If your widget builds successfully but doesn’t appear on the home screen:Use iOS 18+
Use iOS 18+
- Long-press your app icon on the home screen
- Tap “Edit Home Screen”
- Select widget display options
- Choose your widget configuration
Check widget gallery
Check widget gallery
- Long-press empty space on the home screen
- Tap the ”+” button (top-left)
- Search for your app name
- Select your widget
Verify widget is installed
Verify widget is installed
.appex file).CocoaPods Errors
CocoaPods version too old
CocoaPods version too old
pods.rb not being evaluated
pods.rb not being evaluated
- The file is named exactly
pods.rb(case-sensitive) - It’s in the repository root (not in
/iosor/targets) - The target name matches your directory name exactly
- You’ve run
npx expo prebuild --cleanafter creating it
pod install.Pod install fails
Pod install fails
Compilation Errors
Swift compiler errors
Swift compiler errors
- Product > Scheme > Edit Scheme
- Build > Build Options
- Enable “Debug Information Format” > “DWARF”
- Disable “Enable Bitcode”
Cannot find type in scope
Cannot find type in scope
_shared files:- Verify the file is in
_shareddirectory - Run
npx expo prebuild --clean - Check file target membership in Xcode:
- Select the file
- Open File Inspector (⌥⌘1)
- Ensure both targets are checked
Duplicate symbol errors
Duplicate symbol errors
- A file is in both a target directory AND
_shared - Multiple
_shareddirectories define the same type
_shared if it needs to be in multiple targets.Runtime Errors
App Clip Crashes
Crash on launch from TestFlight
Crash on launch from TestFlight
expo-updates crash in App Clip
expo-updates crash in App Clip
expo-updates:Bundle not found error
Bundle not found error
- Verify
exportJs: truein target config - Ensure you’re building in Release mode
- Check the bundle exists:
- Verify your
pods.rbincludes React Native dependencies
Widget Not Updating
Widget shows old data
Widget shows old data
Shared data not syncing
Shared data not syncing
Code Signing Issues
Provisioning profile errors
Provisioning profile errors
- Run
npx expo prebuild --clean - Open Xcode:
xed ios - Select each target
- Go to “Signing & Capabilities”
- Select your team for each target
- Let Xcode create provisioning profiles
App Clip signing issues
App Clip signing issues
- Ensure all targets use the same Apple Team ID
- Create provisioning profiles for each target in Apple Developer Portal
- App Clips need parent application identifier entitlement:
Mismatched bundle identifiers
Mismatched bundle identifiers
Development Workflow Issues
Changes not appearing after edit
Changes not appearing after edit
- Just rebuild in Xcode (⌘B)
- No prebuild needed
- Run
npx expo prebuild --clean - Examples: changing
type, addingframeworks, updatingentitlements
_shared:- Run
npx expo prebuild --clean - Content changes don’t need prebuild
- Just rebuild in Xcode
- Info.plist is not managed by prebuild
Metro connection failing in extension
Metro connection failing in extension
- Ensure Metro is running:
npx expo start - Check Info.plist has App Transport Security exception:
- Verify device and dev machine are on the same network
- Try connecting by IP address if localhost fails
Hot reload not working
Hot reload not working
- Save your changes
- Rebuild in Xcode (⌘B)
- Reinstall the app
EAS Build Issues
Build succeeds locally but fails on EAS
Build succeeds locally but fails on EAS
- Credentials not configured: Add provisioning profiles for all targets
- CocoaPods version mismatch: Pin Ruby version in
eas.json - Missing secrets: Environment variables not set in EAS
Target not included in IPA
Target not included in IPA
- In Xcode, select the main app target
- Go to “General” tab
- Check “Frameworks, Libraries, and Embedded Content”
- Your extension should be listed as “Embedded”
npx expo prebuild --clean.Advanced Debugging
Enable verbose prebuild logging
Enable verbose prebuild logging
Inspect Xcode project file
Inspect Xcode project file
.pbxproj file. To see raw changes:Test target in isolation
Test target in isolation
your-target with your extension’s target name.Getting Help
If you’re still stuck:- Check the example apps in the repository for working configurations
- Search GitHub issues: github.com/evanbacon/expo-apple-targets/issues
- Ask on Expo Forums: forums.expo.dev
- File a bug report with:
- Minimal reproduction
- Full error logs
- Xcode version
- Expo SDK version