@@ -171,29 +171,101 @@ commands:
171
171
- run :
172
172
command : yarn add file:../../InstabugSDK.tgz
173
173
working_directory : <<parameters.working_directory>>
174
-
175
174
setup_mitm_proxy :
176
175
description : Install and configure MITM proxy
177
176
steps :
178
177
- run :
179
178
name : Install Python3 and MITM Proxy
180
179
command : |
181
- sudo apt-get update
182
- sudo apt-get install -y python3 python3-pip openssl
180
+ # Detect OS and install requirements accordingly
181
+ if [ "$(uname)" == "Darwin" ]; then
182
+ echo "Running on macOS..."
183
+ brew install python3 openssl
184
+ else
185
+ echo "Running on Linux..."
186
+ sudo apt-get update
187
+ sudo apt-get install -y python3 python3-pip openssl
188
+ fi
183
189
190
+ # Verify installations
184
191
python3 --version
185
192
pip3 --version
186
193
194
+ # Upgrade pip and install mitmproxy
187
195
pip3 install --upgrade pip
188
196
pip3 install mitmproxy==10.2.4
197
+
198
+ # Start mitmdump
189
199
mitmdump --set block_global=false &
190
200
sleep 10
201
+
202
+ # Create mitmproxy directory
191
203
mkdir -p ~/.mitmproxy
192
- while [ ! -f ~/.mitmproxy/mitmproxy-ca-cert.cer ]; do
204
+
205
+ # Wait for certificate generation
206
+ while [ ! -f ~/.mitmproxy/mitmproxy-ca-cert.pem ]; do
193
207
sleep 2
194
208
done
195
- openssl x509 -in ~/.mitmproxy/mitmproxy-ca-cert.cer -inform PEM -out ~/.mitmproxy/mitmproxy-ca-cert.crt
196
209
210
+ # Create all required certificate formats
211
+ cd ~/.mitmproxy
212
+ # Create .cer (PEM format)
213
+ cp mitmproxy-ca-cert.pem mitmproxy-ca-cert.cer
214
+ # Create .crt (PEM format)
215
+ cp mitmproxy-ca-cert.pem mitmproxy-ca-cert.crt
216
+ # Create .der format for iOS
217
+ openssl x509 -in mitmproxy-ca-cert.pem -outform DER -out mitmproxy-ca-cert.der
218
+
219
+ echo "MITM Proxy setup completed"
220
+
221
+ setup_appium :
222
+ steps :
223
+ - run :
224
+ name : Install and Setup Appium
225
+ command : |
226
+ npm install -g appium@2.11.4
227
+
228
+ # Install iOS and Android drivers
229
+ appium driver install uiautomator2@3.0.5
230
+ appium driver install xcuitest@7.9.1
231
+
232
+ # Install test dependencies
233
+ npm install --save-dev webdriverio@9.1.0
234
+ npm install --save-dev appium@2.11.4
235
+ npm install --save-dev jest@29.7.0
236
+ npm install --save-dev appium-uiautomator2-driver@3.0.5
237
+ npm install --save-dev appium-xcuitest-driver@7.9.1
238
+
239
+ # Install Android build tools and platform tools
240
+ sdkmanager "build-tools;34.0.0"
241
+ sdkmanager "platform-tools"
242
+ sdkmanager "platforms;android-34"
243
+
244
+ # Verify installations
245
+ echo "Verifying installations..."
246
+ appium --version
247
+ appium driver list --installed
248
+
249
+ - run :
250
+ name : Start Appium Server
251
+ background : true
252
+ command : |
253
+ appium \
254
+ --log-timestamp \
255
+ --debug-log-spacing \
256
+ --allow-insecure chromedriver_autodownload \
257
+ --base-path / \
258
+ --log appium.log &
259
+
260
+ # Wait for server to start
261
+ for i in $(seq 1 30); do
262
+ if curl -s http://localhost:4723/wd/hub/status | grep -q "ready"; then
263
+ echo "Appium server is ready"
264
+ break
265
+ fi
266
+ echo "Waiting for Appium server... ($i/30)"
267
+ sleep 2
268
+ done
197
269
setup_android_proxy :
198
270
steps :
199
271
- run :
@@ -315,9 +387,9 @@ commands:
315
387
adb shell ls -l /data/local/tmp/certs/$HASH.0
316
388
317
389
# Configure proxy settings
318
- adb shell settings put global http_proxy "localhost:8082 "
390
+ adb shell settings put global http_proxy "localhost:8080 "
319
391
adb shell settings put global global_http_proxy_host "localhost"
320
- adb shell settings put global global_http_proxy_port 8082
392
+ adb shell settings put global global_http_proxy_port 8080
321
393
322
394
# Verify proxy settings
323
395
echo "Verifying proxy settings..."
@@ -329,7 +401,7 @@ commands:
329
401
name : Start MITM Proxy with Verbose Logging
330
402
background : true
331
403
command : |
332
- mitmdump -p 8082 --set block_global=false --verbose &
404
+ mitmdump -p 8080 --set block_global=false --verbose &
333
405
sleep 5
334
406
335
407
# Verify proxy is running
@@ -340,55 +412,6 @@ commands:
340
412
341
413
# Monitor proxy logs
342
414
tail -f ~/.mitmproxy/mitmproxy.log &
343
-
344
- setup_appium :
345
- steps :
346
- - run :
347
- name : Install and Setup Appium
348
- command : |
349
- npm install -g appium@2.11.4
350
-
351
- # Install iOS and Android drivers
352
- appium driver install uiautomator2@3.0.5
353
- appium driver install xcuitest@7.9.1
354
-
355
- # Install test dependencies
356
- npm install --save-dev webdriverio@9.1.0
357
- npm install --save-dev appium@2.11.4
358
- npm install --save-dev jest@29.7.0
359
- npm install --save-dev appium-uiautomator2-driver@3.0.5
360
- npm install --save-dev appium-xcuitest-driver@7.9.1
361
-
362
- # Install Android build tools and platform tools
363
- sdkmanager "build-tools;34.0.0"
364
- sdkmanager "platform-tools"
365
- sdkmanager "platforms;android-34"
366
-
367
- # Verify installations
368
- echo "Verifying installations..."
369
- appium --version
370
- appium driver list --installed
371
-
372
- - run :
373
- name : Start Appium Server
374
- background : true
375
- command : |
376
- appium \
377
- --log-timestamp \
378
- --debug-log-spacing \
379
- --allow-insecure chromedriver_autodownload \
380
- --base-path / \
381
- --log appium.log &
382
-
383
- # Wait for server to start
384
- for i in $(seq 1 30); do
385
- if curl -s http://localhost:4723/wd/hub/status | grep -q "ready"; then
386
- echo "Appium server is ready"
387
- break
388
- fi
389
- echo "Waiting for Appium server... ($i/30)"
390
- sleep 2
391
- done
392
415
setup_ios_simulator :
393
416
steps :
394
417
- run :
@@ -440,49 +463,40 @@ commands:
440
463
xcrun simctl list devices
441
464
xcrun simctl spawn $SIMULATOR_UDID launchctl print system
442
465
466
+ setup_ios_proxy :
467
+ steps :
468
+ - run :
469
+ name : Configure iOS Proxy Settings
470
+ command : |
471
+ xcrun simctl spawn $SIMULATOR_UDID defaults write com.apple.mobilesafari WebKitPreferences.encryption "HTTP/1.1"
472
+ xcrun simctl spawn $SIMULATOR_UDID defaults write com.apple.CFNetwork.plist HTTPProxy -dict HTTPEnable 1 HTTPPort 8080 HTTPProxy localhost
473
+ xcrun simctl spawn $SIMULATOR_UDID defaults write com.apple.CFNetwork.plist HTTPSProxy -dict HTTPSEnable 1 HTTPSPort 8080 HTTPSProxy localhost
474
+
475
+ echo "Verifying proxy settings..."
476
+ xcrun simctl spawn $SIMULATOR_UDID defaults read com.apple.CFNetwork.plist
477
+
443
478
setup_ios_certificate :
444
479
steps :
445
480
- run :
446
481
name : Install and Trust Certificate
447
482
command : |
448
- # Wait for MITM certificate
449
- while [ ! -f ~/.mitmproxy/mitmproxy-ca-cert.cer ]; do
483
+ # Wait for certificate files
484
+ while [ ! -f ~/.mitmproxy/mitmproxy-ca-cert.der ]; do
450
485
echo "Waiting for MITM certificate..."
451
486
sleep 2
452
487
done
453
488
454
- # Create certificates directory
455
- mkdir -p ~/certificates
456
- cd ~/certificates
457
-
458
- # Process certificate
459
- cp ~/.mitmproxy/mitmproxy-ca-cert.cer ./
460
- openssl x509 -in mitmproxy-ca-cert.cer -inform PEM -out mitmproxy-ca-cert.pem
461
- openssl x509 -in mitmproxy-ca-cert.pem -outform DER -out mitmproxy-ca-cert.der
462
-
463
489
# Install in simulator
464
- xcrun simctl keychain $SIMULATOR_UDID add-root-cert mitmproxy-ca-cert.der
465
- sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain mitmproxy-ca-cert.pem
490
+ xcrun simctl keychain $SIMULATOR_UDID add-root-cert ~/.mitmproxy/ mitmproxy-ca-cert.der
491
+ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.mitmproxy/ mitmproxy-ca-cert.pem
466
492
467
493
# Add to simulator profiles
468
494
xcrun simctl spawn $SIMULATOR_UDID mkdir -p /Library/Keychains/
469
- xcrun simctl push $SIMULATOR_UDID mitmproxy-ca-cert.der /Library/Keychains/mitmproxy-ca-cert.der
495
+ xcrun simctl push $SIMULATOR_UDID ~/.mitmproxy/ mitmproxy-ca-cert.der /Library/Keychains/mitmproxy-ca-cert.der
470
496
xcrun simctl spawn $SIMULATOR_UDID profiles trust-root-cert /Library/Keychains/mitmproxy-ca-cert.der
471
497
472
498
echo "Certificate installation completed"
473
499
474
- setup_ios_proxy :
475
- steps :
476
- - run :
477
- name : Configure iOS Proxy Settings
478
- command : |
479
- xcrun simctl spawn $SIMULATOR_UDID defaults write com.apple.mobilesafari WebKitPreferences.encryption "HTTP/1.1"
480
- xcrun simctl spawn $SIMULATOR_UDID defaults write com.apple.CFNetwork.plist HTTPProxy -dict HTTPEnable 1 HTTPPort 8080 HTTPProxy localhost
481
- xcrun simctl spawn $SIMULATOR_UDID defaults write com.apple.CFNetwork.plist HTTPSProxy -dict HTTPSEnable 1 HTTPSPort 8080 HTTPSProxy localhost
482
-
483
- echo "Verifying proxy settings..."
484
- xcrun simctl spawn $SIMULATOR_UDID defaults read com.apple.CFNetwork.plist
485
-
486
500
jobs :
487
501
danger :
488
502
executor :
@@ -850,7 +864,7 @@ jobs:
850
864
name : Start MITM Proxy
851
865
background : true
852
866
command : |
853
- mitmdump -p 8082 --set block_global=false &
867
+ mitmdump -p 8080 --set block_global=false &
854
868
sleep 5
855
869
856
870
# Run tests
0 commit comments