Compare commits

...

17 Commits

Author SHA1 Message Date
June
dd77ef6ba9 Fix conflicts 2 2024-12-28 09:46:43 +09:00
Magesh K
f6482eb06e [Fix]: operate on UI controls in main thread 2024-12-28 09:44:50 +09:00
Magesh K
ff1defeec5 [README]: updated min iOS to 15 and added info about cocoapods requirement for development 2024-12-28 09:44:50 +09:00
Magesh K
7e06de2203 Reapply "[cleanup]: remove left overs from last cleanup"
This reverts commit 68470b61c5.
2024-12-28 09:44:50 +09:00
Magesh K
0bfefc4c77 [Pods-fix]: using "Folders" feature of xcode to organize files bumped the project objectVersion from 60 to 71(Xcode 16) which is still unsupported by latest cocoapods 2024-12-28 09:44:50 +09:00
Magesh K
a03539ca31 [xcconfigs]: Move the missed configs and fix path for pods directory 2024-12-28 09:44:50 +09:00
Magesh K
7a7fb17581 Revert "[cleanup]: remove left overs from last cleanup"
This reverts commit 6c5cf2ef06.
2024-12-28 09:44:50 +09:00
Magesh K
a206dcd659 [cleanup]: remove left overs from last cleanup 2024-12-28 09:44:50 +09:00
Magesh K
f823e05cd1 [AltSign]: updated to use latest AltSign from SideStore/AltSign master 2024-12-28 09:44:50 +09:00
Magesh K
c9ac242923 [cleanup]: declutter by moving the xcconfig into their own directory 2024-12-28 09:44:50 +09:00
Magesh K
a20d79fd4c -[AltSign]: updated submodule to latest 2024-12-28 09:44:50 +09:00
Magesh K
37d4b4ff1a [AltSign]: updated to use latest AltSign from SideStore/AltSign master 2024-12-28 09:44:50 +09:00
Magesh K
41e96b4403 [xcconfig]: corrected the variable from DEBUG_BUNDLE_ID_SUFFIX to BUNDLE_ID_SUFFIX 2024-12-28 09:43:51 +09:00
Spidy123222
8cc7454128 Try adding backwards compatibility in trusted
Signed-off-by: Spidy123222 <64176728+Spidy123222@users.noreply.github.com>
2024-12-28 09:43:51 +09:00
June
41c7c161d6 hopefully fix build errors 2024-12-28 09:33:12 +09:00
June
c3a199c2d0 fixate AltSign 2024-12-27 13:50:17 +09:00
June
ea00f2904b Add increasedMemoryLimit by default 2024-12-27 13:49:41 +09:00
20 changed files with 225 additions and 140 deletions

89
.gitmodules vendored
View File

