mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
ci: make MDC ipa
This commit is contained in:
42
.github/workflows/beta.yml
vendored
42
.github/workflows/beta.yml
vendored
@@ -42,14 +42,21 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
xcode-version: ${{ matrix.version }}
|
xcode-version: ${{ matrix.version }}
|
||||||
|
|
||||||
- name: Build SideStore
|
- name: "[Normal] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make build | xcpretty && exit ${PIPESTATUS[0]}
|
run: |
|
||||||
|
make build | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa
|
||||||
|
|
||||||
- name: Fakesign app
|
- name: Enable MDC
|
||||||
run: make fakesign
|
run: make enable_mdc
|
||||||
|
|
||||||
- name: Convert to IPA
|
- name: "[MDC] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make ipa
|
run: |
|
||||||
|
make clean
|
||||||
|
make build DSYM_FOLDER=./MDC-dSYM | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa IPA_NAME=SideStore-MDC.ipa
|
||||||
|
|
||||||
- name: Get current date
|
- name: Get current date
|
||||||
id: date
|
id: date
|
||||||
@@ -67,7 +74,9 @@ jobs:
|
|||||||
tag_name: ${{ github.ref_name }}
|
tag_name: ${{ github.ref_name }}
|
||||||
draft: true
|
draft: true
|
||||||
prerelease: true
|
prerelease: true
|
||||||
files: SideStore.ipa
|
files: |
|
||||||
|
SideStore.ipa
|
||||||
|
SideStore-MDC.ipa
|
||||||
body: |
|
body: |
|
||||||
<!-- NOTE: to reset SideSource cache, go to `https://apps.sidestore.io/reset-cache/nightly/<sidesource key>`. This is not included in the GitHub Action since it makes draft releases so they can be edited and have a changelog. -->
|
<!-- NOTE: to reset SideSource cache, go to `https://apps.sidestore.io/reset-cache/nightly/<sidesource key>`. This is not included in the GitHub Action since it makes draft releases so they can be edited and have a changelog. -->
|
||||||
Beta builds are hand-picked builds from development commits that will allow you to try out new features earlier than normal. However, **they might contain bugs and other issues. Use at your own risk!**
|
Beta builds are hand-picked builds from development commits that will allow you to try out new features earlier than normal. However, **they might contain bugs and other issues. Use at your own risk!**
|
||||||
@@ -86,14 +95,29 @@ jobs:
|
|||||||
- name: Add version to IPA file name
|
- name: Add version to IPA file name
|
||||||
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Add version to MDC IPA file name
|
||||||
|
run: mv SideStore-MDC.ipa SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload SideStore.ipa Artifact
|
- name: Upload SideStore.ipa Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload *.dSYM Artifact
|
- name: Upload SideStore-MDC.ipa Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
path: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Upload dSYM Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
||||||
path: ./*.dSYM/
|
path: ./dSYM/*
|
||||||
|
|
||||||
|
- name: Upload MDC-dSYM Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}-dSYM
|
||||||
|
path: ./MDC-dSYM/*
|
||||||
|
|||||||
44
.github/workflows/nightly.yml
vendored
44
.github/workflows/nightly.yml
vendored
@@ -40,7 +40,7 @@ jobs:
|
|||||||
run: sed -e 's/= Neon/= Steel/' -i '' ./AltStore.xcodeproj/project.pbxproj
|
run: sed -e 's/= Neon/= Steel/' -i '' ./AltStore.xcodeproj/project.pbxproj
|
||||||
|
|
||||||
- name: Enable unstable features
|
- name: Enable unstable features
|
||||||
run: echo '\nSWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) UNSTABLE' >> ./Build.xcconfig
|
run: make enable_unstable
|
||||||
|
|
||||||
- name: Get version
|
- name: Get version
|
||||||
id: version
|
id: version
|
||||||
@@ -54,14 +54,21 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
xcode-version: ${{ matrix.version }}
|
xcode-version: ${{ matrix.version }}
|
||||||
|
|
||||||
- name: Build SideStore
|
- name: "[Normal] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make build | xcpretty && exit ${PIPESTATUS[0]}
|
run: |
|
||||||
|
make build | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa
|
||||||
|
|
||||||
- name: Fakesign app
|
- name: Enable MDC
|
||||||
run: make fakesign
|
run: make enable_mdc
|
||||||
|
|
||||||
- name: Convert to IPA
|
- name: "[MDC] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make ipa
|
run: |
|
||||||
|
make clean
|
||||||
|
make build DSYM_FOLDER=./MDC-dSYM | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa IPA_NAME=SideStore-MDC.ipa
|
||||||
|
|
||||||
- name: Get current date
|
- name: Get current date
|
||||||
id: date
|
id: date
|
||||||
@@ -78,7 +85,9 @@ jobs:
|
|||||||
release: "Nightly"
|
release: "Nightly"
|
||||||
tag: "nightly"
|
tag: "nightly"
|
||||||
prerelease: true
|
prerelease: true
|
||||||
files: SideStore.ipa
|
files: |
|
||||||
|
SideStore.ipa
|
||||||
|
SideStore-MDC.ipa
|
||||||
body: |
|
body: |
|
||||||
This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}).
|
This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}).
|
||||||
|
|
||||||
@@ -96,17 +105,32 @@ jobs:
|
|||||||
- name: Add version to IPA file name
|
- name: Add version to IPA file name
|
||||||
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Add version to MDC IPA file name
|
||||||
|
run: mv SideStore-MDC.ipa SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload SideStore.ipa Artifact
|
- name: Upload SideStore.ipa Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload *.dSYM Artifact
|
- name: Upload SideStore-MDC.ipa Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
path: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Upload dSYM Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
||||||
path: ./*.dSYM/
|
path: ./dSYM/*
|
||||||
|
|
||||||
|
- name: Upload MDC-dSYM Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}-dSYM
|
||||||
|
path: ./MDC-dSYM/*
|
||||||
|
|
||||||
- name: Reset cache for apps.sidestore.io/nightly
|
- name: Reset cache for apps.sidestore.io/nightly
|
||||||
run: sleep 10 && curl https://apps.sidestore.io/reset-cache/nightly/${{ secrets.SIDESOURCE_KEY }}
|
run: sleep 10 && curl https://apps.sidestore.io/reset-cache/nightly/${{ secrets.SIDESOURCE_KEY }}
|
||||||
|
|||||||
40
.github/workflows/pr.yml
vendored
40
.github/workflows/pr.yml
vendored
@@ -31,7 +31,7 @@ jobs:
|
|||||||
run: sed -e 's/= Neon/= Storm/' -i '' ./AltStore.xcodeproj/project.pbxproj
|
run: sed -e 's/= Neon/= Storm/' -i '' ./AltStore.xcodeproj/project.pbxproj
|
||||||
|
|
||||||
- name: Enable unstable features
|
- name: Enable unstable features
|
||||||
run: echo '\nSWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) UNSTABLE' >> ./Build.xcconfig
|
run: make enable_unstable
|
||||||
|
|
||||||
- name: Get version
|
- name: Get version
|
||||||
id: version
|
id: version
|
||||||
@@ -45,26 +45,48 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
xcode-version: ${{ matrix.version }}
|
xcode-version: ${{ matrix.version }}
|
||||||
|
|
||||||
- name: Build SideStore
|
- name: "[Normal] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make build | xcpretty && exit ${PIPESTATUS[0]}
|
run: |
|
||||||
|
make build | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa
|
||||||
|
|
||||||
- name: Fakesign app
|
- name: Enable MDC
|
||||||
run: make fakesign
|
run: make enable_mdc
|
||||||
|
|
||||||
- name: Convert to IPA
|
- name: "[MDC] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make ipa
|
run: |
|
||||||
|
make clean
|
||||||
|
make build DSYM_FOLDER=./MDC-dSYM | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa IPA_NAME=SideStore-MDC.ipa
|
||||||
|
|
||||||
- name: Add version to IPA file name
|
- name: Add version to IPA file name
|
||||||
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Add version to MDC IPA file name
|
||||||
|
run: mv SideStore-MDC.ipa SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload SideStore.ipa Artifact
|
- name: Upload SideStore.ipa Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload *.dSYM Artifact
|
- name: Upload SideStore-MDC.ipa Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
path: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Upload dSYM Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
||||||
path: ./*.dSYM/
|
path: ./dSYM/*
|
||||||
|
|
||||||
|
- name: Upload MDC-dSYM Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}-dSYM
|
||||||
|
path: ./MDC-dSYM/*
|
||||||
|
|||||||
42
.github/workflows/stable.yml
vendored
42
.github/workflows/stable.yml
vendored
@@ -39,14 +39,21 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
xcode-version: ${{ matrix.version }}
|
xcode-version: ${{ matrix.version }}
|
||||||
|
|
||||||
- name: Build SideStore
|
- name: "[Normal] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make build | xcpretty && exit ${PIPESTATUS[0]}
|
run: |
|
||||||
|
make build | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa
|
||||||
|
|
||||||
- name: Fakesign app
|
- name: Enable MDC
|
||||||
run: make fakesign
|
run: make enable_mdc
|
||||||
|
|
||||||
- name: Convert to IPA
|
- name: "[MDC] Build SideStore, fakesign app and convert to IPA"
|
||||||
run: make ipa
|
run: |
|
||||||
|
make clean
|
||||||
|
make build DSYM_FOLDER=./MDC-dSYM | xcpretty && exit ${PIPESTATUS[0]}
|
||||||
|
make fakesign
|
||||||
|
make ipa IPA_NAME=SideStore-MDC.ipa
|
||||||
|
|
||||||
- name: Get current date
|
- name: Get current date
|
||||||
id: date
|
id: date
|
||||||
@@ -63,7 +70,9 @@ jobs:
|
|||||||
name: ${{ steps.version.outputs.version }}
|
name: ${{ steps.version.outputs.version }}
|
||||||
tag_name: ${{ github.ref_name }}
|
tag_name: ${{ github.ref_name }}
|
||||||
draft: true
|
draft: true
|
||||||
files: SideStore.ipa
|
files: |
|
||||||
|
SideStore.ipa
|
||||||
|
SideStore-MDC.ipa
|
||||||
body: |
|
body: |
|
||||||
<!-- NOTE: to reset SideSource cache, go to `https://apps.sidestore.io/reset-cache/nightly/<sidesource key>`. This is not included in the GitHub Action since it makes draft releases so they can be edited and have a changelog. -->
|
<!-- NOTE: to reset SideSource cache, go to `https://apps.sidestore.io/reset-cache/nightly/<sidesource key>`. This is not included in the GitHub Action since it makes draft releases so they can be edited and have a changelog. -->
|
||||||
## Changelog
|
## Changelog
|
||||||
@@ -80,14 +89,29 @@ jobs:
|
|||||||
- name: Add version to IPA file name
|
- name: Add version to IPA file name
|
||||||
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
run: mv SideStore.ipa SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Add version to MDC IPA file name
|
||||||
|
run: mv SideStore-MDC.ipa SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload SideStore.ipa Artifact
|
- name: Upload SideStore.ipa Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
name: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
path: SideStore-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
- name: Upload *.dSYM Artifact
|
- name: Upload SideStore-MDC.ipa Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
path: SideStore-MDC-${{ steps.version.outputs.version }}.ipa
|
||||||
|
|
||||||
|
- name: Upload dSYM Artifact
|
||||||
uses: actions/upload-artifact@v3.1.0
|
uses: actions/upload-artifact@v3.1.0
|
||||||
with:
|
with:
|
||||||
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
name: SideStore-${{ steps.version.outputs.version }}-dSYM
|
||||||
path: ./*.dSYM/
|
path: ./dSYM/*
|
||||||
|
|
||||||
|
- name: Upload MDC-dSYM Artifact
|
||||||
|
uses: actions/upload-artifact@v3.1.0
|
||||||
|
with:
|
||||||
|
name: SideStore-MDC-${{ steps.version.outputs.version }}-dSYM
|
||||||
|
path: ./MDC-dSYM/*
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -36,8 +36,8 @@ xcuserdata
|
|||||||
.idea/
|
.idea/
|
||||||
|
|
||||||
Payload/
|
Payload/
|
||||||
SideStore.ipa
|
SideStore*.ipa
|
||||||
*.dSYM
|
*dSYM
|
||||||
|
|
||||||
Dependencies/.*-prebuilt-fetch-*
|
Dependencies/.*-prebuilt-fetch-*
|
||||||
Dependencies/minimuxer/*
|
Dependencies/minimuxer/*
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ ORG_PREFIX = $(ORG_IDENTIFIER)
|
|||||||
|
|
||||||
PRODUCT_NAME = SideStore
|
PRODUCT_NAME = SideStore
|
||||||
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = $(ORG_PREFIX).$(PRODUCT_NAME)
|
PRODUCT_BUNDLE_IDENTIFIER = $(ORG_PREFIX).SideStore
|
||||||
// add team ID to bundle ID for debug builds since these will most likely be installed via Xcode
|
// add team ID to bundle ID for debug builds since these will most likely be installed via Xcode
|
||||||
// SideStore will expect the team ID to be at the end of the bundle ID, but this doesn't happen when we install via Xcode
|
// SideStore will expect the team ID to be at the end of the bundle ID, but this doesn't happen when we install via Xcode
|
||||||
// we don't want to do this for release since those builds will most likely be installed via SideServer, which adds the team ID
|
// we don't want to do this for release since those builds will most likely be installed via SideServer, which adds the team ID
|
||||||
|
|||||||
26
Makefile
26
Makefile
@@ -156,6 +156,17 @@ test:
|
|||||||
|
|
||||||
## -- Building --
|
## -- Building --
|
||||||
|
|
||||||
|
enable_unstable:
|
||||||
|
echo >> ./Build.xcconfig
|
||||||
|
echo 'SWIFT_ACTIVE_COMPILATION_CONDITIONS = $$(inherited) UNSTABLE' >> ./Build.xcconfig
|
||||||
|
|
||||||
|
enable_mdc:
|
||||||
|
echo >> ./Build.xcconfig
|
||||||
|
echo 'SWIFT_ACTIVE_COMPILATION_CONDITIONS = $$(inherited) MDC' >> ./Build.xcconfig
|
||||||
|
echo 'GCC_PREPROCESSOR_DEFINITIONS = $$(inherited) MDC=1' >> ./Build.xcconfig
|
||||||
|
|
||||||
|
DSYM_FOLDER ?= ./dSYM
|
||||||
|
|
||||||
build:
|
build:
|
||||||
@xcodebuild -project AltStore.xcodeproj \
|
@xcodebuild -project AltStore.xcodeproj \
|
||||||
-scheme AltStore \
|
-scheme AltStore \
|
||||||
@@ -166,15 +177,18 @@ build:
|
|||||||
CODE_SIGNING_ALLOWED=NO \
|
CODE_SIGNING_ALLOWED=NO \
|
||||||
DEVELOPMENT_TEAM=XYZ0123456 \
|
DEVELOPMENT_TEAM=XYZ0123456 \
|
||||||
ORG_IDENTIFIER=com.SideStore \
|
ORG_IDENTIFIER=com.SideStore \
|
||||||
DWARF_DSYM_FOLDER_PATH="."
|
DWARF_DSYM_FOLDER_PATH="$(DSYM_FOLDER)"
|
||||||
|
|
||||||
fakesign:
|
fakesign:
|
||||||
rm -rf archive.xcarchive/Products/Applications/SideStore.app/Frameworks/AltStoreCore.framework/Frameworks/
|
rm -rf archive.xcarchive/Products/Applications/SideStore.app/Frameworks/AltStoreCore.framework/Frameworks/
|
||||||
ldid -SAltStore/Resources/ReleaseEntitlements.plist archive.xcarchive/Products/Applications/SideStore.app/SideStore
|
ldid -SAltStore/Resources/ReleaseEntitlements.plist archive.xcarchive/Products/Applications/SideStore.app/SideStore
|
||||||
|
|
||||||
ipa:
|
IPA_NAME ?= SideStore.ipa
|
||||||
mkdir Payload
|
|
||||||
mkdir Payload/SideStore.app
|
|
||||||
cp -R archive.xcarchive/Products/Applications/SideStore.app/ Payload/SideStore.app/
|
|
||||||
zip -r SideStore.ipa Payload
|
|
||||||
|
|
||||||
|
ipa:
|
||||||
|
mkdir -p Payload/SideStore.app
|
||||||
|
cp -R archive.xcarchive/Products/Applications/SideStore.app/ Payload/SideStore.app/
|
||||||
|
zip -r $(IPA_NAME) Payload
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf archive.xcarchive Payload
|
||||||
|
|||||||
Reference in New Issue
Block a user