Commit 429cf8f
fix(iOS): Fix dSYM upload for main app in Expo EAS builds by adding inputPaths to build phase (#5617)
* test(expo): Add tests for existing Upload Debug Symbols build phase behavior
Add test suite to validate the current implementation of the Upload Debug
Symbols to Sentry build phase:
- Verifies build phase is created with correct shell script
- Confirms inputPaths are not currently included
- Ensures existing build phase is not recreated
These tests establish a baseline before implementing the fix for issue #5288.
* fix(expo): Add inputPaths to dSYM upload build phase to fix race condition
Add inputPaths to the 'Upload Debug Symbols to Sentry' build phase to
establish proper build dependencies. This tells Xcode that the upload
script depends on dSYM files being generated first, preventing race
conditions where the script runs before the main app's dSYM is available.
The inputPaths include:
- DWARF file path: Contains the actual debug symbols
- dSYM folder path: The complete dSYM bundle
This ensures proper build ordering in EAS builds and other CI environments
where timing can cause the main app's dSYM to be unavailable during the
build phase, while framework dSYMs are already present.
Fixes #5288
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* test(expo): Add tests validating inputPaths in dSYM upload build phase
Add tests to verify that the Upload Debug Symbols build phase now correctly
includes inputPaths for establishing build dependencies:
- Verifies inputPaths array is present with correct length
- Validates DWARF file path is included
- Validates dSYM folder path is included
These tests ensure the fix for #5288 works as expected.
* chore: Add changelog entry for #5617
* Fix changelog
* Fixes lint issue
* fix(expo): Use escaped quotes in inputPaths to prevent pbxproj corruption
The previous fix (8064fc2) added inputPaths without escaped quotes, which
caused CocoaPods to fail with a parse error.
Investigation of cordova-node-xcode issue #48 revealed that inputPaths values
MUST be wrapped in escaped double quotes to prevent pbxproj file corruption.
Without quotes: inputPaths: ['$(PATH)'] ❌ Corrupts file
With quotes: inputPaths: ['" $(PATH)"'] ✅ Works correctly
This commit supersedes the previous implementation and provides the correct
solution for establishing build dependencies while avoiding serialization issues.
Updated tests to validate inputPaths use proper escaping.
Ref: apache/cordova-node-xcode#48
* Make test description more accurate
* Share expectedShellScript constant
* Extract callArgs into a function
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>1 parent 6c36ba5 commit 429cf8f
File tree
3 files changed
+107
-4
lines changed- packages/core
- plugin/src
- test/expo-plugin
3 files changed
+107
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
11 | 16 | | |
12 | 17 | | |
13 | 18 | | |
| |||
53 | 58 | | |
54 | 59 | | |
55 | 60 | | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
| |||
Lines changed: 98 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
0 commit comments