def start_app(self, bundle_id, *args, **kwargs):
        """
        Args:
            bundle_id: the app bundle id, e.g ``com.apple.mobilesafari``

        Returns:
            Process ID.

        Examples:
            >>> start_app('com.apple.mobilesafari')
        """
        if not self.is_local_device:
            # Note: If the bundle_id does not exist, it may get stuck.
            try:
                return self.driver.app_launch(bundle_id)
            except requests.exceptions.ReadTimeout:
                raise AirtestError(f"App launch timeout, please check if the app is installed: {bundle_id}")
        else:
            return TIDevice.start_app(self.udid, bundle_id)

        Args:
            bundle_id: the app bundle id, e.g ``com.apple.mobilesafari``

        Returns:
            Process ID.

        Examples:
            >>> start_app('com.apple.mobilesafari')
        
airtest/core/ios/ios.py