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