aaaa you have locator in different place! which is wrong! it will not work like this.
see example how it should be (some mine lines you can ignore like Allure steps and logs):
public class EmailPage extends BasePage {
// header
// body
@iOSXCUITFindBy(className = "XCUIElementTypeTextField")
@AndroidFindBy(id = "auto_complete")
private WebElement emailInput;
// footer
@iOSXCUITFindBys(value = {
@iOSXCUITBy(id = "I28LogInView"),
@iOSXCUITBy(id = "loginButton")
})
@AndroidFindBy(uiAutomator = "new UiSelector().description(\"btn_login\")")
private WebElement loginButton;
public EmailPage(AppiumDriver driver) {
PageFactory.initElements(new AppiumFieldDecorator(driver, Duration.ofSeconds(5)), this);
}
@Step("Tap 'Login' button")
public ConfirmEmailPage tapLoginButton() {
Logger.log();
Assert.assertTrue(tap(loginButton), createAssertionLog("FAILED"));
return new ConfirmEmailPage(page);
}
}