https://github.com/appium/ios-uicatalog
Apple UICatalog App
https://github.com/appium/ios-uicatalog
Last synced: 11 months ago
JSON representation
Apple UICatalog App
- Host: GitHub
- URL: https://github.com/appium/ios-uicatalog
- Owner: appium
- License: apache-2.0
- Created: 2015-05-04T22:13:03.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-03-29T11:14:50.000Z (over 2 years ago)
- Last Synced: 2025-05-26T01:17:12.210Z (about 1 year ago)
- Language: Objective-C
- Size: 11.2 MB
- Stars: 82
- Watchers: 21
- Forks: 84
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ios-uicatalog
A simple test application for iOS, used by [Appium](https://github.com/appium/appium)
for certain tests. For more information, see the [docs for UICatalog](./UICatalog/uicatalog-info.md)
or the [docs for UIKitCatalog](./UIKitCatalog/uicatalog-info.md)
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
1. `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.,
```json
{
"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.