> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Store images in your mobile app

> Save profile photos and other images to App Storage, linked to each player.

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block font-sans whitespace-pre-wrap break-words">
      <div className="pr-7">
        {children}
      </div>
    </CodeBlock>;
};

export const profileImagesPrompt = "Store the profile photos players take in App Storage, linked to their account.";

PixelGames needs somewhere to keep the photos players take. This guide assumes players can
already [sign in](/build/mobile-login), storage relies on knowing who's uploading.

<AiPrompt>
  {profileImagesPrompt}
</AiPrompt>

Agent wires up [App Storage](/features/data-and-storage/object-storage) and links each upload to
the signed-in player. PixelGames can then show a real profile: their uploaded photo next to their
name.

<Frame caption="PixelGames' profile screen, showing the player's photo alongside their high score.">
  <img src="https://mintcdn.com/replit/WuaQIOfW5oxRlxex/images/pixelgames/mobile/database.png?fit=max&auto=format&n=WuaQIOfW5oxRlxex&q=85&s=ea1d18afe4c560a1efeb6ae20f7505fc" alt="PixelGames profile screen with the player's photo, name, and high score" data-path="images/pixelgames/mobile/database.png" width="1516" height="590" data-path="images/pixelgames/mobile/database.png" />
</Frame>

## Test it

1. Sign in to PixelGames with an existing account.
2. Take or choose a profile photo and upload it.
3. Close and reopen the app, confirm the photo is still there.
4. Sign in from a second phone with the same account and confirm you see the same photo.

## Troubleshooting

* **Signed in but the photo doesn't appear:** the app is likely pointed at a different storage
  or auth instance than expected. Ask Agent to check the connection.
* **Upload fails:** confirm the app requested camera and storage permissions before the upload.

## What's next

<CardGroup cols={2}>
  <Card title="Preview and test on your phone" icon="mobile" href="/build/mobile-preview-testing">
    Move from Expo Go to a dev build for full native access.
  </Card>

  <Card title="Submit to the App Store" icon="rocket" href="/build/mobile-publish-ios">
    Submit PixelGames for review.
  </Card>
</CardGroup>

## Related

* [Add login](/build/mobile-login)
* [Use the camera](/build/mobile-camera)
* [Add payments to PixelGames](/build/mobile-payments)
