This document discusses provisioning profiles and how they are used in iOS development. It begins with an overview of what provisioning profiles are and how they are used for different app and extension types. It then covers important values contained within provisioning profiles like identifiers, entitlements, and developer certificates. The document provides tips for installing, viewing, and managing provisioning profiles using the terminal, Xcode, and automation scripts. It advocates for a convention over configuration approach by naming profiles consistently and using a script to automatically configure Xcode projects.
"Impact of front-end architecture on development cost", Viktor Turskyi
Provisioning Profile Stockholm Syndrome
1. Provisioning Profile Stockholm Syndrome
This presentation contains confidential information intended only for the recipient(s) named above. Any other distribution, re-transmission,
copying or disclosure of this message is strictly prohibited. If you have received this transmission in error, please notify me immediately by
telephone or return email, and delete this presentation from your system.
30. Xcode
HOW DOES IT SEE PROFILES?
CODE_SIGN_IDENTITY = "iPhone Developer";
PROVISIONING_PROFILE = "";
31. Xcode
HOW DOES IT SEE PROFILES?
CODE_SIGN_IDENTITY = "iPhone Developer: Jay Graves (E6L876QFM6)";
PROVISIONING_PROFILE = "0FEB5831-22D3-4B1D-A973-59ED243E8103";
34. What does all this mean?
•Automatic Profiles
•Good if you don’t have multiple projects.
•It can select the wrong profile.
•Rules on automatic selection are not defined.
•Specific Profiles
•Much more control over which profile is selected.
•Can be a pain to update the project file every time a profile is updated.
38. Convention over Configuration
• An Xcode Project can have multiple targets
• Every target can have multiple configurations
• Every target/configuration combination “should” have a provisioning profile
Name your profiles accordingly.
PROJECT-TARGET-CONFIGURATION.mobileprovision
39. Convention over Configuration
USE A SCRIPT
Run this script to set all the profiles properly.
set_project_profiles.sh -b -p Your.xcodeproj
http://bit.ly/ProjectProfiles
41. Convention over Configuration
HOW DOES IT WORK?
Magic scripts are great but how does it work?
• Create a folder at the root of every project called “CodeSign”.
• Put every profile in that directory.
• Script copies those profiles into ~/Library/MobileDevice/Provisioning Profiles
• Script inspects Xcode project for a list of Targets,
• Script gets a list of Configurations for each Target.
42. Convention over Configuration
HOW DOES IT WORK?
• Script checks for any installed profile that follows the naming convention.
• Script queries the UUID for that profile.
• Script modifies the Xcode project with the appropriate UUID per Target/
Configuration.