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
xcodebuildto match your project. You should at least replaceMyAppandMyScheme.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
-archivePathto set a different output location for the archive, and you can use> MyApp.log.txtto set a different output location for the build log of the archive. -
Run
gen-irwith your build log and the archive path in the following command. EnsureMyApp.log.txtpoints to the exported build log, and thatMyApp.xcarchive/is the newly-createdxcarchive.Xcode workspace:
gen-ir MyApp.log.txt MyApp.xcarchive/ --project-path MyApp.xcworkspaceXcode project:
gen-ir MyApp.log.txt MyApp.xcarchive/ --project-path MyApp.xcodeproj -
Create a new archive. For example, run the following
zipcommand. Ensure you place thexcarchiveat 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.lockfile to the root of another zipped archive. Keep this new zipped archive separate from the one that contains the.xcarchivefolder, as shown in the following command:zip MyApp-Podfile.zip Podfile.lockUpload
MyApp-Podfile.zipto the same scan as theMyApp.zipthat you previously uploaded.