/ios-uicatalog

Apple UICatalog App

Primary LanguageObjective-CApache License 2.0Apache-2.0

ios-uicatalog

A simple test application for iOS, used by Appium for certain tests. For more information, see the docs for UICatalog or the docs for UIKitCatalog

UICatalog is for Xcode 10- UIKitCatalog is for Xcode 11+

This package exposes the following:

  1. uiCatalog a. relative i. iphoneos: relative path to the real device app ii. iphonesimulator: relative path to the simulator app b. absolute i. iphoneos: absolute path to the real device app ii. iphonesimulator: absolute path to the simulator app
  2. uiKitCatalog a. relative i. iphoneos: relative path to the real device app ii. iphonesimulator: relative path to the simulator app b. absolute i. iphoneos: absolute path to the real device app ii. iphonesimulator: absolute path to the simulator app

E.g.,

{
  "uiCatalog": {
    "relative": {
      "iphoneos": "UICatalog/build/Release-iphoneos/UICatalog-iphoneos.app",
      "iphonesimulator": "UICatalog/build/Release-iphonesimulator/UICatalog-iphonesimulator.app"
    },
    "absolute": {
      "iphoneos": "/node_modules/ios-uicatalog/UICatalog/build/Release-iphoneos/UICatalog-iphoneos.app",
      "iphonesimulator": "/node_modules/ios-uicatalog/UICatalog/build/Release-iphonesimulator/UICatalog-iphonesimulator.app"
    }
  },
  "uiKitCatalog": {
    "relative": {
      "iphoneos": "UIKitCatalog/build/Release-iphoneos/UIKitCatalog-iphoneos.app",
      "iphonesimulator": "UIKitCatalog/build/Release-iphonesimulator/UIKitCatalog-iphonesimulator.app"
    },
    "absolute": {
      "iphoneos": "/node_modules/ios-uicatalog/UIKitCatalog/build/Release-iphoneos/UIKitCatalog-iphoneos.app",
      "iphonesimulator": "/node_modules/ios-uicatalog/UIKitCatalog/build/Release-iphonesimulator/UIKitCatalog-iphonesimulator.app"
    }
  }
}

Building

npm install will build the app for a simulator in UICatalog/build directory. If you want also to build for a real device, set the environment variable IOS_REAL_DEVICE or REAL_DEVICE to a truthy value.

REAL_DEVICE=1 npm install

If any special build information is needed, the XCCONFIG_FILE environment variable can be set to the path to an xcconfig file.

notice

UICatalog can work on iOS13, but it has issues such as xctest framework returns wrong coordinate. It is because UICatalog does not use newer framework APIs such as safeArea.

Please use UIKitCatalog instead to work properly. It will be built automatically during npm install, or by running npm run build.

Then, the apps will be in UIKitCatalog/build directory.

Watch

npm run watch

Test

npm test

webView.isInspectable

Since iOS 16.4, the WKWebView insatnce needs to enable isInspectable to make WebView available. The sample app enables it.