@@ -1,55 +1,68 @@
#-------------------------------
# When changing url/branch in this .gitmodules file,
# Always ensure you run:
# 1. `git submodule sync --recursive`
# 2. `git submodule update --init --remote --recursive <sub_module_path>`
# 3. IF for some reason, the update doesn't fetch from updated URL try the following:
# a. Either stage or unstage the .gitmodules file fully, ie (don't have it partially staged and partial changes as unstaged)
# b. Ensure git used is LATEST VERSION [wasted few hours due to this :( ]
# 4. To restore to the commit that is marked by the submodule commit tracker file, simply issue `update --recursive` without --remote
# `git submodule update --init --recursive <sub_module_path>`
# 1. `git rm --cached <submodule_relative_path>` # this removes the submodule entry from general git tracking
# 2. `rm -rf .git/modules/<submodule_relative_path>` # this removes the stale name entries in submodule tracker
# 3. `rm -rf <submodule_relative_path>` # removes the submodule completely
# 4. `git submodule --deinit <submodule_relative_path>` # make sure that the submodule is de-inited too (ignore errors at this point)
# 5. `git submodule add [-b <branch_name>] <repo_url> <submodule_relative_path>` # This adds the submodule back into general git tracking and also adds to the submodule tracker
# 6. Step 5 creates an entry in the .gitmodules when a submodule is added,
# So if you already had one entry, try to remove duplicates at this point
# 7. `git submodule sync --recursive` # this now sets/updates the submodule repo url tracker into git config
# 8. `git submodule update --init --recursive` # this now clones the updated repo set by .gitmodules
# But this will always fetch the latest commit sepecified by the custom(if set)/default branch
# 9. If you do want to have a specific commit in that submodule branch and not latest, you need to perform normal detached head checkout and check-in as follows:
# `pushd <submodule_relative_path>` # switch to the submodule repo
# `git checkout <commit-id>` # this creates a detached head state
# `popd` # get back to parent repo
# `git add <submodule_relative_path>` # check-in the changes in parent for this submodule link (tracker)
# `git commit -m <commit-message>` # commit it to parent repo
# `git push` # push to parent repo to preserve this entire change in the submodule repo/link file
#
# NOTES:
# 1. updating just this .gitmodules file is NOT ENOUGH when changing repo url and performing a simple `git submodule update --init --recursive`, need to do all the above listed steps for proper tracking
# 2. updating the branch in this .gitmodules for same repo is okay as long as `git submodule update --init --recursive` is also performed followed by it
# 3. Ensure there is no stale entries or duplicate entries in this .gitmodules file coz, `git submodule add ...` creates an entry here.
#-------------------------------
[submodule "Dependencies/Roxas"]
path = Dependencies/Roxas
url = https://github.com/rileytestut/Roxas.git
path = Dependencies/Roxas
url = https://github.com/rileytestut/Roxas.git
[submodule "Dependencies/libimobiledevice"]
path = Dependencies/libimobiledevice
url = https://github.com/libimobiledevice/libimobiledevice
path = Dependencies/libimobiledevice
url = https://github.com/libimobiledevice/libimobiledevice
[submodule "Dependencies/libusbmuxd"]
path = Dependencies/libusbmuxd
url = https://github.com/libimobiledevice/libusbmuxd.git
path = Dependencies/libusbmuxd
url = https://github.com/libimobiledevice/libusbmuxd.git
[submodule "Dependencies/libplist"]
path = Dependencies/libplist
url = https://github.com/SideStore/libplist.git
path = Dependencies/libplist
url = https://github.com/SideStore/libplist.git
[submodule "Dependencies/MarkdownAttributedString"]
path = Dependencies/MarkdownAttributedString
url = https://github.com/chockenberry/MarkdownAttributedString.git
path = Dependencies/MarkdownAttributedString
url = https://github.com/chockenberry/MarkdownAttributedString.git
[submodule "Dependencies/libimobiledevice-glue"]
path = Dependencies/libimobiledevice-glue
url = https://github.com/libimobiledevice/libimobiledevice-glue
# [submodule "Dependencies/AltSign"]
# path = Dependencies/AltSign
# url = https://github.com/rileytestut/AltSign.git
# # url = https://github.com/SideStore/AltSign.git
# branch = marketplace
# # branch = master
path = Dependencies/libimobiledevice-glue
url = https://github.com/libimobiledevice/libimobiledevice-glue
#sidestore dependencies
[submodule "SideStore/minimuxer"]
path = SideStore/minimuxer
url = https://github.com/SideStore/minimuxer
branch = master
path = SideStore/minimuxer
url = https://github.com/SideStore/minimuxer
branch = master
[submodule "SideStore/em_proxy"]
path = SideStore/em_proxy
url = https://github.com/SideStore/em_proxy
branch = master
path = SideStore/em_proxy
url = https://github.com/SideStore/em_proxy
branch = master
[submodule "SideStore/libfragmentzip"]
path = SideStore/libfragmentzip
url = https://github.com/SideStore/libfragmentzip
branch = master
path = SideStore/libfragmentzip
url = https://github.com/SideStore/libfragmentzip
branch = master
[submodule "SideStore/apps-v2.json"]
path = SideStore/apps-v2.json
url = https://github.com/SideStore/apps-v2.json
branch = main
path = SideStore/apps-v2.json
url = https://github.com/SideStore/apps-v2.json
branch = main
[submodule "SideStore/AltSign"]
path = SideStore/AltSign
url = https://github.com/SideStore/AltSign
branch = master

View File

