Initial commit
This commit is contained in:
26
skills/ios-swift-expert/references/debugging-strategies.md
Normal file
26
skills/ios-swift-expert/references/debugging-strategies.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Debugging Strategies
|
||||
|
||||
Comprehensive debugging techniques for iOS and macOS development.
|
||||
|
||||
## Xcode Build Issues
|
||||
|
||||
1. **Clean Build Folder**: Product → Clean Build Folder (Cmd+Shift+K)
|
||||
2. **Delete Derived Data**: `rm -rf ~/Library/Developer/Xcode/DerivedData`
|
||||
3. **Check Build Settings**: Verify code signing, Swift version, deployment target
|
||||
4. **Read Error Carefully**: Xcode errors often include fix-its
|
||||
5. **Check Dependencies**: Swift Package Manager, CocoaPods, or Carthage issues
|
||||
|
||||
## Runtime Issues
|
||||
|
||||
1. **Breakpoints**: Set symbolic breakpoints for exceptions
|
||||
2. **LLDB Commands**: `po`, `expr`, `frame variable` for inspection
|
||||
3. **View Debugging**: Use Xcode's visual debugger (Debug → View Debugging)
|
||||
4. **Memory Graph**: Detect retain cycles with Debug → Memory Graph
|
||||
5. **Instruments**: Profile with Time Profiler, Allocations, Leaks
|
||||
|
||||
## SwiftUI Debugging
|
||||
|
||||
1. **Preview Crashes**: Check `PreviewProvider` initialization
|
||||
2. **State Updates**: Verify state changes on main thread
|
||||
3. **View Redrawing**: Use `Self._printChanges()` to debug updates
|
||||
4. **Modifiers Order**: Order matters (frame before padding vs. padding before frame)
|
||||
Reference in New Issue
Block a user