Choose where your build files live
Team
Where are the files stored? It is one of the first questions on any vendor form, and for teams in Europe the answer often decides whether a tool can be used.
On Team, an Owner or Admin picks where new uploads go: our storage in the United States (the default), our storage in the European Union, or a bucket of your own.
Example
Where your files are
- New uploadsYour bucket, s3.eu-central-1, acme-builds/appforshare/
- Builds in the United States214
- Builds in your bucket37
- Access keyEnds in 7QX2, sealed
Made for
- European teams whose policy asks for files stored in the EU
- Companies that want test builds in a bucket they control
- Agencies that must keep a client's builds in the client's storage
What it ends
- Ruling out a tool because files can only be stored in one country
- No control over where build files sit or how long they stay
How it works
Step 1
Open Where your files are
In Settings, the Owner or an Admin sees where new uploads go now and how many builds sit in each place. Everyone in the workspace can see it.
Step 2
Pick a place
United States (Google Cloud us-east4), European Union (Google Cloud europe-west), or your own bucket.
Step 3
For your own bucket, test it
Enter the endpoint, region, bucket, folder and an access key. Before saving, AppForShare writes, reads and deletes one small file under the folder.
What goes there
The build files: the .ipa, the .apk and the kept .aab. Install pages, icons, feedback files and analytics stay on AppForShare. Builds you uploaded before a change stay where they are; nothing is moved.
If the chosen place cannot be written, the upload fails with a clear message. Files never land somewhere else instead.
Your own bucket
Amazon S3, any S3 compatible service, or Google Cloud Storage with an HMAC key. AppForShare writes only <folder>builds/<build>/ objects, never lists the bucket, and deletes only the files of a build that was deleted or expired, after the usual 7 day restore window. Testers download through a signed link valid for 10 minutes.
Keys are encrypted with Google Cloud KMS and never shown again; the page shows the last 4 characters of the key ID only. Disconnecting sends new uploads back to our storage; builds in your bucket keep working until they are deleted. Deleting the workspace never deletes anything in your bucket except our build files.
Good to know
- Only new uploads follow the setting. There is no job that moves existing builds.
- The setting covers build files. Account data, install pages, icons, feedback files and analytics are not moved.
- A lifecycle rule of your own on the bucket can remove files of live builds. Keep it longer than your longest live build, or leave the folder out of it.
Questions
- Where are files stored by default?
- On Google Cloud Storage in the United States (us-east4), in a private bucket, served only through signed, short lived links.
- Are my existing builds moved when I switch?
- No. Builds already uploaded stay where they are. Settings counts builds per place.
- Which buckets work?
- Amazon S3, S3 compatible services, and Google Cloud Storage with an HMAC key.
- Can AppForShare read the rest of my bucket?
- It never lists the bucket and only writes and deletes files under the folder you give, for its own builds. Give the key access to that folder only if your provider allows it.
- Which plan do I need?
- Team.
Read next
Try it on your own app
Free account in a minute. Pro starts with a 7 day free trial.
More features
- Builds on GitHub Actions
- Flutter builds on GitHub Actions
- Flutter facts and checks
- Security scan on every build
- Connect Expo (EAS builds)
- Connect Codemagic
- Send store builds to TestFlight and Google Play
- TestFlight groups and beta review on send
- TestFlight feedback in your inbox
- iOS device registration
- Hands free device setup
- Store listing editor
- App Store submission
- Google Play releases
- TestFlight tester sync
- Tester app with notifications
- Tester groups and status
- Join links for testers
- Beta and Live channels
- Build history page
- Tasks and activity feed
- Feedback to Linear and Jira
- Release checklist, approvals and blockers
- Release page per version
- Install link controls
- Several links per build
- Retire a test build
- TestFlight and APK in one link
- Install page in 13 languages
- In-app update check
- .aab uploads
- MCP server for AI tools
- Tester feedback with screenshots
- In-app feedback link
- AI test plan for each build
- Diawi compatible upload API
- Remember my iPhone
- Install help and why it failed
- Email the install link
- Custom channel address
- Verified publisher
- Daily install email
- Zipped .app upload
- Manage link for guest uploads
- Test accounts on the install page
- Telegram notifications
- Permissions in plain words
- Reply to testers and star ratings
- Follow a channel by email
- Download button for a README
- Store pages
- Check a build before upload
- Token scopes and CLI tools
- Upload from Claude or ChatGPT
- Passkeys and email code sign in
- Free build tools
- How reports work
- Malware check on every upload
- Re-sign iOS builds
- Single sign on (SAML and OpenID Connect)
- Require two step sign in
- Send to Microsoft Intune
- Mac and Windows builds
- Workspace address
- Automatic clean up of old builds
- Tester email from your own mail server
- Webex notifications