Page 1
#WWDC17
© 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
Chris D’Angelo, Xcode Engineer Itai Rom, Xcode Engineer Brent Shank, Xcode Engineer
•What’s New in Signing forXcode and Xcode Server • Session 403
Developer Tools
Page 5
Agenda
•Fundamentals
Page 6
Agenda
•Fundamentals•Development signing with Xcode Server
Page 7
Agenda
•Fundamentals•Development signing with Xcode Server•Manual signing improvements
Page 8
Agenda
•Fundamentals•Development signing with Xcode Server•Manual signing improvements•Distributing your app
Page 9
Agenda
•Fundamentals•Development signing with Xcode Server•Manual signing improvements•Distributing your app•Distribution signing with Xcode Server
Page 11
Why Code Sign?
Protects user privacy and security
Page 12
Why Code Sign?
Protects user privacy and security
Authenticates the app creator
Page 13
Why Code Sign?
Protects user privacy and security
Authenticates the app creator
Authorizes access to app services
Page 14
How Does the Code Signing System Work? App launch system check
Code Signature
Page 15
Code signature is valid
How Does the Code Signing System Work? App launch system check
Code Signature
Page 16
Code signature is valid
Allowed to use system services
How Does the Code Signing System Work? App launch system check
Code Signature
Page 17
Code signature is valid
Allowed to use system services
Allowed to run on device
How Does the Code Signing System Work? App launch system check
Code Signature
Page 21
What’s New in Xcode App Signing 2016 WWDC 2016
Page 22
Automatic Signing
✓
Page 23
Automatic Signing
✓ +Xcode Server
Page 24
✓Automatic Signing Xcode Server
+
Page 25
Manual Signing Xcode Server
+
Page 27
Xcode Server
Continuous integration powered by Xcode
Page 28
Xcode Server
Continuous integration powered by Xcode
Built into Xcode
Page 29
Xcode Server
Continuous integration powered by Xcode
Built into Xcode
Runs your tests on simulators and devices
Page 41
Code Signature
Automatic Signing
✓
Page 42
Manual Signing
Code Signature
Automatic Signing
✓
Page 43
Xcode Server Development signing
NEW
Page 44
Xcode Server Development signing
Automatic or manual signing
NEW
Page 45
Xcode Server Development signing
Automatic or manual signing
Xcode Server joins your team for development signing
NEW
Page 46
Xcode Server Development signing
Automatic or manual signing
Xcode Server joins your team for development signing
Supports two-factor authentication
NEW
Page 47
xcodebuild Development signing
NEW
Page 48
xcodebuild Development signing
Command line support for automatic signing repairs
NEW
Page 49
xcodebuild Development signing
Command line support for automatic signing repairs
xcodebuild -allowProvisioningUpdates
NEW
Page 50
xcodebuild Development signing
Command line support for automatic signing repairs
xcodebuild -allowProvisioningUpdates
xcodebuild -allowProvisioningDeviceRegistration
NEW
Page 51
•Setting up Xcode Server
Page 52
Xcode Server Setting up a server
•Add a server in Preferences
Page 53
Xcode Server Setting up a server
•Add a server in Preferences
Page 54
Xcode Server Setting up a client of the server
•Add a client account in Preferences
Page 55
Xcode Server Setting up a client of the server
•Add a client account in Preferences
Page 56
Xcode Server Setting up a bot
•Add a bot from the Product menu
Page 57
Xcode Server Setting up a bot
•Add a bot from the Product menu
Page 58
Xcode Server Viewing and editing your bot
•View and edit your bot in the Reports Navigator
Page 59
Xcode Server Viewing and editing your bot
•View and edit your bot in the Reports Navigator
Page 60
Xcode Server Configuring a bot for signing
•Authorize Xcode Server to use “Automatically manage signing for enabled targets”
Page 61
Xcode Server Configuring a bot for signing
•Authorize Xcode Server to use “Automatically manage signing for enabled targets”
Page 62
Xcode Server Configuring a bot for signing
•Xcode Server joins your team for development signing
Page 63
Xcode Server Configuring a bot for signing
•Xcode Server joins your team for development signing
Page 64
Xcode Server Configuring a bot for signing
•Allow “Automatically manage signing to auto-add devices”
Page 65
Xcode Server Configuring a bot for signing
•Allow “Automatically manage signing to auto-add devices”
Page 68
✓Automatic Signing
Page 69
Manual SigningImproved
Page 70
Manual Signing Xcode improvements
NEW
Page 71
Manual Signing Xcode improvements
Manage certificates in the accounts preferences
NEW
Page 72
Manual Signing Xcode improvements
Manage certificates in the accounts preferences
Preview and download profiles in the project editor
NEW
Page 73
Manual Signing Xcode improvements
Manage certificates in the accounts preferences
Preview and download profiles in the project editor
NEW
Page 74
Manual Signing Xcode Server improvements
Copy Certificates and Profiles toserver for manual signing
NEW
Page 75
Manual Signing Build settings
Page 76
Manual Signing Build settings
DEVELOPMENT_TEAM to set your team identifier
Page 77
Manual Signing Build settings
DEVELOPMENT_TEAM to set your team identifier
PROVISIONING_PROFILE_SPECIFIER to set your profile name
Page 78
Manual Signing Build settings
DEVELOPMENT_TEAM to set your team identifier
PROVISIONING_PROFILE_SPECIFIER to set your profile name
CODE_SIGN_IDENTITY to set your certificate
Page 79
Manual Signing Build settings
NEW
Page 80
Manual Signing Build settings
CODE_SIGN_STYLE to set automatic or manual
NEW
Page 81
Manual Signing Build settings
CODE_SIGN_STYLE to set automatic or manual
For advanced setups
NEW
Page 82
Itai Rom, Xcode Engineer
•Distributing Your App
Page 86
Archive
Development signed (recommended)
Page 87
Archive
Development signed (recommended)
Machine code and bitcode
Page 88
Archive
Development signed (recommended)
Machine code and bitcode
Debugging symbols
Page 91
Distribution Signed
Page 95
Distributing Your App Choices during distribution
Page 96
Distributing Your App Choices during distribution
Distribution method
Page 97
Distributing Your App Choices during distribution
Distribution method
Signing, profiles, and entitlements
Page 98
Distributing Your App Choices during distribution
Distribution method
Signing, profiles, and entitlements
Bitcode and thinning
Page 99
Distributing Your App Choices during distribution
Distribution method
Signing, profiles, and entitlements
Bitcode and thinning
On demand resources
Page 100
Distributing Your App Choices during distribution
Distribution method
Signing, profiles, and entitlements
Bitcode and thinning
On demand resources
Symbols
Page 102
+✓Automatic Signing Distribution
Page 103
+Distribution
✓Automatic Signing
Page 104
+DistributionManual Signing
Page 105
Distributing Your App NEW
Page 106
Distributing Your App
Automatic and manual re-signing
NEW
Page 107
Distributing Your App
Automatic and manual re-signing
Streamlined workflow
NEW
Page 108
Distributing Your App
Automatic and manual re-signing
Streamlined workflow
Improved visibility and error presentation
NEW
Page 109
Distributing Your App
Automatic and manual re-signing
Streamlined workflow
Improved visibility and error presentation
Enhanced export
NEW
Page 110
Distributing Your App
Automatic and manual re-signing
Streamlined workflow
Improved visibility and error presentation
Enhanced export
Command line support
NEW
Page 111
Distributing Your App Automatic signing
Page 112
Distributing Your App Automatic signing
Signing works just like development signing
Page 113
Distributing Your App Automatic signing
Signing works just like development signing
Xcode-managed distribution profiles
Page 114
Distributing Your App Automatic signing
Signing works just like development signing
Xcode-managed distribution profiles
Create and share distribution certificates
Page 115
Distributing Your App Automatic signing
Signing works just like development signing
Xcode-managed distribution profiles
Create and share distribution certificates
Xcode never revokes distribution certificates
Page 116
Distribution Improvements Error handling
Page 117
Distribution Improvements Error handling
Page 118
Distributing Your App Enhanced export
Page 119
Distributing Your App Enhanced export
Your .ipa
Page 120
Distributing Your App Enhanced export
Your .ipa
DistributionSummary.plist
Page 121
Distributing Your App Enhanced export
Your .ipa
DistributionSummary.plist
Packaging.log
Page 122
Distributing Your App Enhanced export
Your .ipa
DistributionSummary.plist
Packaging.log
ExportOptions.plist
Page 123
xcodebuild -exportArchive -archivePath your.xcarchive -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates
Distributing Your App Command line support
Page 124
xcodebuild -exportArchive -archivePath your.xcarchive -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates
Distributing Your App Command line support
Page 125
xcodebuild -exportArchive -archivePath your.xcarchive -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates
Distributing Your App Command line support
Page 127
Distribution
+Manual Signing
Page 128
Distributing Your App Manual signing
Page 129
Distributing Your App Manual signing
Select certificates and provisioning profiles
Page 130
Distributing Your App Manual signing
Select certificates and provisioning profiles
Xcode won’t create or modify manual profiles
Page 131
Distributing Your App Manual signing
Select certificates and provisioning profiles
Xcode won’t create or modify manual profiles
Works with xcodebuild
Page 132
Distributing Your App Manual signing
Select certificates and provisioning profiles
Xcode won’t create or modify manual profiles
Works with xcodebuild
Required if archive was manually signed
Page 133
Distributing Your App Manual distribution signing
Page 134
Distributing Your App Manual distribution signing
Page 135
Distributing Your App Manual distribution signing
Page 136
Distributing Your App Manual distribution signing with xcodebuild
Page 137
Distributing Your App Manual distribution signing with xcodebuild
Page 138
Distributing Your App Manual distribution signing with xcodebuild
Page 140
Brent Shank, Xcode Engineer
•Distribution Signing with Xcode Server
Page 141
Xcode Server
+Automatic Signing Distribution
+✓
Page 145
Automatic Signing
✓
Page 146
Automatic Signing
✓
Page 147
Xcode Server Distribution signing
Copy distribution certificates to server
Automatic signing creates and updates distribution profiles
Upload ExportOptions.plist
NEW
Page 148
Xcode Server Distribution signing methods
Page 149
Xcode Server Distribution signing methods
Page 153
Review
•Development signing with Xcode Server
Page 154
Review
•Development signing with Xcode Server•Manual signing improvements
Page 155
Review
•Development signing with Xcode Server•Manual signing improvements•Distributing your app
Page 156
Review
•Development signing with Xcode Server•Manual signing improvements•Distributing your app•Distribution signing with Xcode Server
Page 157
More Informationhttps://developer.apple.com/wwdc17/403
Page 158
Related Sessions
What's New in iTunes Connect Hall 3 Wednesday 5:10PM
What's New in Device Configuration, Deployment, and Management Grand Ballroom A Thursday 1:50PM
What’s New in Testing Hall 2 Thursday 3:10PM
What’s New in Xcode App Signing WWDC 2016
Advanced Testing and Continuous Integration WWDC 2016
Continuous Integration with Xcode 6 WWDC 2014
Page 159
Labs
Building, Signing, and Distributing Your App with Xcode Lab Technology Lab K Tue 4:10PM–6:00PM
Building, Signing, and Distributing Your App with Xcode Lab Technology Lab K Wed 12:00PM–3:00PM
Source Control, Simulator, Testing, and Continuous Integration with Xcode Lab Technology Lab E Wed 4:10PM–6:00PM
Source Control, Simulator, Testing, and Continuous Integration with Xcode Lab Technology Lab K Thu 4:10PM–6:00PM