diff --git a/ui_automator/android/app/snippet-1.0.1.apk b/ui_automator/android/app/snippet-1.0.2-rc.0.apk
similarity index 98%
rename from ui_automator/android/app/snippet-1.0.1.apk
rename to ui_automator/android/app/snippet-1.0.2-rc.0.apk
index 480f67f..b2b56c2 100644
--- a/ui_automator/android/app/snippet-1.0.1.apk
+++ b/ui_automator/android/app/snippet-1.0.2-rc.0.apk
Binary files differ
diff --git a/ui_automator/ui_automator.py b/ui_automator/ui_automator.py
index aa28020..11e6924 100644
--- a/ui_automator/ui_automator.py
+++ b/ui_automator/ui_automator.py
@@ -447,7 +447,7 @@
         os.path.dirname(os.path.abspath(__file__)),
         'android',
         'app',
-        'snippet-1.0.1.apk',
+        'snippet-1.0.2-rc.0.apk',
     )
 
   def _add_test_to_commission_test_suite(
diff --git a/ui_automator/ui_automator_test.py b/ui_automator/ui_automator_test.py
index c7c2e3c..4a1f9ff 100644
--- a/ui_automator/ui_automator_test.py
+++ b/ui_automator/ui_automator_test.py
@@ -81,6 +81,8 @@
     _PYTHON_BIN_PATH + 'ui-automator',
     '--commission',
 ]
+_FAKE_PROJECT_FOLDER = '/path/to/'
+_EXPECTED_APK_PATH = f'{_FAKE_PROJECT_FOLDER}android/app/snippet-1.0.2-rc.0.apk'
 
 
 class UIAutomatorTest(unittest.TestCase):
@@ -199,7 +201,7 @@
 
   @mock.patch.object(android_device, 'get_all_instances', autospec=True)
   @mock.patch.object(
-      os.path, 'dirname', autospec=True, return_value='/path/to/'
+      os.path, 'dirname', autospec=True, return_value=_FAKE_PROJECT_FOLDER
   )
   def test_load_snippet_installs_apk_when_apk_is_not_installed(
       self, mock_dirname, mock_get_all_instances
@@ -211,14 +213,14 @@
     self.ui_automator.load_snippet()
 
     self.mock_android_device.adb.install.assert_called_once_with(
-        ['-r', '-g', '/path/to/android/app/snippet-1.0.1.apk']
+        ['-r', '-g', _EXPECTED_APK_PATH]
     )
     self.mock_android_device.adb.uninstall.assert_not_called()
     mock_dirname.assert_called_once()
 
   @mock.patch.object(android_device, 'get_all_instances', autospec=True)
   @mock.patch.object(
-      os.path, 'dirname', autospec=True, return_value='/path/to/'
+      os.path, 'dirname', autospec=True, return_value=_FAKE_PROJECT_FOLDER
   )
   def test_load_snippet_should_not_install_apk_when_correct_apk_installed(
       self, mock_dirname, mock_get_all_instances
@@ -238,7 +240,7 @@
 
   @mock.patch.object(android_device, 'get_all_instances', autospec=True)
   @mock.patch.object(
-      os.path, 'dirname', autospec=True, return_value='/path/to/'
+      os.path, 'dirname', autospec=True, return_value=_FAKE_PROJECT_FOLDER
   )
   def test_load_snippet_uninstalls_apk_before_installing_it_with_incorrect_apk(
       self, mock_dirname, mock_get_all_instances
@@ -256,13 +258,13 @@
         'com.chip.interop.moblysnippet'
     )
     self.mock_android_device.adb.install.assert_called_once_with(
-        ['-r', '-g', '/path/to/android/app/snippet-1.0.1.apk']
+        ['-r', '-g', _EXPECTED_APK_PATH]
     )
     mock_dirname.assert_called_once()
 
   @mock.patch.object(android_device, 'get_all_instances', autospec=True)
   @mock.patch.object(
-      os.path, 'dirname', autospec=True, return_value='/path/to/'
+      os.path, 'dirname', autospec=True, return_value=_FAKE_PROJECT_FOLDER
   )
   def test_load_snippet_installs_apk_when_no_apk_installed(
       self, mock_dirname, mock_get_all_instances
@@ -278,7 +280,7 @@
 
     self.mock_android_device.adb.uninstall.assert_not_called()
     self.mock_android_device.adb.install.assert_called_once_with(
-        ['-r', '-g', '/path/to/android/app/snippet-1.0.1.apk']
+        ['-r', '-g', _EXPECTED_APK_PATH]
     )
     mock_dirname.assert_called_once()
 
diff --git a/ui_automator/version.py b/ui_automator/version.py
index cf5967f..38580a7 100644
--- a/ui_automator/version.py
+++ b/ui_automator/version.py
@@ -17,6 +17,6 @@
 from typing import Optional
 
 
-_SEMANTIC_VERSION = "1.0.1"
+_SEMANTIC_VERSION = "1.0.2-rc.0"
 
 VERSION = _SEMANTIC_VERSION
