SpektraLab Privacy Policy
Effective 27 October 2026. This policy covers SpektraLab for iPhone and iPad: the version on the App Store, and the beta distributed through Apple's TestFlight. It is published at spektralab.app/privacy, and the app opens it from Settings › Diagnostics › Privacy Policy.
In short
- Your photographs stay on your device. SpektraLab develops them on your iPhone or iPad. It never sends a photograph, or any part of one, to us or to anyone else.
- The App Store version sends us nothing. It keeps a technical log of how it ran on your device, and that log leaves only if you export it and send it yourself.
- The TestFlight beta can send that log to us, and only if you say yes. The beta asks once, the first time you open it; the switch is in Settings › Diagnostics from then on.
- There is no account, no advertising and no tracking. The app contains no other company's analytics or advertising code.
- Purchases go through Apple. We never see or hold your payment details.
- Apple collects data of its own for the App Store and for TestFlight, under its own terms. It is described below.
Who is responsible
SpektraLab is made by 邱瀚泽 Hanze Qiu ("we"). We decide what the log holds and what is done with it. For anything in this policy, write to contact@spektralab.cn.
Your photographs
- The app works on photographs you take with it, browse or pick from Photos, copy in, or read from a folder you link. It never changes or deletes a photograph in Photos.
- If you give the app access to Photos, it shows your library inside the app. To do so it reads previews and each photo's date, kind and size, and keeps an index of them on your device. A photograph you develop or copy in is kept in the app as its original (Settings › Sources › Keep Originals, on unless you turn it off), and the one in Photos stays as it was.
- Photographs you take with the app, files you copy in, and originals the app keeps are stored in the app, on your device. They are part of your device's own backup, if you keep one. Shots are also saved to Photos while Settings › Camera › Save Shots to Photos is on.
- To show a photograph in your library, the app reads its file name, date, camera, exposure and size. This stays on your device.
- If an original is in iCloud Photos, iOS downloads it from your own iCloud when the app needs it.
- A picture leaves the app only when you export it: to Photos, to Files, or through the share sheet. An exported picture carries the original's details: camera, lens, exposure, date and, where the original has them, the place it was taken and its caption. Whoever receives the file can read them.
What the app asks iOS for
- Camera, to take photographs. The app records no sound.
- Photos, to show and read your photographs where they are, and to save your shots and the pictures you export. You can give the app all of your library, some of it, or none; the app works with what you give.
- While the camera is open, the app reads the device's motion sensors to draw its level. Nothing of this is kept.
The app never asks for your location and adds none to the photographs it takes. It does not ask for the microphone or your contacts.
The log
It is kept on your device, in every version
The app keeps a log of how it runs, on your device: at most 7 days, 20 files or 16 MB, with older files removed each time the app is opened. It is left out of your device's backup and goes when you delete the app. Settings › Diagnostics › Export Log Zip hands you the same files, to read or to send to whomever you choose. Making the zip sends nothing.
What it holds
- Your device and this build: model, iOS or iPadOS version, language and region setting, memory, Low Power Mode and heat state; the app's version and build; its settings (capture format, preview size, the film and paper for new frames, the export recipe, storage limits); whether SpektraLab Plus is on.
- How the app ran: when it was opened, left and ended; memory warnings; whether the session before ended while the app was in use.
- Each develop and export: its size, the time it took, the memory it used and what the device had free, whether it finished. For an export also the file format, colour space and quality, where it went (Photos, Files or Share), and the film, paper, Film Edge format and Date Back style on it.
- The camera: the lenses and formats your device offers; for each shot, that it was taken, its format, lens and file size.
- Your library in numbers: how many frames; how many are RAW, are favourites, or carry a film edge or a date; where they come from; their size classes; the makes and models of the cameras that took them; the films and papers on them; the storage they take; how much access to Photos you have given; how many folders are linked. For each import, how many photographs and from where.
- What you used: how long a visit to the develop page lasted, the film and paper chosen, and the names of the settings you touched (not their values).
- What went wrong: errors, and iOS's own performance and crash reports for this app, stored whole as iOS hands them over.
- In the TestFlight beta only, the log's own sending: your answer about sharing, each sending and each failure.
Every line carries the time it was written, with the device's offset from UTC. A frame is referred to by an eight-character code the app made up.
What is never in it
A photograph, or any part of one. The file names of your photographs. Where a photograph was taken. The date of a photograph in your library (a shot taken with the app's own camera does leave a time-stamped line). Your name, e-mail address or Apple Account.
Error messages are the system's own words. Before one is written, anything in it that looks like a picture's file name, and the app's own folder path, is taken out. This is a filter, not a guarantee: if you find something in an exported log that should not be there, tell us.
In the App Store version
The App Store version has no way to send the log: it contains no server address and no code that uploads it. The log reaches us only if you export it and send it to us yourself, for instance with a report of a problem. Then we receive what you send, and use it only to answer you and to fix the problem; tell us when you want it deleted.
The TestFlight beta's log sharing
This section is about the beta alone.
If you share it
Saying Share, or turning on Share the log with SpektraLab, sends the log to our server over an encrypted connection:
- at once, everything the device still holds: up to the last 7 days, including days when sharing was off;
- from then on, earlier sessions when the app is opened and the current one when you leave it, at most every five minutes. A session is sent again as it grows, and replaces the copy before.
It is sent over Wi-Fi or cellular, and not in Low Data Mode.
The server stores each log file under a random number made for this installation, with the app's version, the time it arrived and a two-letter country code worked out from the connection. It stores no IP address, and request logging is switched off for it. Cloudflare, whose network carries the connection, necessarily sees the address a request comes from, as any host does.
The number is not your device's and not your Apple Account's, and turning sharing off and on again makes a new one. Even so, one device's logs can be recognised as belonging together: by the number, by the device's model and settings, and because each session's log names the session before it. So we treat the log as personal information, although it carries no name.
Why we collect it, and on what basis
To find and fix faults, to see how the app performs on different devices, and to learn which films, formats and controls are used, so that the app can be improved. The only basis is your consent. Refusing costs nothing: the beta works the same.
Who sees it
Only us. The log is stored with Cloudflare, which hosts our server, and we download copies to our own computer to read them. Reading or deleting a log on the server takes a key that only we hold. We do not sell the log, give it to anyone else, use it for advertising, or try to find out who a log belongs to.
How long it is kept
On your device: 7 days, as above. On the server, each log is deleted automatically 90 days after it last arrived. A session's log is sent again as it grows, so its 90 days count from the last sending. Copies we have downloaded to read are removed from our computer once they were fetched more than 90 days ago, the next time we fetch logs. We delete yours sooner when you ask.
Turning sharing off
Turn off Share the log with SpektraLab in Settings › Diagnostics at any time. Nothing more is sent. This does not delete what was already sent, and the app cannot delete it for you. What was sent is deleted by itself 90 days after it last arrived.
To have it deleted sooner, write to contact@spektralab.cn with your installation's number. It is shown under Settings › Diagnostics › What the log holds, and stays there after you turn sharing off. Turning sharing on again makes a new number; the page then shows the one before it as well. Without a number we cannot tell which logs are yours.
Where the log goes
Our server runs on Cloudflare's network, outside mainland China, and we read the logs on our own computer. Wherever you are, sharing the log may send it out of your country. Chinese law calls this providing personal information abroad and asks for a separate consent to it. The beta's question is a single one, and does not say where the server is; this policy does. If you do not want your log stored abroad, leave sharing off.
SpektraLab Plus and purchases
Plans and subscription terms
SpektraLab Plus unlocks full-resolution export and additional export formats and colour spaces, Film Edge, Date Back, half-frame pairs, the Light Table, import from Files and linked folders, the camera above 12 MP where supported, and Plus films. The app's Plus page describes the included features before you buy.
- Monthly: an auto-renewable subscription for one month, renewing every month until cancelled.
- Annual: an auto-renewable subscription for one year, renewing every year until cancelled.
- Permanent: a one-time purchase that unlocks Plus on your Apple Account, with no recurring charge.
The Plus page shows the current local price and billing period returned by the App Store for each available plan. Apple's purchase confirmation shows the amount and any applicable offer before you approve payment. Prices and availability can vary by country or region; this policy does not set a worldwide price.
Payment is charged to your Apple Account when you confirm the purchase. A subscription renews automatically unless you cancel at least 24 hours before the current period ends. Your account is charged for renewal within the 24 hours before that period ends, at the renewal price shown by Apple.
You can manage or cancel a subscription in your iPhone or iPad's Settings › your name › Subscriptions, or through Manage Subscription in SpektraLab's Settings. See Apple's cancellation instructions. Cancelling stops future renewals; access normally continues until the end of the paid period. Deleting the app does not cancel a subscription. Buying Permanent does not cancel a subscription you already have; cancel that separately with Apple.
Restore Purchases in the app checks purchases associated with your Apple Account without buying again. Refund requests are handled by Apple under its rules and applicable law; see Apple's refund instructions. A refund or revocation can end access to the refunded purchase.
Terms of Use (EULA): SpektraLab uses Apple's Standard End User License Agreement. This privacy policy explains data handling; the linked EULA governs use of the app.
Purchase data
SpektraLab Plus is sold through Apple's App Store, as a subscription or a one-time purchase. Apple takes the payment under its own terms; we never receive your payment details, your name or your Apple Account. To know whether Plus is yours, the app reads, on your device, the signed record of your purchase that Apple keeps there (the product, its dates and a transaction number). Codes you redeem go through Apple's own screen. Apple gives us sales figures and reports that do not tell us who bought. In the TestFlight beta, a purchase is a test made with Apple's sandbox, and nothing is charged.
What Apple collects
The App Store. If you have agreed, in your device's settings, to share analytics with app developers, Apple gives us figures about how the app is used and crash reports, gathered and kept by Apple. We see them only as Apple presents them, and cannot tell who they come from. See Apple's privacy policy and its page on App Analytics.
TestFlight. TestFlight is run by Apple under its own terms. While you use a beta, Apple automatically collects crash logs and usage information and makes them available to us; Apple says this cannot be turned off. We see, among other things, how often you installed and opened the beta and how often it crashed, the app version, your device's model, iOS version and language, and the crash logs. If you send feedback through TestFlight, we also receive your comments and screenshots and the details Apple attaches, such as time zone, carrier, battery level and free storage. If we invited you by e-mail, we see the name and address the invitation was sent to. If you joined through a public link, we see neither. For what Apple collects and how long Apple keeps it, see Apple's TestFlight & Privacy.
We use what Apple gives us only to fix and improve SpektraLab, and give it to no one.
Your choices and rights
In the App Store version nothing is sent, so there is nothing of yours on our server. In the beta you can refuse or withdraw your consent at any time, as above. You can see exactly what the log holds, with Export Log Zip. You can ask us for a copy of what the server holds for your installation, or to delete it. Depending on where you live, you may also have the right to have data corrected, to restrict or object to its use, and to complain to your data protection authority.
We cannot look you up by name or e-mail: a request about the beta's log needs the installation's number, as described above.
We do not sell personal information or share it for advertising, and we will not treat you differently for using any of these rights.
If you write to us, we receive your e-mail address and what you send, and use them only to answer you.
Children
SpektraLab is not directed at children. The app does not ask your age and cannot know it. If you are not old enough to consent for yourself where you live, leave the beta's sharing off unless a parent or guardian agrees. A parent or guardian who believes a child has shared a log can write to us to have it deleted.
Changes
When this policy changes, we will publish the new version where this one is published and change the date at the top. A change to what the log holds will also be described in the notes of the version that makes it.
Contact
邱瀚泽 Hanze Qiu, contact@spektralab.cn