-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathstep.yml
More file actions
193 lines (178 loc) · 6.98 KB
/
step.yml
File metadata and controls
193 lines (178 loc) · 6.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
title: Xcode Analyze
summary: |-
Find flaws and potential bugs in the source code of an app with the
static analyzer built into Xcode.
description: |-
The Step uses the static analyzer built directly into Xcode to analyze your app's source code: the static analyzer tries out thousands of possible code paths in a few seconds, reporting potential bugs that might have remained hidden or bugs that might be nearly impossible to replicate.
This process also identifies areas in your code that don't follow recommended API usage, such as Foundation, UIKit, and AppKit idioms.
### Configuring the Step
In most cases, you don't need to change the Step's configuration. The default input values work well if you added your iOS app on the website, using automatic configuration.
To make sure the Step works well for you:
1. Make sure the **Project (or Workspace) path** points to the path of the `.xcodeproj` or `.xcworkspace` file of your app, relative to the app's root directory.
1. Make sure the **Scheme name** input points to a valid shared Xcode scheme. Note that it must be a shared scheme!
1. Optionally, you can force the Step to use specific code signing identities. To do so, use the **Force code signing with Identity** and **Force code signing with Provisioning Profile** inputs.
For detailed instructions on their use, see the inputs themselves.
### Useful links
* [Running Xcode tests](https://devcenter.bitrise.io/testing/running-xcode-tests/)
* [Device testing for iOS](https://devcenter.bitrise.io/testing/device-testing-for-ios/)
### Related Steps
* [Xcode build for simulator](https://app.bitrise.io/integrations/steps/xcode-build-for-simulator)
* [Xcode Test for iOS](https://app.bitrise.io/integrations/steps/xcode-test)
website: https://github.com/bitrise-steplib/steps-xcode-analyze
source_code_url: https://github.com/bitrise-steplib/steps-xcode-analyze
support_url: https://github.com/bitrise-steplib/steps-xcode-analyze/issues
host_os_tags:
- osx-10.10
project_type_tags:
- cordova
- flutter
- ionic
- ios
- kotlin-multiplatform
- macos
- react-native
type_tags:
- test
is_requires_admin_user: false
is_always_run: false
is_skippable: false
toolkit:
go:
package_name: github.com/bitrise-steplib/steps-xcode-analyze
inputs:
- workdir: $BITRISE_SOURCE_DIR
opts:
title: Working directory
summary: Working directory of the Step
description: |-
Working directory of the Step.
If you leave it empty, the default working directory will be used.
is_required: false
is_expand: true
- project_path: $BITRISE_PROJECT_PATH
opts:
title: Xcode project or workspace path
summary: The path of the `.xcodeproj` or `.xcworkspace` file
description: |-
The path to your app's `.xcodeproj` or `.xcworkspace` file, relative to
the Step's working directory (if one is specified).
is_required: true
is_expand: true
is_dont_change_value: false
- scheme: $BITRISE_SCHEME
opts:
title: Scheme name
summary: The Xcode scheme to use.
description: |-
The Xcode scheme to use for the analysis.
**IMPORTANT**: The scheme must be marked as shared in Xcode!
is_required: true
is_expand: true
is_dont_change_value: false
- is_clean_build: "no"
opts:
title: Do a clean Xcode build before testing?
description: |-
Do a clean Xcode build before testing?
value_options:
- "yes"
- "no"
is_required: true
is_expand: true
is_dont_change_value: false
- force_code_sign_identity:
opts:
title: Force code signing with identity
description: |-
Force the `xcodebuild` command to use specified code signing identity.
Specify a code signing identity as a full ID (for example, `iPhone Developer: Bitrise Bot (VV2J4SV8V4)`)
or specify a code signing group (for example, `iPhone Developer` or `iPhone Distribution`).
- force_provisioning_profile:
opts:
title: Force code signing with provisioning profile
description: |-
Force the `xcodebuild` command to use a specified provisioning profile.
You must use the provisioning profile's UUID. The profile's name is NOT accepted by xcodebuild.
To get your UUID:
- In Xcode select your project -> Build Settings -> Code Signing
- Select the desired Provisioning Profile, then scroll down in profile list and click on Other...
- The popup will show your profile's UUID.
Format example:
- c5be4123-1234-4f9d-9843-0d9be985a068
- disable_codesign: "yes"
opts:
title: Disable code signing
description: |-
In order to skip code signing, set this option to `yes`.
value_options:
- "yes"
- "no"
- disable_index_while_building: "yes"
opts:
title: Disable indexing during the build
summary: Disable indexing during the build run to potentially make the build faster.
description: |-
Add `COMPILER_INDEX_STORE_ENABLE=NO` flag to the `xcodebuild` command which will disable the indexing during the build.
Indexing is needed for
* Autocomplete.
* Ability to quickly jump to definition.
* Get class and method help by alt clicking.
None of the above ar needed in a CI environment.
**Note:** In Xcode you can turn off the `Index-WhileBuilding` feature by disabling the `Enable Index-WhileBuilding Functionality` in the `Build Settings`.<br/>
In a CI environment you can disable it by adding `COMPILER_INDEX_STORE_ENABLE=NO` flag to the `xcodebuild` command.
value_options:
- "yes"
- "no"
- cache_level: swift_packages
opts:
title: Enable caching of Swift Package Manager packages
description: |-
Available options:
- `none` : Disable caching.
- `swift_packages` : Cache Swift PM packages added to the Xcode project.
value_options:
- none
- swift_packages
is_required: true
- xcodebuild_options:
opts:
category: Debug
title: Additional options for xcodebuild call
description: |-
Options added to the end of the xcodebuild call.
You can use multiple options, separated by a space
character. Example: `-xcconfig PATH -verbose`
- output_tool: xcpretty
opts:
category: Debug
title: Output tool
description: |-
If the input is set to `xcpretty`, the xcodebuild output will be prettified by xcpretty.
If the input is set to `xcodebuild`, the raw xcodebuild output will be printed.
value_options:
- xcpretty
- xcodebuild
is_required: true
is_expand: true
- output_dir: $BITRISE_DEPLOY_DIR
opts:
category: Debug
title: Output directory path
summary: Output directory path
description: This directory will contain the generated `raw-xcodebuild-output.log`.
is_required: true
- verbose_log: "no"
opts:
category: Debug
title: Enable verbose logging?
description: Enable verbose logging?
is_required: true
value_options:
- "yes"
- "no"
outputs:
- BITRISE_XCRESULT_PATH:
opts:
title: The path of the generated `.xcresult`
description: |-
The path of the generated `.xcresult`.