diff --git a/src/components/FeedInterstitials.tsx b/src/components/FeedInterstitials.tsx
index 5a65215b1..dd02d1a6e 100644
--- a/src/components/FeedInterstitials.tsx
+++ b/src/components/FeedInterstitials.tsx
@@ -390,7 +390,12 @@ export function ProfileGrid({
{!isProfileHeaderContext && (
+ to="/search"
+ onPress={() => {
+ logger.metric('suggestedUser:seeMore', {
+ logContext: isFeedContext ? 'Explore' : 'Profile',
+ })
+ }}>
See more
)}
@@ -429,6 +434,11 @@ function SeeMoreSuggestedProfilesCard() {
to="/search"
color="primary"
label={_(msg`Browse more accounts on the Explore page`)}
+ onPress={() => {
+ logger.metric('suggestedUser:seeMore', {
+ logContext: 'Explore',
+ })
+ }}
style={[
a.flex_col,
a.align_center,
diff --git a/src/logger/metrics.ts b/src/logger/metrics.ts
index 3477504b7..a9ae7fe08 100644
--- a/src/logger/metrics.ts
+++ b/src/logger/metrics.ts
@@ -297,6 +297,14 @@ export type MetricEvents = {
recId?: number
position: number
}
+ 'suggestedUser:seeMore': {
+ logContext:
+ | 'Explore'
+ | 'InterstitialDiscover'
+ | 'InterstitialProfile'
+ | 'Profile'
+ | 'Onboarding'
+ }
'profile:unfollow': {
logContext:
| 'RecommendedFollowsItem'
--
2.51.2
From d7e8429753b2c30b6a81872025605f05a9802b7d Mon Sep 17 00:00:00 2001
From: Eric Bailey
Date: Wed, 22 Oct 2025 09:17:52 -0500
Subject: [PATCH 2/2] Get iOS debug files into Sentry (#9242)
* Add buildArtifactPaths to iOS builds
* Update privacyManifests
* Revert changes to build configs
* Add --include-sources flag
* Add nativeCrash tester
* Sam's crash testbed
(cherry picked from commit b0a0cb7799cd900777570cae7dc10461cf811e0f)
* Output artifacts, tarball, extract and upload dSYM to Sentry
* Revert "Sam's crash testbed"
This reverts commit cc2c9828a06c4d159988acb556dddd10e6cbe57d.
* Remove sources for other targets, include sources for main bundle
* Apply suggestion from @mozzius
* Apply suggestion from @mozzius
---------
Co-authored-by: Samuel Newman
---
.github/workflows/build-submit-ios.yml | 23 +++++++++++++++++++--
app.config.js | 28 ++++++++++++++++++++++++++
eas.json | 12 +++++++----
src/view/screens/Storybook/index.tsx | 8 ++++++++
4 files changed, 65 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/build-submit-ios.yml b/.github/workflows/build-submit-ios.yml
index b816a5dc7..6e5692a9d 100644
--- a/.github/workflows/build-submit-ios.yml
+++ b/.github/workflows/build-submit-ios.yml
@@ -98,10 +98,29 @@ jobs:
yarn use-build-number-with-bump
eas build -p ios
--profile ${{ inputs.profile || 'testflight' }}
- --local --output build.ipa --non-interactive
+ --local --output build.tar.gz --non-interactive
+
+ - name: 📂 Extract build artifact
+ run: |
+ if [ -f "build.tar.gz" ]; then
+ echo "Extracting build.tar.gz..."
+ mkdir ios-build
+ tar -xzf build.tar.gz -C ios-build
+ echo "Extraction completed successfully"
+ else
+ echo "Archive file not found!"
+ exit 1
+ fi
- name: 🚀 Deploy
- run: eas submit -p ios --non-interactive --path build.ipa
+ run: eas submit -p ios --non-interactive --path ios-build/ios/build/Bluesky.ipa
+
+ - name: 🪲 Upload dSYM to Sentry
+ run: >
+ SENTRY_ORG=blueskyweb
+ SENTRY_PROJECT=app
+ SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}
+ yarn sentry-cli debug-files upload ios-build/ios/build/Bluesky.app.dSYM.zip --include-sources
- name: 📚 Get version from package.json
id: get-build-info
diff --git a/app.config.js b/app.config.js
index 46f2c8be7..5cba79ad0 100644
--- a/app.config.js
+++ b/app.config.js
@@ -112,6 +112,34 @@ module.exports = function (_config) {
'com.apple.security.application-groups': 'group.app.bsky',
},
privacyManifests: {
+ NSPrivacyCollectedDataTypes: [
+ {
+ NSPrivacyCollectedDataType: 'NSPrivacyCollectedDataTypeCrashData',
+ NSPrivacyCollectedDataTypeLinked: false,
+ NSPrivacyCollectedDataTypeTracking: false,
+ NSPrivacyCollectedDataTypePurposes: [
+ 'NSPrivacyCollectedDataTypePurposeAppFunctionality',
+ ],
+ },
+ {
+ NSPrivacyCollectedDataType:
+ 'NSPrivacyCollectedDataTypePerformanceData',
+ NSPrivacyCollectedDataTypeLinked: false,
+ NSPrivacyCollectedDataTypeTracking: false,
+ NSPrivacyCollectedDataTypePurposes: [
+ 'NSPrivacyCollectedDataTypePurposeAppFunctionality',
+ ],
+ },
+ {
+ NSPrivacyCollectedDataType:
+ 'NSPrivacyCollectedDataTypeOtherDiagnosticData',
+ NSPrivacyCollectedDataTypeLinked: false,
+ NSPrivacyCollectedDataTypeTracking: false,
+ NSPrivacyCollectedDataTypePurposes: [
+ 'NSPrivacyCollectedDataTypePurposeAppFunctionality',
+ ],
+ },
+ ],
NSPrivacyAccessedAPITypes: [
{
NSPrivacyAccessedAPIType:
diff --git a/eas.json b/eas.json
index c8b1e47f1..41084449a 100644
--- a/eas.json
+++ b/eas.json
@@ -36,7 +36,8 @@
"extends": "base",
"ios": {
"resourceClass": "large",
- "autoIncrement": true
+ "autoIncrement": true,
+ "buildArtifactPaths": ["ios/build/*"]
},
"android": {
"autoIncrement": true
@@ -50,7 +51,8 @@
"extends": "base",
"distribution": "internal",
"ios": {
- "autoIncrement": false
+ "autoIncrement": false,
+ "buildArtifactPaths": ["ios/build/*"]
},
"android": {
"autoIncrement": false
@@ -63,7 +65,8 @@
"testflight": {
"extends": "base",
"ios": {
- "autoIncrement": true
+ "autoIncrement": true,
+ "buildArtifactPaths": ["ios/build/*"]
},
"android": {
"autoIncrement": true
@@ -77,7 +80,8 @@
"extends": "base",
"distribution": "internal",
"ios": {
- "autoIncrement": true
+ "autoIncrement": true,
+ "buildArtifactPaths": ["ios/build/*"]
},
"android": {
"autoIncrement": true
diff --git a/src/view/screens/Storybook/index.tsx b/src/view/screens/Storybook/index.tsx
index 870654761..f7eee5fee 100644
--- a/src/view/screens/Storybook/index.tsx
+++ b/src/view/screens/Storybook/index.tsx
@@ -3,6 +3,7 @@ import {View} from 'react-native'
import {useNavigation} from '@react-navigation/native'
import {type NavigationProp} from '#/lib/routes/types'
+import {Sentry} from '#/logger/sentry/lib'
import {useSetThemePrefs} from '#/state/shell'
import {ListContained} from '#/view/screens/Storybook/ListContained'
import {atoms as a, ThemeProvider} from '#/alf'
@@ -95,6 +96,13 @@ function StorybookInner() {
testID="sharedPrefsTestOpenBtn">
Open Shared Prefs Tester
+