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