You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.3 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setProvisioningProfileForPbxproj = setProvisioningProfileForPbxproj;
function _fs() {
const data = _interopRequireDefault(require("fs"));
_fs = function () {
return data;
};
return data;
}
function _Target() {
const data = require("./Target");
_Target = function () {
return data;
};
return data;
}
function _Xcodeproj() {
const data = require("./utils/Xcodeproj");
_Xcodeproj = function () {
return data;
};
return data;
}
function _string() {
const data = require("./utils/string");
_string = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function setProvisioningProfileForPbxproj(projectRoot, {
targetName,
profileName,
appleTeamId,
buildConfiguration = 'Release'
}) {
const project = (0, _Xcodeproj().getPbxproj)(projectRoot);
const nativeTargetEntry = targetName ? (0, _Target().findNativeTargetByName)(project, targetName) : (0, _Target().findFirstNativeTarget)(project);
const [nativeTargetId, nativeTarget] = nativeTargetEntry;
const quotedAppleTeamId = ensureQuotes(appleTeamId);
(0, _Xcodeproj().getBuildConfigurationsForListId)(project, nativeTarget.buildConfigurationList).filter(([, item]) => (0, _string().trimQuotes)(item.name) === buildConfiguration).forEach(([, item]) => {
item.buildSettings.PROVISIONING_PROFILE_SPECIFIER = `"${profileName}"`;
item.buildSettings.DEVELOPMENT_TEAM = quotedAppleTeamId;
item.buildSettings.CODE_SIGN_IDENTITY = '"iPhone Distribution"';
item.buildSettings.CODE_SIGN_STYLE = 'Manual';
});
Object.entries((0, _Xcodeproj().getProjectSection)(project)).filter(_Xcodeproj().isNotComment).forEach(([, item]) => {
if (!item.attributes.TargetAttributes[nativeTargetId]) {
item.attributes.TargetAttributes[nativeTargetId] = {};
}
item.attributes.TargetAttributes[nativeTargetId].DevelopmentTeam = quotedAppleTeamId;
item.attributes.TargetAttributes[nativeTargetId].ProvisioningStyle = 'Manual';
});
_fs().default.writeFileSync(project.filepath, project.writeSync());
}
const ensureQuotes = value => {
if (!value.match(/^['"]/)) {
return `"${value}"`;
}
return value;
};
//# sourceMappingURL=ProvisioningProfile.js.map