Use xcodebuild to package iOS apps
To package your iOS applications the quickest way, you can use xcodebuild
in your terminal.
Before you begin:
-
You have installed the Command Line Tools for Xcode.
-
You have installed or updated gen-ir.
To complete this task:
-
Open your terminal, and then change directory to your project.
-
Run the following command:
xcodebuild clean
-
If you have an Xcode Workspace, run the following command:
noteYou must change the invocation of
xcodebuild
to match your project. You should at least replaceMyApp
andMyScheme
.xcodebuild archive \
-workspace MyApp.xcworkspace \
-scheme MyScheme \
-destination generic/platform=iOS \
-configuration Debug \
-archivePath MyApp.xcarchive \
DEBUG_INFORMATION_FORMAT=dwarf-with-dsym \
ENABLE_BITCODE=NO \
> MyApp.log.txtOr, if you have an Xcode project, run the following command:
xcodebuild archive \
-project MyApp.xcodeproj \
-scheme MyScheme \
-destination generic/platform=iOS \
-configuration Debug \
-archivePath MyApp.xcarchive \
DEBUG_INFORMATION_FORMAT=dwarf-with-dsym \
ENABLE_BITCODE=NO \
> MyApp.log.txtOptionally, you can use
-archivePath
to set a different output location for the archive, and you can use> MyApp.log.txt
to set a different output location for the build log of the archive. -
Run
gen-ir
with your build log and the archive path in the following command. EnsureMyApp.log.txt
points to the exported build log, and thatMyApp.xcarchive/
is the newly-createdxcarchive
.Xcode workspace:
gen-ir MyApp.log.txt MyApp.xcarchive/ --project-path MyApp.xcworkspace
Xcode project:
gen-ir MyApp.log.txt MyApp.xcarchive/ --project-path MyApp.xcodeproj
-
Create a new archive. For example, run the following
zip
command. Ensure you place thexcarchive
at the root of this ZIP file and do not zip subfolders or add additional paths.zip -r MyApp.zip MyApp.xcarchive
-
Upload your iOS application to the Veracode Platform for analysis. See how to submit an application for analysis.
-
Optionally, to upload your archives with Veracode Software Composition Analysis, add the
Podfile.lock
file to the root of another zipped archive. Keep this new zipped archive separate from the one that contains the.xcarchive
folder, as shown in the following command:zip MyApp-Podfile.zip Podfile.lock
Upload
MyApp-Podfile.zip
to the same scan as theMyApp.zip
that you previously uploaded.