@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objectVersion = 60;
objects = {
/* Begin PBXBuildFile section */
@@ -54,15 +54,19 @@
A809F69F2D04D7B300F0F0F3 /* libem_proxy_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A809F6942D04D71200F0F0F3 /* libem_proxy_static.a */; };
A809F6A82D04DA1900F0F0F3 /* minimuxer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A809F6A32D04DA1900F0F0F3 /* minimuxer.swift */; };
A809F6A92D04DA1900F0F0F3 /* SwiftBridgeCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = A809F6A72D04DA1900F0F0F3 /* SwiftBridgeCore.swift */; };
A81177012D0B3C6C00D6C122 /* AltSign-Static in Frameworks */ = {isa = PBXBuildFile; productRef = A81177002D0B3C6C00D6C122 /* AltSign-Static */; };
A81177032D0B3C8200D6C122 /* OpenSSL in Frameworks */ = {isa = PBXBuildFile; productRef = A81177022D0B3C8200D6C122 /* OpenSSL */; };
A81177052D0B3C9800D6C122 /* OpenSSL in Frameworks */ = {isa = PBXBuildFile; productRef = A81177042D0B3C9800D6C122 /* OpenSSL */; };
A82067842D03DC0600645C0D /* OperatingSystemVersion+Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5708416292448DA00D42D34 /* OperatingSystemVersion+Comparable.swift */; };
A82067C42D03E0DE00645C0D /* SemanticVersion in Frameworks */ = {isa = PBXBuildFile; productRef = A82067C32D03E0DE00645C0D /* SemanticVersion */; };
A859ED5C2D1EE827003DCC58 /* OpenSSL.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */; };
A859ED5D2D1EE827003DCC58 /* OpenSSL.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
A8945AA62D059B6100D86CBE /* Roxas.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8945AA52D059B6100D86CBE /* Roxas.framework */; };
A8A543302D04F14400D72399 /* libfragmentzip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A8A5432F2D04F0C100D72399 /* libfragmentzip.a */; };
A8BB34E52D04EC8E000A8B4D /* minimuxer-helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A809F6A52D04DA1900F0F0F3 /* minimuxer-helpers.swift */; };
A8D484D02D0CCA8A002C691D /* AltSign-Static in Frameworks */ = {isa = PBXBuildFile; productRef = A8D484CF2D0CCA8A002C691D /* AltSign-Static */; };
A8C6D50C2D1EE87600DF01F1 /* AltSign-Static in Frameworks */ = {isa = PBXBuildFile; productRef = A8C6D50B2D1EE87600DF01F1 /* AltSign-Static */; };
A8C6D5122D1EE8AF00DF01F1 /* AltSign-Static in Frameworks */ = {isa = PBXBuildFile; productRef = A8C6D5112D1EE8AF00DF01F1 /* AltSign-Static */; };
A8C6D5132D1EE8D700DF01F1 /* OpenSSL.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */; };
A8C6D5142D1EE8D700DF01F1 /* OpenSSL.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
A8C6D5172D1EE95B00DF01F1 /* OpenSSL.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */; };
A8C6D5182D1EE95B00DF01F1 /* OpenSSL.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
A8D484D82D0CD306002C691D /* AltBackup.ipa in Resources */ = {isa = PBXBuildFile; fileRef = A8D484D72D0CD306002C691D /* AltBackup.ipa */; };
A8F838922D048E8F00ED425D /* libEmotionalDamage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19104DB22909C06C00C49C7B /* libEmotionalDamage.a */; };
A8F838932D048E8F00ED425D /* libminimuxer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 191E5FAB290A5D92001A3B7C /* libminimuxer.a */; };
@@ -502,12 +506,35 @@
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
A859ED5E2D1EE827003DCC58 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
A859ED5D2D1EE827003DCC58 /* OpenSSL.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
A8C6D5102D1EE8AC00DF01F1 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
A8C6D5142D1EE8D700DF01F1 /* OpenSSL.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
BF088D2B2501A087008082D9 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
A8C6D5182D1EE95B00DF01F1 /* OpenSSL.xcframework in Embed Frameworks */,
BF1614F2250822F100767AEA /* Roxas.framework in Embed Frameworks */,
BF66EE862501AE50007EE018 /* AltStoreCore.framework in Embed Frameworks */,
);
@@ -587,8 +614,15 @@
A809F6A52D04DA1900F0F0F3 /* minimuxer-helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "minimuxer-helpers.swift"; sourceTree = "<group>"; };
A809F6A62D04DA1900F0F0F3 /* SwiftBridgeCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftBridgeCore.h; sourceTree = "<group>"; };
A809F6A72D04DA1900F0F0F3 /* SwiftBridgeCore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftBridgeCore.swift; sourceTree = "<group>"; };
A8570F912D104EA100929D17 /* AltStore.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStore.release.xcconfig; sourceTree = "<group>"; };
A8570F922D104F2C00929D17 /* AltStoreCore.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStoreCore.release.xcconfig; sourceTree = "<group>"; };
A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */ = {isa = PBXFileReference; expectedSignature = "AppleDeveloperProgram:67RAULRX93:Marcin Krzyzanowski"; lastKnownFileType = wrapper.xcframework; name = OpenSSL.xcframework; path = SideStore/AltSign/Dependencies/OpenSSL/Frameworks/OpenSSL.xcframework; sourceTree = "<group>"; };
A85ACB8E2D1F31C400AA3DE7 /* AltBackup.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltBackup.xcconfig; sourceTree = "<group>"; };
A85ACB8F2D1F31C400AA3DE7 /* AltStore.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStore.debug.xcconfig; sourceTree = "<group>"; };
A85ACB902D1F31C400AA3DE7 /* AltStore.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStore.release.xcconfig; sourceTree = "<group>"; };
A85ACB912D1F31C400AA3DE7 /* AltStoreCore.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStoreCore.debug.xcconfig; sourceTree = "<group>"; };
A85ACB922D1F31C400AA3DE7 /* AltStoreCore.release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStoreCore.release.xcconfig; sourceTree = "<group>"; };
A85ACB932D1F31C400AA3DE7 /* AltWidgetExtension.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltWidgetExtension.xcconfig; sourceTree = "<group>"; };
A86202322D1F35640091187B /* AltStore.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStore.xcconfig; sourceTree = "<group>"; };
A86202332D1F35640091187B /* AltStoreCore.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStoreCore.xcconfig; sourceTree = "<group>"; };
A8945AA52D059B6100D86CBE /* Roxas.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Roxas.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A8D484D72D0CD306002C691D /* AltBackup.ipa */ = {isa = PBXFileReference; lastKnownFileType = file; path = AltBackup.ipa; sourceTree = "<group>"; };
A8F66C3C2D04D433009689E6 /* em_proxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = em_proxy.h; sourceTree = "<group>"; };
@@ -616,10 +650,6 @@
B3C39606284F4C8400DA9E2F /* CodeSigning.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = CodeSigning.xcconfig; sourceTree = "<group>"; };
B3C39607284F4C8400DA9E2F /* Build.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Build.xcconfig; sourceTree = "<group>"; };
B3C39608284F4C8400DA9E2F /* CodeSigning.xcconfig.sample */ = {isa = PBXFileReference; lastKnownFileType = text; path = CodeSigning.xcconfig.sample; sourceTree = "<group>"; };
B3C3960B284F4C9800DA9E2F /* AltStore.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStore.debug.xcconfig; sourceTree = "<group>"; };
B3C3960D284F4E4B00DA9E2F /* AltWidgetExtension.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltWidgetExtension.xcconfig; sourceTree = "<group>"; };
B3C3960E284F4F9100DA9E2F /* AltStoreCore.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltStoreCore.debug.xcconfig; sourceTree = "<group>"; };
B3C3960F284F53E900DA9E2F /* AltBackup.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AltBackup.xcconfig; sourceTree = "<group>"; };
B3EE16B52925E27D00B3B1F5 /* AnisetteManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnisetteManager.swift; sourceTree = "<group>"; };
BD4513AA2C6FA98C0052BCC0 /* AppExtensionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppExtensionView.swift; sourceTree = "<group>"; };
BF02419522F2199300129732 /* RefreshAttemptsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefreshAttemptsViewController.swift; sourceTree = "<group>"; };
@@ -990,7 +1020,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A81177032D0B3C8200D6C122 /* OpenSSL in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -998,8 +1027,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A8C6D5132D1EE8D700DF01F1 /* OpenSSL.xcframework in Frameworks */,
BF580498246A3D19008AE704 /* UIKit.framework in Frameworks */,
A8D484D02D0CCA8A002C691D /* AltSign-Static in Frameworks */,
A8C6D5122D1EE8AF00DF01F1 /* AltSign-Static in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1009,8 +1039,9 @@
files = (
A8945AA62D059B6100D86CBE /* Roxas.framework in Frameworks */,
A82067C42D03E0DE00645C0D /* SemanticVersion in Frameworks */,
A81177012D0B3C6C00D6C122 /* AltSign-Static in Frameworks */,
A859ED5C2D1EE827003DCC58 /* OpenSSL.xcframework in Frameworks */,
551A15E55999499418AC1022 /* Pods_AltStoreCore.framework in Frameworks */,
A8C6D50C2D1EE87600DF01F1 /* AltSign-Static in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1026,10 +1057,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A8C6D5172D1EE95B00DF01F1 /* OpenSSL.xcframework in Frameworks */,
A8A543302D04F14400D72399 /* libfragmentzip.a in Frameworks */,
A805C3CD2D0C316A00E76BDD /* Pods_SideStore.framework in Frameworks */,
A8F838942D048ECE00ED425D /* libimobiledevice.a in Frameworks */,
A81177052D0B3C9800D6C122 /* OpenSSL in Frameworks */,
A8F838922D048E8F00ED425D /* libEmotionalDamage.a in Frameworks */,
A8F838932D048E8F00ED425D /* libminimuxer.a in Frameworks */,
D533E8B72727841800A9B5DD /* libAppleArchive.tbd in Frameworks */,
@@ -1104,6 +1135,21 @@
name = Products;
sourceTree = "<group>";
};
A85ACB942D1F31C400AA3DE7 /* xcconfigs */ = {
isa = PBXGroup;
children = (
A86202332D1F35640091187B /* AltStoreCore.xcconfig */,
A85ACB912D1F31C400AA3DE7 /* AltStoreCore.debug.xcconfig */,
A85ACB922D1F31C400AA3DE7 /* AltStoreCore.release.xcconfig */,
A86202322D1F35640091187B /* AltStore.xcconfig */,
A85ACB8F2D1F31C400AA3DE7 /* AltStore.debug.xcconfig */,
A85ACB902D1F31C400AA3DE7 /* AltStore.release.xcconfig */,
A85ACB8E2D1F31C400AA3DE7 /* AltBackup.xcconfig */,
A85ACB932D1F31C400AA3DE7 /* AltWidgetExtension.xcconfig */,
);
path = xcconfigs;
sourceTree = "<group>";
};
A8A543222D04F0C100D72399 /* Products */ = {
isa = PBXGroup;
children = (
@@ -1666,15 +1712,10 @@
BFD247852284BB3300981D42 /* Frameworks */,
BFD2476B2284B9A500981D42 /* Products */,
C2B79346E83FCBDE76D501CB /* Pods */,
A85ACB942D1F31C400AA3DE7 /* xcconfigs */,
B3C39607284F4C8400DA9E2F /* Build.xcconfig */,
B3C39606284F4C8400DA9E2F /* CodeSigning.xcconfig */,
B3C39608284F4C8400DA9E2F /* CodeSigning.xcconfig.sample */,
B3C3960B284F4C9800DA9E2F /* AltStore.debug.xcconfig */,
A8570F912D104EA100929D17 /* AltStore.release.xcconfig */,
B3C3960F284F53E900DA9E2F /* AltBackup.xcconfig */,
B3C3960D284F4E4B00DA9E2F /* AltWidgetExtension.xcconfig */,
B3C3960E284F4F9100DA9E2F /* AltStoreCore.debug.xcconfig */,
A8570F922D104F2C00929D17 /* AltStoreCore.release.xcconfig */,
);
sourceTree = "<group>";
};
@@ -1730,6 +1771,7 @@
BFD247852284BB3300981D42 /* Frameworks */ = {
isa = PBXGroup;
children = (
A859ED5B2D1EE80D003DCC58 /* OpenSSL.xcframework */,
B343F86C295F759E002B1159 /* libresolv.tbd */,
D533E8B62727841800A9B5DD /* libAppleArchive.tbd */,
BF580497246A3D19008AE704 /* UIKit.framework */,
@@ -2189,6 +2231,7 @@
BF580477246A28F7008AE704 /* Sources */,
BF580478246A28F7008AE704 /* Frameworks */,
BF580479246A28F7008AE704 /* Resources */,
A8C6D5102D1EE8AC00DF01F1 /* Embed Frameworks */,
);
buildRules = (
);
@@ -2208,6 +2251,7 @@
BF66EE7A2501AE50007EE018 /* Sources */,
BF66EE7B2501AE50007EE018 /* Frameworks */,
BF66EE7C2501AE50007EE018 /* Resources */,
A859ED5E2D1EE827003DCC58 /* Embed Frameworks */,
);
buildRules = (
);
@@ -2216,7 +2260,7 @@
name = AltStoreCore;
packageProductDependencies = (
A82067C32D03E0DE00645C0D /* SemanticVersion */,
A81177002D0B3C6C00D6C122 /* AltSign-Static */,
A8C6D50B2D1EE87600DF01F1 /* AltSign-Static */,
);
productName = AltStoreCore;
productReference = BF66EE7E2501AE50007EE018 /* AltStoreCore.framework */;
@@ -2324,8 +2368,6 @@
D58D5F2C26DFE68E00E55E38 /* XCRemoteSwiftPackageReference "LaunchAtLogin" */,
D5FB7A2C2AA2859400EF863D /* XCRemoteSwiftPackageReference "swift-argument-parser" */,
A82067C22D03E0DE00645C0D /* XCRemoteSwiftPackageReference "SemanticVersion" */,
A81176FC2D0B3BAB00D6C122 /* XCRemoteSwiftPackageReference "OpenSSL" */,
A81176FF2D0B3C6C00D6C122 /* XCRemoteSwiftPackageReference "AltSign" */,
);
productRefGroup = BFD2476B2284B9A500981D42 /* Products */;
projectDirPath = "";
@@ -3196,7 +3238,7 @@
};
BF58048C246A28F9008AE704 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B3C3960F284F53E900DA9E2F /* AltBackup.xcconfig */;
baseConfigurationReference = A85ACB8E2D1F31C400AA3DE7 /* AltBackup.xcconfig */;
buildSettings = {
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CODE_SIGN_ENTITLEMENTS = AltBackup/AltBackup.entitlements;
@@ -3221,7 +3263,7 @@
};
BF58048D246A28F9008AE704 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B3C3960F284F53E900DA9E2F /* AltBackup.xcconfig */;
baseConfigurationReference = A85ACB8E2D1F31C400AA3DE7 /* AltBackup.xcconfig */;
buildSettings = {
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CODE_SIGN_ENTITLEMENTS = AltBackup/AltBackup.entitlements;
@@ -3246,7 +3288,7 @@
};
BF66EE872501AE50007EE018 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B3C3960E284F4F9100DA9E2F /* AltStoreCore.debug.xcconfig */;
baseConfigurationReference = A85ACB912D1F31C400AA3DE7 /* AltStoreCore.debug.xcconfig */;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -3286,7 +3328,7 @@
};
BF66EE882501AE50007EE018 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A8570F922D104F2C00929D17 /* AltStoreCore.release.xcconfig */;
baseConfigurationReference = A85ACB922D1F31C400AA3DE7 /* AltStoreCore.release.xcconfig */;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
@@ -3326,7 +3368,7 @@
};
BF989179250AABF4002ACF50 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B3C3960D284F4E4B00DA9E2F /* AltWidgetExtension.xcconfig */;
baseConfigurationReference = A85ACB932D1F31C400AA3DE7 /* AltWidgetExtension.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_MODULES = YES;
@@ -3361,7 +3403,7 @@
};
BF98917A250AABF4002ACF50 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B3C3960D284F4E4B00DA9E2F /* AltWidgetExtension.xcconfig */;
baseConfigurationReference = A85ACB932D1F31C400AA3DE7 /* AltWidgetExtension.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_MODULES = YES;
@@ -3532,7 +3574,7 @@
};
BFD2477F2284B9A700981D42 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B3C3960B284F4C9800DA9E2F /* AltStore.debug.xcconfig */;
baseConfigurationReference = A85ACB8F2D1F31C400AA3DE7 /* AltStore.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
@@ -3578,7 +3620,7 @@
};
BFD247802284B9A700981D42 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A8570F912D104EA100929D17 /* AltStore.release.xcconfig */;
baseConfigurationReference = A85ACB902D1F31C400AA3DE7 /* AltStore.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
@@ -3701,22 +3743,6 @@
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
A81176FC2D0B3BAB00D6C122 /* XCRemoteSwiftPackageReference "OpenSSL" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/krzyzanowskim/OpenSSL";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.1.2000;
};
};
A81176FF2D0B3C6C00D6C122 /* XCRemoteSwiftPackageReference "AltSign" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SideStore/AltSign";
requirement = {
branch = master;
kind = branch;
};
};
A82067C22D03E0DE00645C0D /* XCRemoteSwiftPackageReference "SemanticVersion" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SwiftPackageIndex/SemanticVersion";
@@ -3744,29 +3770,17 @@
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
A81177002D0B3C6C00D6C122 /* AltSign-Static */ = {
isa = XCSwiftPackageProductDependency;
package = A81176FF2D0B3C6C00D6C122 /* XCRemoteSwiftPackageReference "AltSign" */;
productName = "AltSign-Static";
};
A81177022D0B3C8200D6C122 /* OpenSSL */ = {
isa = XCSwiftPackageProductDependency;
package = A81176FC2D0B3BAB00D6C122 /* XCRemoteSwiftPackageReference "OpenSSL" */;
productName = OpenSSL;
};
A81177042D0B3C9800D6C122 /* OpenSSL */ = {
isa = XCSwiftPackageProductDependency;
package = A81176FC2D0B3BAB00D6C122 /* XCRemoteSwiftPackageReference "OpenSSL" */;
productName = OpenSSL;
};
A82067C32D03E0DE00645C0D /* SemanticVersion */ = {
isa = XCSwiftPackageProductDependency;
package = A82067C22D03E0DE00645C0D /* XCRemoteSwiftPackageReference "SemanticVersion" */;
productName = SemanticVersion;
};
A8D484CF2D0CCA8A002C691D /* AltSign-Static */ = {
A8C6D50B2D1EE87600DF01F1 /* AltSign-Static */ = {
isa = XCSwiftPackageProductDependency;
productName = "AltSign-Static";
};
A8C6D5112D1EE8AF00DF01F1 /* AltSign-Static */ = {
isa = XCSwiftPackageProductDependency;
package = A81176FF2D0B3C6C00D6C122 /* XCRemoteSwiftPackageReference "AltSign" */;
productName = "AltSign-Static";
};
/* End XCSwiftPackageProductDependency section */

View File

@@ -4,6 +4,9 @@
<FileRef
location = "group:AltStore.xcodeproj">
</FileRef>
<FileRef
location = "group:SideStore/AltSign">
</FileRef>
<FileRef
location = "group:Dependencies/Roxas/Roxas.xcodeproj">
</FileRef>

View File

@@ -555,26 +555,26 @@ private extension AuthenticationOperation
}
}
let alertController = UIAlertController(title: NSLocalizedString("Would you like to revoke your previous certificates?\n\(certsText)", comment: ""), message: nil, preferredStyle: .alert)
let noAction = UIAlertAction(title: NSLocalizedString("No", comment: ""), style: .default) { (action) in
requestCertificate()
}
let yesAction = UIAlertAction(title: NSLocalizedString("Yes", comment: ""), style: .default) { (action) in
for certificate in ourCertificates {
ALTAppleAPI.shared.revoke(certificate, for: team, session: session) { (success, error) in
if let error = error, !success
{
completionHandler(.failure(error))
DispatchQueue.main.async {
let alertController = UIAlertController(title: NSLocalizedString("Would you like to revoke your previous certificates?\n\(certsText)", comment: ""), message: nil, preferredStyle: .alert)
let noAction = UIAlertAction(title: NSLocalizedString("No", comment: ""), style: .default) { (action) in
requestCertificate()
}
let yesAction = UIAlertAction(title: NSLocalizedString("Yes", comment: ""), style: .default) { (action) in
for certificate in ourCertificates {
ALTAppleAPI.shared.revoke(certificate, for: team, session: session) { (success, error) in
if let error = error, !success
{
completionHandler(.failure(error))
}
}
}
requestCertificate()
}
requestCertificate()
}
alertController.addAction(noAction)
alertController.addAction(yesAction)
DispatchQueue.main.async {
alertController.addAction(noAction)
alertController.addAction(yesAction)
if self.navigationController.presentingViewController != nil
{
self.navigationController.present(alertController, animated: true, completion: nil)

View File

@@ -335,6 +335,7 @@ extension FetchProvisioningProfilesOperation
func updateFeatures(for appID: ALTAppID, app: ALTApplication, team: ALTTeam, session: ALTAppleAPISession, completionHandler: @escaping (Result<ALTAppID, Error>) -> Void)
{
additionalEntitlements.merge([ALTEntitlement.increasedMemoryLimit : true])
var entitlements = app.entitlements
for (key, value) in additionalEntitlements ?? [:]
{

View File

@@ -1,4 +0,0 @@
#include "AltStoreCore.xcconfig"
// include cocoa pods config
#include? "Pods/Target Support Files/Pods-AltStoreCore/Pods-AltStoreCore.debug.xcconfig"

View File

@@ -1,4 +0,0 @@
#include "AltStoreCore.xcconfig"
// include cocoa pods config
#include? "Pods/Target Support Files/Pods-AltStoreCore/Pods-AltStoreCore.release.xcconfig"

View File

@@ -44,12 +44,16 @@ Next, make and test your changes. Then, commit and push your changes using git a
## Prebuilt binary information
minimuxer and em_proxy use prebuilt static library binaries built by GitHub Actions to speed up builds and remove the need for Rust to be installed when working on SideStore.
[`Dependencies/fetch-prebuilt.sh`](./Dependencies/fetch-prebuilt.sh) will be run before each build by Xcode, and it will check if the downloaded binaries are up-to-date once every 6 hours. If you want
to force it to check for new binaries, run `bash ./Dependencies/fetch-prebuilt.sh force`.
[`SideStore/fetch-prebuilt.sh`](./SideStore/fetch-prebuilt.sh) will be run before each build by Xcode, and it will check if the downloaded binaries are up-to-date once every 6 hours. If you want
to force it to check for new binaries, run `bash ./SideStore/fetch-prebuilt.sh force`.
## Building an IPA for distribution
You can use the Makefile: `make build fakesign ipa`
Install cocoapods if required using: `brew install cocoapods`
Now perform Pod-Install using: `pod install` command to install the dependencies.
You can then use the Makefile command: `make build fakesign ipa` in the root directory.
This will create SideStore.ipa.

View File

@@ -13,7 +13,7 @@ ORG_IDENTIFIER = com.myuniquename
// 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
// we don't want to do this for release since those builds will most likely be installed via SideServer, which adds the team ID
DEBUG_BUNDLE_ID_SUFFIX = .$(DEVELOPMENT_TEAM)
BUNDLE_ID_SUFFIX = .$(DEVELOPMENT_TEAM)
// Set to YES if you have a valid paid Apple Developer account
DEVELOPER_ACCOUNT_PAID = NO

View File

@@ -17,8 +17,8 @@ SideStore's goal is to provide an untethered sideloading experience. It's a comm
(Contributions are welcome! 🙂)
## Requirements
- Xcode 14
- iOS 14+
- Xcode 15
- iOS 15+
- Rustup (`brew install rustup`)
Why iOS 14? Targeting such a recent version of iOS allows us to accelerate development, especially since not many developers have older devices to test on. This is corrobated by the fact that SwiftUI support is much better, allowing us to transistion to a more modern UI codebase.

1
SideStore/AltSign Submodule

Submodule SideStore/AltSign added at 5c278001cc

View File

@@ -48,5 +48,54 @@
"identifier": "thatstel.la.altsource",
"sourceURL": "https://alt.thatstel.la/"
}
],
"sources": [
{
"identifier": "io.sidestore.example"
},
{
"identifier": "com.sidestoreapps.community",
"sourceURL": "https://community-apps.sidestore.io/sidecommunity.json"
},
{
"identifier": "org.provenance-emu.provenance",
"sourceURL": "https://provenance-emu.com/apps.json"
},
{
"identifier": "me.oatmealdome.altstore",
"sourceURL": "https://altstore.oatmealdome.me"
},
{
"identifier": "com.utmapp.repos.UTM",
"sourceURL": "https://alt.getutm.app"
},
{
"identifier": "com.flyinghead.source",
"sourceURL": "https://flyinghead.github.io/flycast-builds/altstore.json"
},
{
"identifier": "dev.crystall1ne.repos.PojavLauncher",
"sourceURL": "https://alt.crystall1ne.dev"
},
{
"identifier": "eu.pokemmo.altstore",
"sourceURL": "https://pokemmo.eu/altstore/"
},
{
"identifier": "dev.theodyssey.sidestore",
"sourceURL": "https://theodyssey.dev/altstore/odysseysource.json"
},
{
"identifier": "stream.yattee",
"sourceURL": "https://repos.yattee.stream/alt/apps.json"
},
{
"identifier": "com.litritt.litsource",
"sourceURL": "https://altstore.ignitedemulator.com/"
},
{
"identifier": "thatstel.la.altsource",
"sourceURL": "https://alt.thatstel.la/"
}
]
}

View File

@@ -1,4 +1,4 @@
#include "Build.xcconfig"
#include "../Build.xcconfig"
PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_BUNDLE_IDENTIFIER).AltBackup

View File

@@ -1,7 +1,7 @@
#include "AltStore.xcconfig"
// include cocoa pods config
#include? "Pods/Target Support Files/Pods-SideStore/Pods-SideStore.debug.xcconfig"
#include? "../Pods/Target Support Files/Pods-SideStore/Pods-SideStore.debug.xcconfig"
// for ios14 and above swift runtime is included
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO

View File

@@ -1,7 +1,7 @@
#include "AltStore.xcconfig"
// include cocoa pods config
#include? "Pods/Target Support Files/Pods-SideStore/Pods-SideStore.release.xcconfig"
#include? "../Pods/Target Support Files/Pods-SideStore/Pods-SideStore.release.xcconfig"
// for ios14 and above swift runtime is included
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO

View File

@@ -1,3 +1,3 @@
#include "Build.xcconfig"
#include "../Build.xcconfig"
PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_BUNDLE_IDENTIFIER)

View File

@@ -0,0 +1,4 @@
#include "AltStoreCore.xcconfig"
// include cocoa pods config
#include? "../Pods/Target Support Files/Pods-AltStoreCore/Pods-AltStoreCore.debug.xcconfig"

View File

@@ -0,0 +1,4 @@
#include "AltStoreCore.xcconfig"
// include cocoa pods config
#include? "../Pods/Target Support Files/Pods-AltStoreCore/Pods-AltStoreCore.release.xcconfig"

View File

@@ -1,4 +1,4 @@
#include "Build.xcconfig"
#include "../Build.xcconfig"
// Since AltStoreCore is unsigned or the team is not configured, we re-define the bundle ID here to not have extra '.'
// This bundle ID doesn't need to change since altStoreCore framework lives inside SideStore main app's address space and won't have conflicts with other instances

View File

@@ -1,4 +1,4 @@
#include "Build.xcconfig"
#include "../Build.xcconfig"
PRODUCT_BUNDLE_IDENTIFIER = $(PRODUCT_BUNDLE_IDENTIFIER).AltWidget