{"_id":"590a04f7ed80861900cbc79a","parentDoc":null,"user":"55b2d5626862a10d00887af9","category":{"_id":"590a04f3ed80861900cbc742","project":"55b2d5baa74a380d00e290c4","version":"590a04f2ed80861900cbc737","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-09-30T01:17:42.531Z","from_sync":false,"order":12,"slug":"certificates-and-provisioning-profiles","title":"iOS Certificates and Provisioning"},"version":{"_id":"590a04f2ed80861900cbc737","project":"55b2d5baa74a380d00e290c4","__v":4,"createdAt":"2017-05-03T16:27:30.085Z","releaseDate":"2017-05-03T16:27:30.085Z","categories":["590a04f3ed80861900cbc738","590a04f3ed80861900cbc739","590a04f3ed80861900cbc73a","590a04f3ed80861900cbc73b","590a04f3ed80861900cbc73c","590a04f3ed80861900cbc73d","590a04f3ed80861900cbc73e","590a04f3ed80861900cbc73f","590a04f3ed80861900cbc740","590a04f3ed80861900cbc741","590a04f3ed80861900cbc742","590a04f3ed80861900cbc743","590a04f3ed80861900cbc744","590a04f3ed80861900cbc745","590a04f3ed80861900cbc746","590a04f3ed80861900cbc747","590a04f3ed80861900cbc748","590a04f3ed80861900cbc749","590a04f3ed80861900cbc74a","590a04f3ed80861900cbc74b","590a04f3ed80861900cbc74c","590a04f3ed80861900cbc74d","59124949de13f61900336a7a","5914b04e7c2c552d008b7104","5914b47242c6a22300b9dc20"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"7.0.0","version":"7"},"project":"55b2d5baa74a380d00e290c4","__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-09-30T18:31:31.096Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"Buddybuild takes away the pain of having to deal with code signing by [automatically uploading certificates](doc:inviting-testers) and [auto-syncing provisioning profiles](doc:apple-developer-portal-sync) so you can focus on building great apps instead.\n\nIf you'd like to learn more about code signing, read on.\n\n##Certificates and Private Keys\n\nDevice builds on iOS require to be signed with a developer's certificate. Code signing allows iOS devices to verify the app developer's identity.\n\nDeveloper identities are tied to two artifacts - a certificate and a private key that unlocks the certificate. Both these artifacts are probably already present if you've ever deployed builds to a device.\n\nTypically, there are two types of certificates available to iOS developers - one is a development certificate used for local development and testing - the other is a distribution one meant for builds destined for the App Store. \n\nIf you're part of the Apple Enterprise program, you will also have an Enterprise Distribution certificate that allows you to deploy apps within your enterprise.\n\nYou must code sign iOS applications before any iOS devices will accept them for installation.\n\nBuddybuild creates builds on your behalf, so we need access to your developer identities in order to sign builds. Managing these can be a pain. Use the [Automatic Cert-Uploader](doc:inviting-testers) to quickly and easily upload the relevant certificates to buddybuild.\n\n##Provisioning Profiles\n\nDevelopment devices also need to be included in the Provisioning Profile of the development signed app bundle before they can accept them for installation.\n\nProvisioning profiles are generated and signed by Apple. Any modifications - like adding a new device UDID - will require requesting Apple to regenerate the profile and then downloading and installing the generated profile on to your development machine - and then subsequently rebuilding your App with the updated profile.\n\nBuddybuild can also transparently manage these for you. Simple enable the [Auto-Syncing Provisioning Profiles](doc:apple-developer-portal-sync) feature to take advantage of this functionality!","excerpt":"","slug":"code-signing-demystified","type":"basic","title":"Code Signing 101"}
Buddybuild takes away the pain of having to deal with code signing by [automatically uploading certificates](doc:inviting-testers) and [auto-syncing provisioning profiles](doc:apple-developer-portal-sync) so you can focus on building great apps instead. If you'd like to learn more about code signing, read on. ##Certificates and Private Keys Device builds on iOS require to be signed with a developer's certificate. Code signing allows iOS devices to verify the app developer's identity. Developer identities are tied to two artifacts - a certificate and a private key that unlocks the certificate. Both these artifacts are probably already present if you've ever deployed builds to a device. Typically, there are two types of certificates available to iOS developers - one is a development certificate used for local development and testing - the other is a distribution one meant for builds destined for the App Store. If you're part of the Apple Enterprise program, you will also have an Enterprise Distribution certificate that allows you to deploy apps within your enterprise. You must code sign iOS applications before any iOS devices will accept them for installation. Buddybuild creates builds on your behalf, so we need access to your developer identities in order to sign builds. Managing these can be a pain. Use the [Automatic Cert-Uploader](doc:inviting-testers) to quickly and easily upload the relevant certificates to buddybuild. ##Provisioning Profiles Development devices also need to be included in the Provisioning Profile of the development signed app bundle before they can accept them for installation. Provisioning profiles are generated and signed by Apple. Any modifications - like adding a new device UDID - will require requesting Apple to regenerate the profile and then downloading and installing the generated profile on to your development machine - and then subsequently rebuilding your App with the updated profile. Buddybuild can also transparently manage these for you. Simple enable the [Auto-Syncing Provisioning Profiles](doc:apple-developer-portal-sync) feature to take advantage of this functionality!