@expo/repack-app 0.1.13 → 0.1.15
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 +22 -106
- package/dist/{apktool_2.10.0.jar → apktool.jar} +0 -0
- package/dist/index.js +18 -16
- package/package.json +8 -11
package/README.md
CHANGED
|
@@ -2,103 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Repacking tool for Expo apps
|
|
4
4
|
|
|
5
|
-
## Repack an onboarding app for Android
|
|
6
|
-
|
|
7
|
-
1. Install repack-app
|
|
8
|
-
|
|
9
|
-
```sh
|
|
10
|
-
$ bun i
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
2. Generate golden apk
|
|
14
|
-
|
|
15
|
-
```sh
|
|
16
|
-
$ ./scripts/create-golden-apk.sh
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
The golden apk will be generated at **./golden-debug.apk**
|
|
20
|
-
|
|
21
|
-
3. Have an onboarding app setup at /path/to/sdk51onboard
|
|
22
|
-
|
|
23
|
-
4. Repack by cli
|
|
24
|
-
|
|
25
|
-
```sh
|
|
26
|
-
$ bun bin/cli.js -p android --source-app ./golden-debug.apk /path/to/sdk51onboard
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
5. Install the app
|
|
30
|
-
|
|
31
|
-
```sh
|
|
32
|
-
$ adb install -r /path/to/sdk51onboard/repacked.apk
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Repack an onboarding app for iOS simulators
|
|
36
|
-
|
|
37
|
-
1. Install repack-app
|
|
38
|
-
|
|
39
|
-
```sh
|
|
40
|
-
$ bun i
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
2. Generate golden apk
|
|
44
|
-
|
|
45
|
-
```sh
|
|
46
|
-
$ ./scripts/create-golden-ipa.sh iphonesimulator
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
The golden apk will be generated at **./golden-debug-iphonesimulator.ipa**
|
|
50
|
-
|
|
51
|
-
3. Have an onboarding app setup at /path/to/sdk51onboard
|
|
52
|
-
|
|
53
|
-
4. Repack by cli
|
|
54
|
-
|
|
55
|
-
```sh
|
|
56
|
-
$ bun bin/cli.js -p ios --source-app ./golden-debug-iphonesimulator.ipa /path/to/sdk51onboard
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
5. Install the app
|
|
60
|
-
|
|
61
|
-
```sh
|
|
62
|
-
$ mkdir tmp && unzip /path/to/sdk51onboard/repacked.ipa -d tmp && xcrun simctl install booted tmp/Payload/*.app
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Repack an onboarding app for iOS devices
|
|
66
|
-
|
|
67
|
-
1. Install repack-app
|
|
68
|
-
|
|
69
|
-
```sh
|
|
70
|
-
$ bun i
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
2. Generate golden apk
|
|
74
|
-
|
|
75
|
-
```sh
|
|
76
|
-
$ ./scripts/create-golden-ipa.sh iphoneos
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
The golden apk will be generated at **./golden-debug-iphoneos.ipa**
|
|
80
|
-
|
|
81
|
-
3. Have an onboarding app setup at /path/to/sdk51onboard
|
|
82
|
-
|
|
83
|
-
4. Repack by cli
|
|
84
|
-
|
|
85
|
-
```sh
|
|
86
|
-
$ bun bin/cli.js -p ios --source-app ./golden-debug-iphoneos.ipa /path/to/sdk51onboard
|
|
87
|
-
# then resign the ipa maybe through fastlane resign
|
|
88
|
-
|
|
89
|
-
# or the cli also provides a shorthand
|
|
90
|
-
$ bun bin/cli.js -p ios --source-app ./golden-debug-iphoneos.ipa \
|
|
91
|
-
--signing-identity 'Apple Development: OOO (XXX)' \
|
|
92
|
-
--provisioning-profile "$HOME/Library/MobileDevice/Provisioning Profiles/e1cf123b-d33a-2b3e-073a-c7ed52aa61bb.mobileprovision" \
|
|
93
|
-
/path/to/sdk51onboard
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
5. Install the app
|
|
97
|
-
|
|
98
|
-
```sh
|
|
99
|
-
$ xcrun devicectl device install app --verbose --device <device-id> /path/to/sdk51onboard/repacked.ipa
|
|
100
|
-
```
|
|
101
|
-
|
|
102
5
|
## API Documentation
|
|
103
6
|
|
|
104
7
|
### CLI Usage
|
|
@@ -119,14 +22,15 @@ repack-app [options] [project-root]
|
|
|
119
22
|
#### Android-specific Options
|
|
120
23
|
|
|
121
24
|
- `--ks <path>`: Path to the keystore file
|
|
122
|
-
- `--ks-pass <password>`: Keystore password (
|
|
25
|
+
- `--ks-pass <password>`: Keystore password (supports formats: `pass:<password>`, `env:<name>`, `file:<file>`)
|
|
123
26
|
- `--ks-key-alias <alias>`: Keystore key alias
|
|
124
|
-
- `--ks-key-pass <password>`: Keystore key password
|
|
27
|
+
- `--ks-key-pass <password>`: Keystore key password (supports formats: `pass:<password>`, `env:<name>`, `file:<file>`)
|
|
125
28
|
|
|
126
29
|
#### iOS-specific Options
|
|
127
30
|
|
|
128
|
-
- `--signing-identity <identity>`:
|
|
129
|
-
- `--provisioning-profile <path>`: Path to the provisioning profile
|
|
31
|
+
- `--signing-identity <identity>`: Code signing identity
|
|
32
|
+
- `--provisioning-profile <path>`: Path to the provisioning profile file(s)
|
|
33
|
+
- `--keychain-path <path>`: Path to the keychain file for codesign
|
|
130
34
|
|
|
131
35
|
#### Bundle Options
|
|
132
36
|
|
|
@@ -149,14 +53,17 @@ await repackAppAndroidAsync({
|
|
|
149
53
|
verbose: true,
|
|
150
54
|
androidSigningOptions: {
|
|
151
55
|
keyStorePath: '/path/to/keystore.jks',
|
|
152
|
-
keyStorePassword: 'password',
|
|
56
|
+
keyStorePassword: 'pass:password', // or 'env:KEYSTORE_PASS' or 'file:/path/to/pass'
|
|
153
57
|
keyAlias: 'alias',
|
|
154
|
-
keyPassword: 'key-password',
|
|
58
|
+
keyPassword: 'pass:key-password', // or 'env:KEY_PASS' or 'file:/path/to/key-pass'
|
|
155
59
|
},
|
|
156
60
|
androidBuildToolsDir: '/path/to/build-tools',
|
|
157
61
|
exportEmbedOptions: {
|
|
158
62
|
sourcemapOutput: '/path/to/sourcemap',
|
|
159
63
|
},
|
|
64
|
+
env: {
|
|
65
|
+
// Additional environment variables
|
|
66
|
+
},
|
|
160
67
|
});
|
|
161
68
|
|
|
162
69
|
// For iOS
|
|
@@ -171,10 +78,14 @@ await repackAppIosAsync({
|
|
|
171
78
|
iosSigningOptions: {
|
|
172
79
|
signingIdentity: 'Apple Development: Name (Team ID)',
|
|
173
80
|
provisioningProfile: '/path/to/profile.mobileprovision',
|
|
81
|
+
keychainPath: '/path/to/keychain', // Optional
|
|
174
82
|
},
|
|
175
83
|
exportEmbedOptions: {
|
|
176
84
|
sourcemapOutput: '/path/to/sourcemap',
|
|
177
85
|
},
|
|
86
|
+
env: {
|
|
87
|
+
// Additional environment variables
|
|
88
|
+
},
|
|
178
89
|
});
|
|
179
90
|
```
|
|
180
91
|
|
|
@@ -193,18 +104,23 @@ The following options are available when using the API programmatically:
|
|
|
193
104
|
- `exportEmbedOptions?`: ExportEmbedOptions - Options for embedding JS bundle
|
|
194
105
|
- `skipWorkingDirCleanup?`: boolean - Skip working directory cleanup
|
|
195
106
|
- `env?`: Record<string, string | undefined> - Environment variables
|
|
196
|
-
- `logger?`: Logger - Custom logger instance
|
|
197
|
-
- `spawnAsync?`: SpawnProcessAsync - Custom spawn process function
|
|
198
107
|
|
|
199
108
|
#### Android-specific Options
|
|
200
109
|
|
|
201
110
|
- `androidSigningOptions?`: AndroidSigningOptions - Options for signing the Android app
|
|
111
|
+
- `keyStorePath`: string - Path to the keystore file
|
|
112
|
+
- `keyStorePassword`: string - Keystore password (supports formats: `pass:<password>`, `env:<name>`, `file:<file>`)
|
|
113
|
+
- `keyAlias?`: string - Keystore key alias
|
|
114
|
+
- `keyPassword?`: string - Keystore key password (supports formats: `pass:<password>`, `env:<name>`, `file:<file>`)
|
|
202
115
|
- `androidBuildToolsDir?`: string - Path to Android SDK build-tools directory
|
|
203
116
|
|
|
204
117
|
#### iOS-specific Options
|
|
205
118
|
|
|
206
119
|
- `iosSigningOptions?`: IosSigningOptions - Options for signing the iOS app
|
|
120
|
+
- `signingIdentity`: string - Code signing identity
|
|
121
|
+
- `provisioningProfile`: string | Record<string, string> - Path to provisioning profile file(s)
|
|
122
|
+
- `keychainPath?`: string - Path to the keychain file for codesign
|
|
207
123
|
|
|
208
|
-
|
|
124
|
+
## Environment Variables
|
|
209
125
|
|
|
210
126
|
- `ANDROID_SDK_ROOT`: Path to the Android SDK root directory (required for Android builds)
|
|
Binary file
|