Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions docs/platforms/apple/guides/ios/size-analysis/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ description: Upload iOS builds to Sentry for size analysis.

<Include name="size-analysis/app-thinning" />

### Binary Code Signature
### WatchOS Architectures

<Include name="size-analysis/binary-code-signature" />
<Include name="size-analysis/watch-architecture-thinning" />

### Code Signature

<Include name="size-analysis/code-signature" />

### App Store Connect File Sizes

Expand Down
19 changes: 0 additions & 19 deletions includes/size-analysis/binary-code-signature.mdx

This file was deleted.

19 changes: 19 additions & 0 deletions includes/size-analysis/code-signature.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
App bundles contain code signature data within `_CodeSignature/` directories. In these you'll find a `CodeResources` plist file with hashes of every file within the bundle. Similarly, Mach-O binaries contain additional hashes of every page block within its `LC_CODE_SIGNATURE` load command. This means the size of code signature data will scale linearly with the amount of files in your bundle and size of your binaries.

By default Sentry calculates the size of this data as-is. You may notice differences when comparing against your app downloaded from the App Store. For example, Xcode 26 archives only codesign with `SHA256` hashes, but the App Store can use both `SHA1` and `SHA256` hashes. In other words, App Store downloads of your app may be slightly larger than what's produced by Xcode. This App Store behavior is subject to change at any time.

If you'd like to compare the impact of this on your app, you can re-sign your app before uploading to Sentry:

```bash
# Inspect the current code signature
codesign -dvvv '/path/to/your/app.app'

# Re-sign with a new code signature
codesign --force \
--sign 'Apple Distribution: Your Team (team_id)' \
--digest-algorithm sha1 \
--digest-algorithm sha256 \
'/path/to/your/app.app'
```

This will force both `SHA1` and `SHA256` hashes to be used.
1 change: 1 addition & 0 deletions includes/size-analysis/watch-architecture-thinning.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
WatchOS apps produced by Xcode often contain both `arm64_32` and `arm64` architectures in a single fat binary. By default Sentry calculates the size of this data as-is, however, your end users will only download whatever architecture is necessary for their device. It's recommended to apply [App Thinning](/platforms/apple/guides/ios/size-analysis#app-thinning) before uploading for more representative results.
Loading