import {Fragment} from 'react'; import ExternalLink from 'sentry/components/links/externalLink'; import {Layout, LayoutProps} from 'sentry/components/onboarding/gettingStartedDoc/layout'; import {ModuleProps} from 'sentry/components/onboarding/gettingStartedDoc/sdkDocumentation'; import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step'; import {t, tct} from 'sentry/locale'; // Configuration Start export const steps = ({ dsn, }: { dsn?: string; } = {}): LayoutProps['steps'] => [ { type: StepType.INSTALL, description: (

{tct( 'Install the SDK by downloading the [releasesLink:latest release]. Next, follow the instructions in the [nativeSDKDocumentationLink:Native SDK Documentation] to build and link the SDK library.', { releasesLink: ( ), nativeSDKDocumentationLink: ( ), } )}

), }, { type: StepType.CONFIGURE, description: t( 'Import and initialize the Sentry SDK early in your application setup:' ), configurations: [ { language: 'c', code: ` #include int main(void) { sentry_options_t *options = sentry_options_new(); sentry_options_set_dsn(options, "${dsn}"); // This is also the default-path. For further information and recommendations: // https://docs.sentry.io/platforms/native/configuration/options/#database-path sentry_options_set_database_path(options, ".sentry-native"); sentry_options_set_release(options, "my-project-name@2.3.12"); sentry_options_set_debug(options, 1); sentry_init(options); /* ... */ // make sure everything flushes sentry_close(); } `, }, ], additionalInfo: (

{tct( 'Alternatively, the DSN can be passed as [code:SENTRY_DSN] environment variable during runtime. This can be especially useful for server applications.', { code: , } )}

), }, { type: StepType.VERIFY, description: t( 'The quickest way to verify Sentry in your Native application is by capturing a message:' ), configurations: [ { language: 'c', code: ` sentry_capture_event(sentry_value_new_message_event( /* level */ SENTRY_LEVEL_INFO, /* logger */ "custom", /* message */ "It works!" )); `, }, ], additionalInfo: ( {t( "If you're new to Sentry, use the email alert to access your account and complete a product tour." )} {t( "If you're an existing user and have disabled alerts, you won't receive this email." )} ), }, ]; // Configuration End export function GettingStartedWithNative({dsn, ...props}: ModuleProps) { return ; } export default GettingStartedWithNative;