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 cc2c9828a0.
* Remove sources for other targets, include sources for main bundle
* Apply suggestion from @mozzius
* Apply suggestion from @mozzius
---------
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
This commit is contained in:
@@ -98,10 +98,29 @@ jobs:
|
|||||||
yarn use-build-number-with-bump
|
yarn use-build-number-with-bump
|
||||||
eas build -p ios
|
eas build -p ios
|
||||||
--profile ${{ inputs.profile || 'testflight' }}
|
--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
|
- 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
|
- name: 📚 Get version from package.json
|
||||||
id: get-build-info
|
id: get-build-info
|
||||||
|
|||||||
@@ -112,6 +112,34 @@ module.exports = function (_config) {
|
|||||||
'com.apple.security.application-groups': 'group.app.bsky',
|
'com.apple.security.application-groups': 'group.app.bsky',
|
||||||
},
|
},
|
||||||
privacyManifests: {
|
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: [
|
NSPrivacyAccessedAPITypes: [
|
||||||
{
|
{
|
||||||
NSPrivacyAccessedAPIType:
|
NSPrivacyAccessedAPIType:
|
||||||
|
|||||||
@@ -36,7 +36,8 @@
|
|||||||
"extends": "base",
|
"extends": "base",
|
||||||
"ios": {
|
"ios": {
|
||||||
"resourceClass": "large",
|
"resourceClass": "large",
|
||||||
"autoIncrement": true
|
"autoIncrement": true,
|
||||||
|
"buildArtifactPaths": ["ios/build/*"]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"autoIncrement": true
|
"autoIncrement": true
|
||||||
@@ -50,7 +51,8 @@
|
|||||||
"extends": "base",
|
"extends": "base",
|
||||||
"distribution": "internal",
|
"distribution": "internal",
|
||||||
"ios": {
|
"ios": {
|
||||||
"autoIncrement": false
|
"autoIncrement": false,
|
||||||
|
"buildArtifactPaths": ["ios/build/*"]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"autoIncrement": false
|
"autoIncrement": false
|
||||||
@@ -63,7 +65,8 @@
|
|||||||
"testflight": {
|
"testflight": {
|
||||||
"extends": "base",
|
"extends": "base",
|
||||||
"ios": {
|
"ios": {
|
||||||
"autoIncrement": true
|
"autoIncrement": true,
|
||||||
|
"buildArtifactPaths": ["ios/build/*"]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"autoIncrement": true
|
"autoIncrement": true
|
||||||
@@ -77,7 +80,8 @@
|
|||||||
"extends": "base",
|
"extends": "base",
|
||||||
"distribution": "internal",
|
"distribution": "internal",
|
||||||
"ios": {
|
"ios": {
|
||||||
"autoIncrement": true
|
"autoIncrement": true,
|
||||||
|
"buildArtifactPaths": ["ios/build/*"]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"autoIncrement": true
|
"autoIncrement": true
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {View} from 'react-native'
|
|||||||
import {useNavigation} from '@react-navigation/native'
|
import {useNavigation} from '@react-navigation/native'
|
||||||
|
|
||||||
import {type NavigationProp} from '#/lib/routes/types'
|
import {type NavigationProp} from '#/lib/routes/types'
|
||||||
|
import {Sentry} from '#/logger/sentry/lib'
|
||||||
import {useSetThemePrefs} from '#/state/shell'
|
import {useSetThemePrefs} from '#/state/shell'
|
||||||
import {ListContained} from '#/view/screens/Storybook/ListContained'
|
import {ListContained} from '#/view/screens/Storybook/ListContained'
|
||||||
import {atoms as a, ThemeProvider} from '#/alf'
|
import {atoms as a, ThemeProvider} from '#/alf'
|
||||||
@@ -95,6 +96,13 @@ function StorybookInner() {
|
|||||||
testID="sharedPrefsTestOpenBtn">
|
testID="sharedPrefsTestOpenBtn">
|
||||||
<ButtonText>Open Shared Prefs Tester</ButtonText>
|
<ButtonText>Open Shared Prefs Tester</ButtonText>
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button
|
||||||
|
color="negative"
|
||||||
|
size="large"
|
||||||
|
onPress={() => Sentry.nativeCrash()}
|
||||||
|
label="crash">
|
||||||
|
<ButtonText>Sentry Crash</ButtonText>
|
||||||
|
</Button>
|
||||||
|
|
||||||
<ThemeProvider theme="light">
|
<ThemeProvider theme="light">
|
||||||
<Theming />
|
<Theming />
|
||||||
|
|||||||
Reference in New Issue
Block a user