mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 23:59:08 +00:00
WIP
This commit is contained in:
11
app.json
11
app.json
@@ -133,7 +133,16 @@
|
||||
["./plugins/withChangeNativeAndroidTextToWhite.js"],
|
||||
["./plugins/withAndroidManifest.js"],
|
||||
["./plugins/withTrustLocalCerts.js"],
|
||||
["./plugins/withGradleProperties.js"]
|
||||
["./plugins/withGradleProperties.js"],
|
||||
[
|
||||
"./plugins/addSPMDependenciesToMainTarget",
|
||||
{
|
||||
"version": "0.40.0",
|
||||
"repositoryUrl": "https://github.com/Alexk2309/mpvkit-private",
|
||||
"repoName": "mpvkit-private",
|
||||
"productName": "MPVKit"
|
||||
}
|
||||
]
|
||||
],
|
||||
"experiments": {
|
||||
"typedRoutes": true
|
||||
|
||||
104
plugins/addSPMDependenciesToMainTarget/app.plugin.js
Normal file
104
plugins/addSPMDependenciesToMainTarget/app.plugin.js
Normal file
@@ -0,0 +1,104 @@
|
||||
const { withXcodeProject } = require("@expo/config-plugins");
|
||||
|
||||
const addSPMDependenciesToMainTarget = (config, options) =>
|
||||
withXcodeProject(config, (config) => {
|
||||
const { version, repositoryUrl, repoName, productName } = options;
|
||||
const xcodeProject = config.modResults;
|
||||
|
||||
// update XCRemoteSwiftPackageReference
|
||||
const spmReferences =
|
||||
xcodeProject.hash.project.objects.XCRemoteSwiftPackageReference;
|
||||
|
||||
if (!spmReferences) {
|
||||
xcodeProject.hash.project.objects.XCRemoteSwiftPackageReference = {};
|
||||
}
|
||||
|
||||
const packageReferenceUUID = xcodeProject.generateUuid();
|
||||
|
||||
xcodeProject.hash.project.objects.XCRemoteSwiftPackageReference[
|
||||
`${packageReferenceUUID} /* XCRemoteSwiftPackageReference "${repoName}" */`
|
||||
] = {
|
||||
isa: "XCRemoteSwiftPackageReference",
|
||||
repositoryURL: repositoryUrl,
|
||||
requirement: {
|
||||
kind: "upToNextMajorVersion",
|
||||
minimumVersion: version,
|
||||
},
|
||||
};
|
||||
|
||||
// update XCSwiftPackageProductDependency
|
||||
const spmProducts =
|
||||
xcodeProject.hash.project.objects.XCSwiftPackageProductDependency;
|
||||
|
||||
if (!spmProducts) {
|
||||
xcodeProject.hash.project.objects.XCSwiftPackageProductDependency = {};
|
||||
}
|
||||
|
||||
const packageUUID = xcodeProject.generateUuid();
|
||||
|
||||
xcodeProject.hash.project.objects.XCSwiftPackageProductDependency[
|
||||
`${packageUUID} /* ${productName} */`
|
||||
] = {
|
||||
isa: "XCSwiftPackageProductDependency",
|
||||
// from step before
|
||||
package: `${packageReferenceUUID} /* XCRemoteSwiftPackageReference "${repoName}" */`,
|
||||
productName: productName,
|
||||
};
|
||||
|
||||
// update PBXProject
|
||||
const projectId = Object.keys(
|
||||
xcodeProject.hash.project.objects.PBXProject,
|
||||
).at(0);
|
||||
|
||||
if (
|
||||
!xcodeProject.hash.project.objects.PBXProject[projectId].packageReferences
|
||||
) {
|
||||
xcodeProject.hash.project.objects.PBXProject[
|
||||
projectId
|
||||
].packageReferences = [];
|
||||
}
|
||||
|
||||
xcodeProject.hash.project.objects.PBXProject[projectId].packageReferences =
|
||||
[
|
||||
...xcodeProject.hash.project.objects.PBXProject[projectId]
|
||||
.packageReferences,
|
||||
`${packageReferenceUUID} /* XCRemoteSwiftPackageReference "${repoName}" */`,
|
||||
];
|
||||
|
||||
// update PBXBuildFile
|
||||
const frameworkUUID = xcodeProject.generateUuid();
|
||||
|
||||
xcodeProject.hash.project.objects.PBXBuildFile[`${frameworkUUID}_comment`] =
|
||||
`${productName} in Frameworks`;
|
||||
xcodeProject.hash.project.objects.PBXBuildFile[frameworkUUID] = {
|
||||
isa: "PBXBuildFile",
|
||||
productRef: packageUUID,
|
||||
productRef_comment: productName,
|
||||
};
|
||||
|
||||
// update PBXFrameworksBuildPhase
|
||||
const buildPhaseId = Object.keys(
|
||||
xcodeProject.hash.project.objects.PBXFrameworksBuildPhase,
|
||||
).at(0);
|
||||
|
||||
if (
|
||||
!xcodeProject.hash.project.objects.PBXFrameworksBuildPhase[buildPhaseId]
|
||||
.files
|
||||
) {
|
||||
xcodeProject.hash.project.objects.PBXFrameworksBuildPhase[
|
||||
buildPhaseId
|
||||
].files = [];
|
||||
}
|
||||
|
||||
xcodeProject.hash.project.objects.PBXFrameworksBuildPhase[
|
||||
buildPhaseId
|
||||
].files = [
|
||||
...xcodeProject.hash.project.objects.PBXFrameworksBuildPhase[buildPhaseId]
|
||||
.files,
|
||||
`${frameworkUUID} /* ${productName} in Frameworks */`,
|
||||
];
|
||||
|
||||
return config;
|
||||
});
|
||||
|
||||
module.exports = addSPMDependenciesToMainTarget;
|
||||
5
plugins/addSPMDependenciesToMainTarget/package.json
Normal file
5
plugins/addSPMDependenciesToMainTarget/package.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "addSPMDependenciesToMainTarget",
|
||||
"version": "1.0.0",
|
||||
"main": "app.plugin.js"
|
||||
}
|
||||
Reference in New Issue
Block a user