Cross-platform tooling & testing
The tooling that sits outside your app code — release automation, code signing, store submission, and end-to-end UI testing — regardless of whether the app is native, Flutter, or React Native. Interviewers ask because shipping a mobile app is mostly this, and it is where teams lose the most time.
on this pageshowhide
explore
- Fastlane30 questions
- Fastfile and Lanes5 questions
- Code Signing with Match5 questions
- Building with Gym5 questions
- Beta Distribution5 questions
- Screenshots and Metadata5 questions
- Store Deployment5 questions
- Appium230 questions
- Stack Anatomy38 questions
- Capability Sets25 questions
- Element Addressing47 questions
- Input and Timing29 questions
- App and Device Control41 questions
- Fleet Execution34 questions
- Inspection and Flakiness16 questions
questions
260 · 2 sectionsIn fastlane, which action uploads an iOS build to TestFlight for beta testers?
basics
~20 sThe canonical action is upload_to_testflight, better known by its alias pilot. It takes a finished iOS binary, an App Store Connect credential and an optional changelog, and hands the build to Apple's beta service. Android has no core equivalent.
In a fastlane Fastfile, what does a lane declare, and how does a CI step invoke one?
basics
~20 sA lane is a named, ordered sequence of fastlane actions declared in the Fastfile. CI invokes one by name, such as fastlane ios beta for a lane inside a platform ios block, and the lane's exit status decides the step.
What does fastlane's build_app action (gym) produce for an iOS app?
basics
~10 sfastlane's build_app action, whose alias is gym, wraps Apple's xcodebuild for iOS: it archives the scheme you name, then exports a signed .ipa plus the archive's dSYM debug-symbol bundles into an output directory.
In fastlane, which action captures store screenshots on iOS, and which one on Android?
basics
~20 sfastlane captures iOS store screenshots with capture_ios_screenshots, better known as snapshot, which drives an XCUITest on simulators; Android uses capture_android_screenshots, known as screengrab, which drives a separate instrumentation test APK on a device or emulator.
How does a fastlane upload lane authenticate to App Store Connect and to Google Play without a human login?
basics
~20 sApple and Google use different credentials. upload_to_app_store takes an App Store Connect API key through api_key or api_key_path; upload_to_play_store takes a Google service-account JSON key through json_key or json_key_data. There is no shared credential model.
In Appium, which command accepts a system alert on Android, and which one on iOS?
basics
~10 sOn Android the UiAutomator2 driver exposes mobile: acceptAlert and mobile: dismissAlert; on iOS the XCUITest driver exposes mobile: alert, and only iOS also has the appium:autoAcceptAlerts capability that handles alerts without a call.
In Appium, which browser does a `browserName` session drive on Android, and which on iOS?
basics
~20 sSending browserName instead of an application makes the phone's own browser the app under test: Chrome on Android, whose page commands a Chromedriver answers, and Safari on iOS, driven by XCUITest through Apple's remote web inspector.
In Appium, how is a web-view context handle named on Android compared with iOS?
basics
~20 sBoth platforms share the WEBVIEW_ prefix and then diverge: Android appends the package name of the process hosting the web view, while iOS appends a numeric page id that the remote debugger assigns at runtime.
In Appium, which commands foreground, background and terminate the app under test on Android and Apple platforms?
basics
~20 sBoth sides share mobile: activateApp to foreground an app, mobile: backgroundApp to suspend it, mobile: terminateApp to stop it and mobile: queryAppState to check it. Android adds mobile: startActivity; Apple platforms add mobile: launchApp and mobile: killApp.
In Appium on Android, what does the appium:autoGrantPermissions capability do?
basics
~20 sIt tells the Android drivers to grant every permission the app declares as part of installing it, so no runtime prompt ever appears. It is an install-time switch decided at session start, and the XCUITest driver has no equivalent.