{"id":16976,"date":"2019-08-30T18:25:30","date_gmt":"2019-08-30T12:55:30","guid":{"rendered":"https:\/\/mobisoftinfotech.com\/resources\/?p=16976"},"modified":"2019-09-03T17:10:42","modified_gmt":"2019-09-03T11:40:42","slug":"settings-configurations-using-xconfig-file","status":"publish","type":"post","link":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file","title":{"rendered":"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Technological c<\/span><span style=\"font-weight: 400;\">ompetence in software development means having adequate experience &amp; knowledge of methodological<\/span><span style=\"font-weight: 400;\"> traits like <\/span><b>Development, QA, Beta, <\/b><span style=\"font-weight: 400;\">and<\/span><b> Production.<\/b><span style=\"font-weight: 400;\"> For these various concepts, there are multiple server URLs, app icons, and configurations.&nbsp;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It is very obvious that you have to deal with managing these scenarios during an application development lifecycle gradually. To manage these multiple environments during the development of an iOS project is one of the best practices that a developer can ingest.&nbsp;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the process of software development and its lifecycle, you often come across juggling between these server URLs, enabling-disabling logging and other build settings that are needed to be changed from Development, Staging and Production environments.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, if your app needs to connect to the server which has three different base URLs&nbsp;<\/span><\/p>\n<p style=\"margin: 0;\"><b>Development<\/b><span style=\"font-weight: 400;\">:&nbsp; <\/span><a href=\"http:\/\/www.dev.com\/\" rel=\"nofollow\"><span style=\"font-weight: 400;\">www.dev.com<\/span><\/a><\/p>\n<p style=\"margin: 0;\"><b>Staging<\/b><span style=\"font-weight: 400;\">: <\/span>&nbsp;<a href=\"http:\/\/www.staging.com\/\" rel=\"nofollow\"><span style=\"font-weight: 400;\">www.staging.com<\/span><\/a><\/p>\n<p style=\"margin: 0;\"><b>Production<\/b><span style=\"font-weight: 400;\">:&nbsp; <\/span><a href=\"http:\/\/www.production.com\/\" rel=\"nofollow\"><span style=\"font-weight: 400;\">www.production.com<\/span><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Changing these URL\u2019s in your code every time for creating a build for a specific Environment can be tedious and error-prone.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So now we will have a look at how we can efficiently manage these Build variants, which change as per your Build Environment in Xcode.<\/span><\/p>\n<h2><b>Xcode Project<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Follow the steps mentioned below for managing different Build settings for different Environment to your Existing or New Xcode Project.<\/span><\/p>\n<p><b>Add Multiple Configuration<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Select Project Navigator on Left Panel \u2192 Select <\/span><b>Info<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Configuration<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Rename Debug to Development<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Rename Release to Staging<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Click on <\/span><b>+ \u2192 <\/b><span style=\"font-weight: 400;\">Select <\/span><b>Duplicate Staging Configuration<\/b><\/li>\n<\/ul>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-medium wp-image-16989\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-1.png\" alt width=\"300\" height=\"175\"><\/noscript><img decoding=\"async\" class=\"alignnone size-medium wp-image-16989 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20300%20175%22%3E%3C%2Fsvg%3E\" alt width=\"300\" height=\"175\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-1.png\"><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone  wp-image-16993\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-3.png\" alt=\"Manage Different Build Settings and Configurations-2\" width=\"314\" height=\"152\"><\/noscript><img decoding=\"async\" class=\"alignnone  wp-image-16993 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20314%20152%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-2\" width=\"314\" height=\"152\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-3.png\"><\/p>\n<h2><b>Add Multiple Config Files<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Select Project Navigator on Left Panel \u2192 Add New File \u2192 Configuration Settings File<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Add<\/span> <b>.<\/b><b>xconfig <\/b><span style=\"font-weight: 400;\">file for every configuration created (Development, Staging, and Production)<\/span><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone wp-image-16996 size-full\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-4.png\" alt=\"Manage Different Build Settings and Configurations\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone wp-image-16996 size-full lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-4.png\"><\/p>\n<p><span style=\"font-weight: 400;\">Select Project Navigator on Left Panel \u2192 Select <\/span><b>Info<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Select <\/span><b>Configuration files for your Project (Refer to the screenshot below)<\/b><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-16997\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-15.png\" alt=\"Manage Different Build Settings and Configurations-4\" width=\"855\" height=\"454\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-16997 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20454%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-4\" width=\"855\" height=\"454\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-15.png\"><br><span style=\"font-weight: 400;\"><br><\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you use Cocopods, you\u2019ll have to delete the Podfile.lock, .xcworkspace file, and the Pods\/ directory. <\/span><b>Make sure you are not deleting the Podfile.<\/b><\/p>\n<h2><b>Go to Terminal run pod install<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">You will get some warnings after running the pod install command&nbsp;<\/span><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone wp-image-16998 size-full\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-14.png\" alt=\"Manage Different Build Settings and Configurations\" width=\"855\" height=\"454\"><\/noscript><img decoding=\"async\" class=\"alignnone wp-image-16998 size-full lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20454%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations\" width=\"855\" height=\"454\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-14.png\"><\/p>\n<p><b>To fix this problem: <\/b><span style=\"font-weight: 400;\">Open the recently created .xcworkspace file and attach the .xcconfig path for Cocoapods in your own .xcconfig files (Development, Staging, and Production).&nbsp;<\/span><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-16999\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-10.png\" alt=\"Manage Different Build Settings and Configurations-6\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-16999 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-6\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-10.png\"><\/p>\n<h2><b>Scheme Creation<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Select Project \u2192 New Scheme, create a scheme for your configurations (Development, Production, and Staging).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Delete existing schemes that were created by Xcode by default.&nbsp;<\/span><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17000\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-9.png\" alt=\"Manage Different Build Settings and Configurations-7\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17000 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-7\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-9.png\"><br><br><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17001\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-2-1.png\" alt=\"Manage Different Build Settings and Configurations-8\" width=\"855\" height=\"285\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17001 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20285%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-8\" width=\"855\" height=\"285\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-2-1.png\"><\/p>\n<p><span style=\"font-weight: 400;\">After adding all the schemes, your Manage Scheme should look like below. Apart from this also make sure you select <\/span><b>Shared <\/b><span style=\"font-weight: 400;\">for all the schemes and under <\/span><b>Container <\/b><span style=\"font-weight: 400;\">select <\/span><b>ProjectName Workspace <\/b><span style=\"font-weight: 400;\">(This is required if your project uses Pods )<\/span><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17002\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-8.png\" alt=\"Manage Different Build Settings and Configurations-9\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17002 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-9\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-8.png\"><\/p>\n<p><span style=\"font-weight: 400;\">Make sure that you are targeting XCode project name. Structure your scheme to resemble your configuration.<\/span><\/p>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17003\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-12.png\" alt=\"Manage Different Build Settings and Configurations-10\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17003 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-10\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-12.png\"><span style=\"font-weight: 400;\"><br><\/span><\/p>\n<h2><b>Setting environment-specific keys<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">We need to declare environment-specific keys and values in the Info.p list file.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The values for these environment-specific keys need to be defined in respective<\/span><span style=\"font-weight: 400;\">&nbsp;<\/span><span style=\"font-weight: 400;\">.<\/span><span style=\"font-weight: 400;\">xconfig files.&nbsp;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Example:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">base_url =<\/span><a href=\"http:\/\/www.dev.com\/\" rel=\"nofollow\"><span style=\"font-weight: 400;\"> www.dev.com<\/span><\/a><span style=\"font-weight: 400;\">&nbsp;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">log_enabled = true<\/span><span style=\"font-weight: 400;\"><br><\/span><\/p>\n<p><br><span style=\"font-weight: 400;\"><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17005\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-11.png\" alt=\"Manage Different Build Settings and Configurations-11\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17005 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-11\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-11.png\"><\/span><br><br><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17006\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-6.png\" alt=\"Manage Different Build Settings and Configurations-12\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17006 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-12\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-6.png\"><br><br><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17007\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-5.png\" alt=\"Manage Different Build Settings and Configurations-13\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17007 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-13\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-5.png\"><br><br><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17024\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-7.png\" alt=\"Manage Different Build Settings and Configurations-14\" width=\"855\" height=\"363\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17024 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20363%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-14\" width=\"855\" height=\"363\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-7.png\"><\/p>\n<h2>Accessing environment-specific keys&nbsp;<\/h2>\n<p><noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17008\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-13.png\" alt=\"Manage Different Build Settings and Configurations-15\" width=\"855\" height=\"713\"><\/noscript><img decoding=\"async\" class=\"alignnone size-full wp-image-17008 lazyload\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20713%22%3E%3C%2Fsvg%3E\" alt=\"Manage Different Build Settings and Configurations-15\" width=\"855\" height=\"713\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Image-13.png\"><br><br><\/p>\n<h2>Accessing keys in code<\/h2>\n<p><b>Environment().configuration(Plist.loggingEnabled) <br>Environment().configuration(Plist.baseUrl)<\/b><\/p>\n<h2><b>Conclusion<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Configuration is an essential part of most applications. By implementing an adaptable structure for providing configuration values, modifying them based on the environment, we can have a clean separation of code &amp; configuration. It is always better if you spend a bit more time configuring these things at once rather than constantly revisiting &amp; correcting the things in the future.&nbsp;<\/span><\/p>\n\n<p><b><a href=\"https:\/\/mobisoftinfotech.com\/resources\/MultiSchemeProject\/MultiSchemeProject.zip\" download>Download Source Code<\/a><b><\/b><\/b><\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Technological competence in software development means having adequate experience &amp; knowledge of methodological traits like Development, QA, Beta, and Production. For these various concepts, there are multiple server URLs, app icons, and configurations.&nbsp; It is very obvious that you have to deal with managing these scenarios during an application development lifecycle gradually. To manage these [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":17034,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[450],"tags":[1127,1126,1125],"class_list":["post-16976","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mguide","tag-configurations-for-ios-project","tag-settings-for-ios-project","tag-xconfig-file"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?<\/title>\n<meta name=\"description\" content=\"Changing URLs in your code every time for creating a build for a specific Environment can be tedious and error-prone. Learn how efficiently manage these Build variants, which change as per your Build Environment in Xcode.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?\" \/>\n<meta property=\"og:description\" content=\"Changing URLs in your code every time for creating a build for a specific Environment can be tedious and error-prone. Learn how efficiently manage these Build variants, which change as per your Build Environment in Xcode.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\" \/>\n<meta property=\"og:site_name\" content=\"Mobisoft Infotech\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-30T12:55:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-03T11:40:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png\" \/>\n\t<meta property=\"og:image:width\" content=\"855\" \/>\n\t<meta property=\"og:image:height\" content=\"392\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Prashant Telangi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prashant Telangi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#article\",\"isPartOf\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\"},\"author\":{\"name\":\"Prashant Telangi\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070\"},\"headline\":\"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?\",\"datePublished\":\"2019-08-30T12:55:30+00:00\",\"dateModified\":\"2019-09-03T11:40:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\"},\"wordCount\":580,\"image\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png\",\"keywords\":[\"Configurations for iOS Project\",\"Settings for iOS Project\",\"xconfig file\"],\"articleSection\":[\"MGuide\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\",\"name\":\"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?\",\"isPartOf\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage\"},\"image\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png\",\"datePublished\":\"2019-08-30T12:55:30+00:00\",\"dateModified\":\"2019-09-03T11:40:42+00:00\",\"author\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070\"},\"description\":\"Changing URLs in your code every time for creating a build for a specific Environment can be tedious and error-prone. Learn how efficiently manage these Build variants, which change as per your Build Environment in Xcode.\",\"breadcrumb\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png\",\"contentUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png\",\"width\":855,\"height\":392,\"caption\":\"Settings and Configurations for iOS Project\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mobisoftinfotech.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#website\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/\",\"name\":\"Mobisoft Infotech\",\"description\":\"Discover Mobility\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mobisoftinfotech.com\/resources\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070\",\"name\":\"Prashant Telangi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g\",\"caption\":\"Prashant Telangi\"},\"sameAs\":[\"http:\/\/www.mobisoftinfotech.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?","description":"Changing URLs in your code every time for creating a build for a specific Environment can be tedious and error-prone. Learn how efficiently manage these Build variants, which change as per your Build Environment in Xcode.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file","og_locale":"en_US","og_type":"article","og_title":"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?","og_description":"Changing URLs in your code every time for creating a build for a specific Environment can be tedious and error-prone. Learn how efficiently manage these Build variants, which change as per your Build Environment in Xcode.","og_url":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file","og_site_name":"Mobisoft Infotech","article_published_time":"2019-08-30T12:55:30+00:00","article_modified_time":"2019-09-03T11:40:42+00:00","og_image":[{"width":855,"height":392,"url":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png","type":"image\/png"}],"author":"Prashant Telangi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prashant Telangi","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#article","isPartOf":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file"},"author":{"name":"Prashant Telangi","@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070"},"headline":"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?","datePublished":"2019-08-30T12:55:30+00:00","dateModified":"2019-09-03T11:40:42+00:00","mainEntityOfPage":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file"},"wordCount":580,"image":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage"},"thumbnailUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png","keywords":["Configurations for iOS Project","Settings for iOS Project","xconfig file"],"articleSection":["MGuide"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file","url":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file","name":"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?","isPartOf":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage"},"image":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage"},"thumbnailUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png","datePublished":"2019-08-30T12:55:30+00:00","dateModified":"2019-09-03T11:40:42+00:00","author":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070"},"description":"Changing URLs in your code every time for creating a build for a specific Environment can be tedious and error-prone. Learn how efficiently manage these Build variants, which change as per your Build Environment in Xcode.","breadcrumb":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#primaryimage","url":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png","contentUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2019\/08\/Settings-and-Configurations-for-iOS-Project.png","width":855,"height":392,"caption":"Settings and Configurations for iOS Project"},{"@type":"BreadcrumbList","@id":"https:\/\/mobisoftinfotech.com\/resources\/mguide\/settings-configurations-using-xconfig-file#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mobisoftinfotech.com\/resources\/"},{"@type":"ListItem","position":2,"name":"How to Manage Different Build Settings and Configurations for iOS Project Using .xconfig file?"}]},{"@type":"WebSite","@id":"https:\/\/mobisoftinfotech.com\/resources\/#website","url":"https:\/\/mobisoftinfotech.com\/resources\/","name":"Mobisoft Infotech","description":"Discover Mobility","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mobisoftinfotech.com\/resources\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070","name":"Prashant Telangi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g","caption":"Prashant Telangi"},"sameAs":["http:\/\/www.mobisoftinfotech.com"]}]}},"_links":{"self":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/16976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/comments?post=16976"}],"version-history":[{"count":39,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/16976\/revisions"}],"predecessor-version":[{"id":17041,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/16976\/revisions\/17041"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/media\/17034"}],"wp:attachment":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/media?parent=16976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/categories?post=16976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/tags?post=16976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}