From 2285b9b5f64be8ffa137703a2beee2c6c9e323aa Mon Sep 17 00:00:00 2001 From: Ishpaul Singh <104348397+ishpaul777@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:15:20 +0530 Subject: [PATCH 1/5] Create HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md --- ...HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md diff --git a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md new file mode 100644 index 000000000000..cb0a48395ba3 --- /dev/null +++ b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md @@ -0,0 +1,41 @@ +## Follow these steps to build the App on Physical IOS Device: + +1. **Plug in your device via USB** + + Connect your iOS device to your Mac using a USB cable. Navigate to the `ios` folder in project, then open the `.xcworkspace` file in Xcode. +> [!Note] +>If this is your first time running an app on your iOS device, you may need to register your device for development. Open the Product menu from Xcode's menubar, then go to Destination. Look for and select your device from the list. Xcode will then register your device for development. + +2. **Configure code signing** + +> [!Important] +> You must have a paid Apple Developer account to run your app on a physical device. If you don't have one, you can register here: [Apple Developer Program](https://developer.apple.com/). + + 2.1. Go to `Signing and Capabilities` then in the section called `Signing (Debug/Development and Release/Development)` + + ![Step 2.1 Screenshot](https://github.com/Expensify/App/assets/104348397/4c668612-ab29-4a91-8e2d-a146e2940017) + + 2.2. Check `Enable Automatic Signing` + + 2.3. Pick your personal team + + 2.4. Change the bundle identifier to something unique like `com.yourname.expensify.chat.dev` + + ![Step 2.4 Screenshot](https://github.com/Expensify/App/assets/104348397/4ce3f250-4b7c-4e7c-9f1d-09df7bdfc5e0) + + > [!Note] +>Please be aware that the app built with your own bundle id doesn't support authenticated services like push notification which should be only available in Expensify developer account. + + 2.5. Scroll down and Remove Associated Domains, Communication Notifications, Push Notifications, and Sign In With Apple capabilities + + 2.6. Go to the `NotificationService` target and repeat Steps 2.2-2.4 + + ![Step 2.6 Screenshot](https://github.com/Expensify/App/assets/104348397/850d35ac-ca49-4d44-8e3b-0b4ad10509d3) + + 2.7. Go to the `Tests` target and repeat Steps 2.2-2.4 + + ![Step 2.7 Screenshot](https://github.com/Expensify/App/assets/104348397/ad9fcc8e-10ad-40ca-9fb5-c67aec5dbdce) + +3. **Build and Run your app** + + If everything is set up correctly, your device will be listed as the build target in the Xcode toolbar, and it will also appear in the Devices pane (Shift ⇧ + Cmd ⌘ + 2). You can now press the Build and run button (Cmd ⌘ + R) or select Run from the Product menu. Your app will launch on your device shortly. From d22c74d1cad538c3c58550b94cca1d1b843cbf78 Mon Sep 17 00:00:00 2001 From: Ishpaul Singh <104348397+ishpaul777@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:20:37 +0530 Subject: [PATCH 2/5] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b69786d64f13..3161fd507461 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,8 @@ For an M1 Mac, read this [SO](https://stackoverflow.com/questions/64901180/how-t * To run a on a **Development Simulator**: `npm run ios` * Changes applied to Javascript will be applied automatically, any changes to native code will require a recompile +If you want to run the app on an actual physical iOS device, please follow the instructions [here](https://github.com/Expensify/App/blob/docs/how-to-build-app-on-physcial-device/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md). + ## Running the Android app 🤖 * Before installing Android dependencies, you need to obtain a token from Mapbox to download their SDKs. Please run `npm run configure-mapbox` and follow the instructions. If you already did this step for iOS, there is no need to repeat this step. * Go through the official React-Native instructions on [this page](https://reactnative.dev/docs/environment-setup?guide=native&platform=android) to start running the app on android. From ed477b41b172f3c58e517f92ae1731357fbe1b99 Mon Sep 17 00:00:00 2001 From: Ishpaul Singh <104348397+ishpaul777@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:28:31 +0530 Subject: [PATCH 3/5] Update HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md --- contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md index cb0a48395ba3..dc497e7b35d1 100644 --- a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md +++ b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md @@ -9,7 +9,7 @@ 2. **Configure code signing** > [!Important] -> You must have a paid Apple Developer account to run your app on a physical device. If you don't have one, you can register here: [Apple Developer Program](https://developer.apple.com/). +> You must have a Apple Developer account to run your app on a physical device. If you don't have one, you can register here: [Apple Developer Program](https://developer.apple.com/). 2.1. Go to `Signing and Capabilities` then in the section called `Signing (Debug/Development and Release/Development)` From 715a4d156bbad10f32deb3a4972db29201eb718f Mon Sep 17 00:00:00 2001 From: Ishpaul Singh <104348397+ishpaul777@users.noreply.github.com> Date: Fri, 9 Feb 2024 02:36:39 +0530 Subject: [PATCH 4/5] Update HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md --- .../HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md index dc497e7b35d1..10032d49d318 100644 --- a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md +++ b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md @@ -15,7 +15,7 @@ ![Step 2.1 Screenshot](https://github.com/Expensify/App/assets/104348397/4c668612-ab29-4a91-8e2d-a146e2940017) - 2.2. Check `Enable Automatic Signing` + 2.2. Enable `Automatically manage Signing` 2.3. Pick your personal team @@ -23,8 +23,8 @@ ![Step 2.4 Screenshot](https://github.com/Expensify/App/assets/104348397/4ce3f250-4b7c-4e7c-9f1d-09df7bdfc5e0) - > [!Note] ->Please be aware that the app built with your own bundle id doesn't support authenticated services like push notification which should be only available in Expensify developer account. +> [!Note] +>Please be aware that the app built with your own bundle id doesn't support authenticated services like push notification, apple signin, deeplinking etc. which should be only available in Expensify developer account. 2.5. Scroll down and Remove Associated Domains, Communication Notifications, Push Notifications, and Sign In With Apple capabilities From bc1f14543ad431dab8ce1ae36519e8e73af99413 Mon Sep 17 00:00:00 2001 From: Ishpaul Singh <104348397+ishpaul777@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:35:13 +0530 Subject: [PATCH 5/5] Update HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md --- .../HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md index 10032d49d318..a62939aebc25 100644 --- a/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md +++ b/contributingGuides/HOW_TO_BUILD_APP_ON_PHYSICAL_IOS_DEVICE.md @@ -27,10 +27,10 @@ >Please be aware that the app built with your own bundle id doesn't support authenticated services like push notification, apple signin, deeplinking etc. which should be only available in Expensify developer account. 2.5. Scroll down and Remove Associated Domains, Communication Notifications, Push Notifications, and Sign In With Apple capabilities - - 2.6. Go to the `NotificationService` target and repeat Steps 2.2-2.4 - + ![Step 2.6 Screenshot](https://github.com/Expensify/App/assets/104348397/850d35ac-ca49-4d44-8e3b-0b4ad10509d3) + + 2.6. Go to the `NotificationService` target and repeat Steps 2.2-2.4 2.7. Go to the `Tests` target and repeat Steps 2.2-2.4