You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+95-29Lines changed: 95 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,25 +3,22 @@
3
3
π Start UI <small>[native]</small> is an opinionated native starter repository created & maintained by the [BearStudio Team](https://www.bearstudio.fr/team) and other contributors.
4
4
It represents our team's up-to-date stack that we use when creating native apps for our clients.
5
5
6
-
7
6
# Technologies
8
7
9
-
<divalign="center"style="margin: 0016px0"><imgsrc=".github/assets/tech-logos.png"alt="Technologies logos of the starter" /></div>
App name and bundle ID come from `app.config.ts`, evaluated at **prebuild** time. Each script runs `prebuild --clean` with the appropriate `APP_ENV`, then builds.
|`build:production:ios` / `build:production:android`| Start UI [native]| Release | Install production version locally |
78
+
73
79
74
80
```bash
75
-
pnpm prebuild # To generate local builds
81
+
# Development (debug build, dev client)
82
+
pnpm dev:build:ios
83
+
pnpm dev:build:android
84
+
85
+
# Staging (release build, internal testing)
86
+
pnpm build:staging:ios
87
+
pnpm build:staging:android
76
88
77
-
pnpm dev:ios # To run with local ios build
78
-
pnpm dev:android # To run with local android build
89
+
# Production (release build, store-like)
90
+
pnpm build:production:ios
91
+
pnpm build:production:android
79
92
```
80
93
94
+
> [!TIP]
95
+
> If the app name is wrong, the native project was generated with the wrong `APP_ENV`. Re-run the same build script β it includes `--clean` to regenerate the native project.
96
+
81
97
### Devtools
82
98
83
99
You can use @dev-plugins pressing `Shift + m` in your Expo terminal.
@@ -87,13 +103,12 @@ You can use @dev-plugins pressing `Shift + m` in your Expo terminal.
87
103
Storybook is managed as a specific mode of the app that is launch apart in port 8083
88
104
89
105
```bash
90
-
pnpm storybook # To run app in storybook mode
106
+
pnpm dev:storybook # To run app in storybook mode
91
107
```
92
108
93
109
> [!TIP]
94
110
> You can open Storybook in another tab and switch between the app and Storybook by pressing `i` or `a` in each terminal.
95
111
96
-
97
112
## Generate custom icons components from svg files
98
113
99
114
Put the custom svg files into the `app/components/icons/svg-sources` folder and then run the following command:
@@ -108,22 +123,73 @@ If you want to use the same set of custom duotone icons that Start UI is already
108
123
> [!WARNING]
109
124
> All svg icons should be svg files prefixed by `icon-` (example: `icon-externel-link`) with **square size** and **filled with `#000` color** (will be replaced by `currentColor`).
110
125
126
+
# GitHub repository configuration
127
+
128
+
The GitHub Actions workflows require the following configuration.
129
+
130
+
## Variables
131
+
132
+
Add at **Settings β Secrets and variables β Actions β Variables**:
|`EXPO_TOKEN`| Expo access token for EAS CLI | EAS build, development build, update, preview, prepare-production |
151
+
|`APP_STORE_CONNECT_API_KEY`| Base64-encoded App Store Connect API key (.p8 file) for store submission | prepare-production |
152
+
153
+
154
+
Create an Expo token at [expo.dev/accounts/{account}/settings/access-tokens](https://expo.dev/accounts/_/settings/access-tokens).
155
+
156
+
For `APP_STORE_CONNECT_API_KEY`: export your App Store Connect API key as base64 (`base64 -i AuthKey_XXX.p8`) and store the result as the secret. The prepare-production workflow decodes it at runtime for `eas submit`.
157
+
158
+
For the **Release Production** workflow, also configure `eas.json` submit.production with your App Store Connect credentials (`ascAppId`, `ascApiKeyId`, `ascApiKeyIssuerId`, `ascApiKeyPath`), and set the `ASC_API_KEY_ID` variable to match your key ID (used in the key filename).
0 commit comments