@radhya/mach 2.2.5 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/chunk-GICET2HT.js +498 -0
- package/dist/{credentials-DORIKJS3.js → credentials-EPQ6NGOF.js} +1 -1
- package/dist/index.js +359 -136
- package/docs/deep-links.md +23 -0
- package/docs/frameworks/expo.md +35 -0
- package/docs/frameworks/react-native.md +33 -0
- package/package.json +1 -1
- package/dist/chunk-5YQ3HOF2.js +0 -457
package/docs/deep-links.md
CHANGED
|
@@ -95,6 +95,29 @@ When `--output` is not provided, Mach uses `public` if that folder exists; other
|
|
|
95
95
|
}
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
+
## OAuth and Credential Sharing
|
|
99
|
+
|
|
100
|
+
When the selected platform includes iOS, interactive setup asks whether to enable **iOS Web Credentials for HTTPS OAuth callbacks**. Enable it when an OAuth flow returns to an HTTPS URL through `expo-web-browser` or a similar browser-based callback. Mach then writes the `webcredentials` section to the Apple App Site Association file and, for Expo, adds `webcredentials:<domain>` to `ios.associatedDomains`.
|
|
101
|
+
|
|
102
|
+
When the selected platform includes Android, setup also offers **Android Login Credentials for website password and passkey sharing**. Enable it only when the Android app and website intentionally share credentials. Mach adds `delegate_permission/common.get_login_creds` to `assetlinks.json` alongside the normal App Links relation.
|
|
103
|
+
|
|
104
|
+
Both options are disabled by default. When enabled, they are persisted only as the following explicit opt-ins:
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"deepLinks": {
|
|
109
|
+
"ios": {
|
|
110
|
+
"webCredentials": true
|
|
111
|
+
},
|
|
112
|
+
"android": {
|
|
113
|
+
"loginCredentials": true
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
`mach deeplink setup --yes` does not enable either feature automatically. It preserves an existing setting or keeps the default disabled.
|
|
120
|
+
|
|
98
121
|
## Expo Projects
|
|
99
122
|
|
|
100
123
|
For Expo projects, Mach wires a config plugin that applies:
|
package/docs/frameworks/expo.md
CHANGED
|
@@ -145,6 +145,41 @@ Mach applies the resolved value after Expo prebuild, so `app.json` or `app.confi
|
|
|
145
145
|
|
|
146
146
|
This updates native build numbers only. Apple also requires the marketing version to increase when a released version train is closed. In Expo projects, that is usually `expo.version` in `app.json` or `app.config.*`.
|
|
147
147
|
|
|
148
|
+
## iOS app extensions
|
|
149
|
+
|
|
150
|
+
For Expo CNG projects, declare app extensions in the EAS-compatible Expo field:
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"expo": {
|
|
155
|
+
"extra": {
|
|
156
|
+
"eas": {
|
|
157
|
+
"build": {
|
|
158
|
+
"experimental": {
|
|
159
|
+
"ios": {
|
|
160
|
+
"appExtensions": [
|
|
161
|
+
{
|
|
162
|
+
"targetName": "ShareExtension",
|
|
163
|
+
"bundleIdentifier": "com.example.app.share"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Mach reads this field before prebuild, resolves a separate saved provisioning
|
|
176
|
+
profile for the main app and each extension, then applies the profiles to the
|
|
177
|
+
generated Xcode targets. If an Expo project commits its native `ios/` directory,
|
|
178
|
+
Mach can also detect extension targets from Xcode. `ios.appExtensions` in
|
|
179
|
+
`mach.config.json` is available as an explicit override.
|
|
180
|
+
|
|
181
|
+
Single-target Expo projects continue to use the existing single-profile path.
|
|
182
|
+
|
|
148
183
|
## Common Commands
|
|
149
184
|
|
|
150
185
|
```bash
|
|
@@ -119,6 +119,39 @@ For store builds, upload iOS signing credentials and App Store Connect credentia
|
|
|
119
119
|
|
|
120
120
|
`ios.buildNumber: "auto"` allocates the next scoped Dashboard value. An explicit value is used exactly as configured. Mach applies the resolved value to the app and extension targets, then verifies the final IPA before upload.
|
|
121
121
|
|
|
122
|
+
### iOS app extensions
|
|
123
|
+
|
|
124
|
+
Mach detects committed Xcode app-extension targets and resolves one provisioning
|
|
125
|
+
profile for each exact bundle identifier. The same compatible Apple signing
|
|
126
|
+
certificate is reused across the targets. Upload a profile for the main app and
|
|
127
|
+
for every extension under the same Mach project.
|
|
128
|
+
|
|
129
|
+
Automatic Xcode detection is the default. For generated or unusual projects,
|
|
130
|
+
declare the targets explicitly:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"ios": {
|
|
135
|
+
"bundleIdentifier": "com.example.app",
|
|
136
|
+
"iosScheme": "Example",
|
|
137
|
+
"appExtensions": [
|
|
138
|
+
{
|
|
139
|
+
"targetName": "ShareExtension",
|
|
140
|
+
"bundleIdentifier": "com.example.app.share"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"targetName": "CallerDirectoryExtension",
|
|
144
|
+
"bundleIdentifier": "com.example.app.callerid"
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Mach installs every profile, applies it only to the matching Xcode target, and
|
|
152
|
+
writes all bundle-to-profile mappings to `ExportOptions.plist`. Projects with no
|
|
153
|
+
extensions continue through the original single-profile signing path.
|
|
154
|
+
|
|
122
155
|
## Android Notes
|
|
123
156
|
|
|
124
157
|
Mach runs Gradle from `android/gradlew` when present. Production builds default to `bundleRelease`; internal builds default to `assembleRelease`; development-client style builds default to `assembleDebug`.
|