@@ -48,16 +48,18 @@ const PACKAGES_TO_ADD_WEB = {
48
48
export default async function generateExampleApp ( {
49
49
type,
50
50
dest,
51
- slug,
52
- projectName,
53
51
arch,
52
+ project,
54
53
reactNativeVersion = 'latest' ,
55
54
} : {
56
55
type : ExampleType ;
57
56
dest : string ;
58
- slug : string ;
59
- projectName : string ;
60
57
arch : 'new' | 'mixed' | 'legacy' ;
58
+ project : {
59
+ slug : string ;
60
+ name : string ;
61
+ package : string ;
62
+ } ;
61
63
reactNativeVersion ?: string ;
62
64
} ) {
63
65
const directory = path . join ( dest , 'example' ) ;
@@ -68,7 +70,7 @@ export default async function generateExampleApp({
68
70
`react-native-test-app@latest` ,
69
71
'init' ,
70
72
'--name' ,
71
- `${ projectName } Example` ,
73
+ `${ project . name } Example` ,
72
74
`--destination` ,
73
75
directory ,
74
76
...( reactNativeVersion !== 'latest'
@@ -84,7 +86,9 @@ export default async function generateExampleApp({
84
86
const vanillaArgs = [
85
87
`react-native@${ reactNativeVersion } ` ,
86
88
'init' ,
87
- `${ projectName } Example` ,
89
+ `${ project . name } Example` ,
90
+ '--package-name' ,
91
+ `${ project . package } .example` ,
88
92
'--directory' ,
89
93
directory ,
90
94
'--version' ,
@@ -126,11 +130,9 @@ export default async function generateExampleApp({
126
130
}
127
131
128
132
// Patch the example app's package.json
129
- const pkg = JSON . parse (
130
- await fs . readFile ( path . join ( directory , 'package.json' ) , 'utf8' )
131
- ) ;
133
+ const pkg = await fs . readJSON ( path . join ( directory , 'package.json' ) ) ;
132
134
133
- pkg . name = `${ slug } -example` ;
135
+ pkg . name = `${ project . slug } -example` ;
134
136
135
137
// Remove Jest config for now
136
138
delete pkg . jest ;
@@ -143,7 +145,7 @@ export default async function generateExampleApp({
143
145
const SCRIPTS_TO_ADD = {
144
146
'build:android' :
145
147
'react-native build-android --extra-params "--no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a"' ,
146
- 'build:ios' : `react-native build-ios --scheme ${ projectName } Example --mode Debug --extra-params "-sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO"` ,
148
+ 'build:ios' : `react-native build-ios --scheme ${ project . name } Example --mode Debug --extra-params "-sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO"` ,
147
149
} ;
148
150
149
151
if ( type === 'vanilla' ) {
@@ -168,6 +170,17 @@ export default async function generateExampleApp({
168
170
'build:android' : androidBuild ,
169
171
'build:ios' : iosBuild ,
170
172
} ) ;
173
+
174
+ const app = await fs . readJSON ( path . join ( directory , 'app.json' ) ) ;
175
+
176
+ app . android = app . android || { } ;
177
+ app . android . package = `${ project . package } .example` ;
178
+ app . ios = app . ios || { } ;
179
+ app . ios . bundleIdentifier = `${ project . package } .example` ;
180
+
181
+ await fs . writeJSON ( path . join ( directory , 'app.json' ) , app , {
182
+ spaces : 2 ,
183
+ } ) ;
171
184
}
172
185
173
186
PACKAGES_TO_REMOVE . forEach ( ( name ) => {
@@ -211,6 +224,17 @@ export default async function generateExampleApp({
211
224
} ) ;
212
225
213
226
scripts . web = 'expo start --web' ;
227
+
228
+ const app = await fs . readJSON ( path . join ( directory , 'app.json' ) ) ;
229
+
230
+ app . expo . android = app . expo . android || { } ;
231
+ app . expo . android . package = `${ project . package } .example` ;
232
+ app . expo . ios = app . expo . ios || { } ;
233
+ app . expo . ios . bundleIdentifier = `${ project . package } .example` ;
234
+
235
+ await fs . writeJSON ( path . join ( directory , 'app.json' ) , app , {
236
+ spaces : 2 ,
237
+ } ) ;
214
238
}
215
239
216
240
await fs . writeJSON ( path . join ( directory , 'package.json' ) , pkg , {
0 commit comments