1"use strict"; 2 3Object.defineProperty(exports, "__esModule", { 4 value: true 5}); 6exports.setProvisioningProfileForPbxproj = setProvisioningProfileForPbxproj; 7function _fs() { 8 const data = _interopRequireDefault(require("fs")); 9 _fs = function () { 10 return data; 11 }; 12 return data; 13} 14function _Target() { 15 const data = require("./Target"); 16 _Target = function () { 17 return data; 18 }; 19 return data; 20} 21function _Xcodeproj() { 22 const data = require("./utils/Xcodeproj"); 23 _Xcodeproj = function () { 24 return data; 25 }; 26 return data; 27} 28function _string() { 29 const data = require("./utils/string"); 30 _string = function () { 31 return data; 32 }; 33 return data; 34} 35function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 36function setProvisioningProfileForPbxproj(projectRoot, { 37 targetName, 38 profileName, 39 appleTeamId, 40 buildConfiguration = 'Release' 41}) { 42 const project = (0, _Xcodeproj().getPbxproj)(projectRoot); 43 const nativeTargetEntry = targetName ? (0, _Target().findNativeTargetByName)(project, targetName) : (0, _Target().findFirstNativeTarget)(project); 44 const [nativeTargetId, nativeTarget] = nativeTargetEntry; 45 const quotedAppleTeamId = ensureQuotes(appleTeamId); 46 (0, _Xcodeproj().getBuildConfigurationsForListId)(project, nativeTarget.buildConfigurationList).filter(([, item]) => (0, _string().trimQuotes)(item.name) === buildConfiguration).forEach(([, item]) => { 47 item.buildSettings.PROVISIONING_PROFILE_SPECIFIER = `"${profileName}"`; 48 item.buildSettings.DEVELOPMENT_TEAM = quotedAppleTeamId; 49 item.buildSettings.CODE_SIGN_IDENTITY = '"iPhone Distribution"'; 50 item.buildSettings.CODE_SIGN_STYLE = 'Manual'; 51 }); 52 Object.entries((0, _Xcodeproj().getProjectSection)(project)).filter(_Xcodeproj().isNotComment).forEach(([, item]) => { 53 if (!item.attributes.TargetAttributes[nativeTargetId]) { 54 item.attributes.TargetAttributes[nativeTargetId] = {}; 55 } 56 item.attributes.TargetAttributes[nativeTargetId].DevelopmentTeam = quotedAppleTeamId; 57 item.attributes.TargetAttributes[nativeTargetId].ProvisioningStyle = 'Manual'; 58 }); 59 _fs().default.writeFileSync(project.filepath, project.writeSync()); 60} 61const ensureQuotes = value => { 62 if (!value.match(/^['"]/)) { 63 return `"${value}"`; 64 } 65 return value; 66}; 67//# sourceMappingURL=ProvisioningProfile.js.map