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:
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 appuiKitCatalog
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"
}
}
}
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.
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.
npm run watch
npm test
Since iOS 16.4, the WKWebView
insatnce needs to enable isInspectable
to make WebView available.
The sample app enables it.