diff --git a/.github/workflows/build-JS.yml b/.github/workflows/build-JS.yml
index 954cbf1..ff780f2 100644
--- a/.github/workflows/build-JS.yml
+++ b/.github/workflows/build-JS.yml
@@ -25,5 +25,5 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: Sora-IPA
- path: build/Sora-JS.ipa
+ path: build/Sora.ipa
compression-level: 0
diff --git a/Sora-JS/Info.plist b/Sora-JS/Info.plist
deleted file mode 100644
index 6a6654d..0000000
--- a/Sora-JS/Info.plist
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- NSAppTransportSecurity
-
- NSAllowsArbitraryLoads
-
-
-
-
diff --git a/Sora-JS.xcodeproj/project.pbxproj b/Sora.xcodeproj/project.pbxproj
similarity index 55%
rename from Sora-JS.xcodeproj/project.pbxproj
rename to Sora.xcodeproj/project.pbxproj
index ccf09bd..cf26c32 100644
--- a/Sora-JS.xcodeproj/project.pbxproj
+++ b/Sora.xcodeproj/project.pbxproj
@@ -7,200 +7,198 @@
objects = {
/* Begin PBXBuildFile section */
- 1329D5C72D298198008AEDA2 /* Sora_JSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1329D5C62D298198008AEDA2 /* Sora_JSApp.swift */; };
- 1329D5C92D298198008AEDA2 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1329D5C82D298198008AEDA2 /* ContentView.swift */; };
- 1329D5CB2D298199008AEDA2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1329D5CA2D298199008AEDA2 /* Assets.xcassets */; };
- 1329D5CE2D298199008AEDA2 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1329D5CD2D298199008AEDA2 /* Preview Assets.xcassets */; };
- 133D7C1B2D2ADC430075467E /* URLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C1A2D2ADC430075467E /* URLSession.swift */; };
- 133D7C1E2D2ADF110075467E /* MediaInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C1D2D2ADF110075467E /* MediaInfoView.swift */; };
- 13AEE6192D2A75110096D953 /* Modules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE6182D2A75110096D953 /* Modules.swift */; };
- 13AEE61B2D2A78050096D953 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE61A2D2A78050096D953 /* SettingsView.swift */; };
- 13AEE61D2D2A78160096D953 /* JSController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE61C2D2A78160096D953 /* JSController.swift */; };
- 13AEE6232D2AAF160096D953 /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 13AEE6222D2AAF160096D953 /* Kingfisher */; };
- 13AEE6252D2AB1730096D953 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE6242D2AB1730096D953 /* HomeView.swift */; };
- 13AEE6272D2AB1990096D953 /* LibraryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE6262D2AB1990096D953 /* LibraryView.swift */; };
- 13AEE6292D2AB2070096D953 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE6282D2AB2070096D953 /* SearchView.swift */; };
- 13AEE62D2D2ABCD30096D953 /* SettingsViewModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13AEE62C2D2ABCD30096D953 /* SettingsViewModule.swift */; };
+ 133D7C6E2D2BE2500075467E /* SoraApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C6D2D2BE2500075467E /* SoraApp.swift */; };
+ 133D7C702D2BE2500075467E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C6F2D2BE2500075467E /* ContentView.swift */; };
+ 133D7C722D2BE2520075467E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 133D7C712D2BE2520075467E /* Assets.xcassets */; };
+ 133D7C752D2BE2520075467E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 133D7C742D2BE2520075467E /* Preview Assets.xcassets */; };
+ 133D7C8C2D2BE2640075467E /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C7C2D2BE2630075467E /* SearchView.swift */; };
+ 133D7C8D2D2BE2640075467E /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C7D2D2BE2630075467E /* HomeView.swift */; };
+ 133D7C8E2D2BE2640075467E /* LibraryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C7E2D2BE2630075467E /* LibraryView.swift */; };
+ 133D7C8F2D2BE2640075467E /* MediaInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C802D2BE2630075467E /* MediaInfoView.swift */; };
+ 133D7C902D2BE2640075467E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C822D2BE2630075467E /* SettingsView.swift */; };
+ 133D7C912D2BE2640075467E /* SettingsViewModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C842D2BE2630075467E /* SettingsViewModule.swift */; };
+ 133D7C922D2BE2640075467E /* URLSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C872D2BE2640075467E /* URLSession.swift */; };
+ 133D7C932D2BE2640075467E /* Modules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C892D2BE2640075467E /* Modules.swift */; };
+ 133D7C942D2BE2640075467E /* JSController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 133D7C8B2D2BE2640075467E /* JSController.swift */; };
+ 133D7C972D2BE2AF0075467E /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 133D7C962D2BE2AF0075467E /* Kingfisher */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
- 1329D5C32D298198008AEDA2 /* Sora-JS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Sora-JS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
- 1329D5C62D298198008AEDA2 /* Sora_JSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sora_JSApp.swift; sourceTree = ""; };
- 1329D5C82D298198008AEDA2 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
- 1329D5CA2D298199008AEDA2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 1329D5CD2D298199008AEDA2 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
- 1329D5DA2D29821B008AEDA2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; };
- 133D7C1A2D2ADC430075467E /* URLSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLSession.swift; sourceTree = ""; };
- 133D7C1D2D2ADF110075467E /* MediaInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaInfoView.swift; sourceTree = ""; };
- 13AEE6182D2A75110096D953 /* Modules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Modules.swift; sourceTree = ""; };
- 13AEE61A2D2A78050096D953 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; };
- 13AEE61C2D2A78160096D953 /* JSController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSController.swift; sourceTree = ""; };
- 13AEE6242D2AB1730096D953 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; };
- 13AEE6262D2AB1990096D953 /* LibraryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryView.swift; sourceTree = ""; };
- 13AEE6282D2AB2070096D953 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; };
- 13AEE62C2D2ABCD30096D953 /* SettingsViewModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModule.swift; sourceTree = ""; };
+ 133D7C6A2D2BE2500075467E /* Sora.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sora.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 133D7C6D2D2BE2500075467E /* SoraApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoraApp.swift; sourceTree = ""; };
+ 133D7C6F2D2BE2500075467E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
+ 133D7C712D2BE2520075467E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ 133D7C742D2BE2520075467E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
+ 133D7C7C2D2BE2630075467E /* SearchView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; };
+ 133D7C7D2D2BE2630075467E /* HomeView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; };
+ 133D7C7E2D2BE2630075467E /* LibraryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LibraryView.swift; sourceTree = ""; };
+ 133D7C802D2BE2630075467E /* MediaInfoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaInfoView.swift; sourceTree = ""; };
+ 133D7C822D2BE2630075467E /* SettingsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; };
+ 133D7C842D2BE2630075467E /* SettingsViewModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsViewModule.swift; sourceTree = ""; };
+ 133D7C872D2BE2640075467E /* URLSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLSession.swift; sourceTree = ""; };
+ 133D7C892D2BE2640075467E /* Modules.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Modules.swift; sourceTree = ""; };
+ 133D7C8B2D2BE2640075467E /* JSController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSController.swift; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 1329D5C02D298198008AEDA2 /* Frameworks */ = {
+ 133D7C672D2BE2500075467E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 13AEE6232D2AAF160096D953 /* Kingfisher in Frameworks */,
+ 133D7C972D2BE2AF0075467E /* Kingfisher in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 1329D5BA2D298198008AEDA2 = {
+ 133D7C612D2BE2500075467E = {
isa = PBXGroup;
children = (
- 1329D5C52D298198008AEDA2 /* Sora-JS */,
- 1329D5C42D298198008AEDA2 /* Products */,
+ 133D7C6C2D2BE2500075467E /* Sora */,
+ 133D7C6B2D2BE2500075467E /* Products */,
);
sourceTree = "";
};
- 1329D5C42D298198008AEDA2 /* Products */ = {
+ 133D7C6B2D2BE2500075467E /* Products */ = {
isa = PBXGroup;
children = (
- 1329D5C32D298198008AEDA2 /* Sora-JS.app */,
+ 133D7C6A2D2BE2500075467E /* Sora.app */,
);
name = Products;
sourceTree = "";
};
- 1329D5C52D298198008AEDA2 /* Sora-JS */ = {
+ 133D7C6C2D2BE2500075467E /* Sora */ = {
isa = PBXGroup;
children = (
- 133D7C182D2ADC300075467E /* Utils */,
- 13AEE61E2D2AAD1E0096D953 /* Views */,
- 1329D5DA2D29821B008AEDA2 /* Info.plist */,
- 1329D5C62D298198008AEDA2 /* Sora_JSApp.swift */,
- 1329D5C82D298198008AEDA2 /* ContentView.swift */,
- 1329D5CA2D298199008AEDA2 /* Assets.xcassets */,
- 1329D5CC2D298199008AEDA2 /* Preview Content */,
+ 133D7C852D2BE2640075467E /* Utils */,
+ 133D7C7B2D2BE2630075467E /* Views */,
+ 133D7C6D2D2BE2500075467E /* SoraApp.swift */,
+ 133D7C6F2D2BE2500075467E /* ContentView.swift */,
+ 133D7C712D2BE2520075467E /* Assets.xcassets */,
+ 133D7C732D2BE2520075467E /* Preview Content */,
);
- path = "Sora-JS";
+ path = Sora;
sourceTree = "";
};
- 1329D5CC2D298199008AEDA2 /* Preview Content */ = {
+ 133D7C732D2BE2520075467E /* Preview Content */ = {
isa = PBXGroup;
children = (
- 1329D5CD2D298199008AEDA2 /* Preview Assets.xcassets */,
+ 133D7C742D2BE2520075467E /* Preview Assets.xcassets */,
);
path = "Preview Content";
sourceTree = "";
};
- 133D7C182D2ADC300075467E /* Utils */ = {
+ 133D7C7B2D2BE2630075467E /* Views */ = {
isa = PBXGroup;
children = (
- 133D7C192D2ADC370075467E /* Extensions */,
- 13AEE6202D2AAD390096D953 /* Modules */,
- 13AEE61F2D2AAD2D0096D953 /* Loaders */,
- );
- path = Utils;
- sourceTree = "";
- };
- 133D7C192D2ADC370075467E /* Extensions */ = {
- isa = PBXGroup;
- children = (
- 133D7C1A2D2ADC430075467E /* URLSession.swift */,
- );
- path = Extensions;
- sourceTree = "";
- };
- 133D7C1C2D2ADF060075467E /* MediaInfoView */ = {
- isa = PBXGroup;
- children = (
- 133D7C1D2D2ADF110075467E /* MediaInfoView.swift */,
- );
- path = MediaInfoView;
- sourceTree = "";
- };
- 13AEE61E2D2AAD1E0096D953 /* Views */ = {
- isa = PBXGroup;
- children = (
- 133D7C1C2D2ADF060075467E /* MediaInfoView */,
- 13AEE62A2D2ABCB40096D953 /* SettingsView */,
- 13AEE6242D2AB1730096D953 /* HomeView.swift */,
- 13AEE6262D2AB1990096D953 /* LibraryView.swift */,
- 13AEE6282D2AB2070096D953 /* SearchView.swift */,
+ 133D7C812D2BE2630075467E /* SettingsView */,
+ 133D7C7F2D2BE2630075467E /* MediaInfoView */,
+ 133D7C7C2D2BE2630075467E /* SearchView.swift */,
+ 133D7C7D2D2BE2630075467E /* HomeView.swift */,
+ 133D7C7E2D2BE2630075467E /* LibraryView.swift */,
);
path = Views;
sourceTree = "";
};
- 13AEE61F2D2AAD2D0096D953 /* Loaders */ = {
+ 133D7C7F2D2BE2630075467E /* MediaInfoView */ = {
isa = PBXGroup;
children = (
- 13AEE61C2D2A78160096D953 /* JSController.swift */,
+ 133D7C802D2BE2630075467E /* MediaInfoView.swift */,
);
- path = Loaders;
+ path = MediaInfoView;
sourceTree = "";
};
- 13AEE6202D2AAD390096D953 /* Modules */ = {
+ 133D7C812D2BE2630075467E /* SettingsView */ = {
isa = PBXGroup;
children = (
- 13AEE6182D2A75110096D953 /* Modules.swift */,
- );
- path = Modules;
- sourceTree = "";
- };
- 13AEE62A2D2ABCB40096D953 /* SettingsView */ = {
- isa = PBXGroup;
- children = (
- 13AEE62B2D2ABCC10096D953 /* SubViews */,
- 13AEE61A2D2A78050096D953 /* SettingsView.swift */,
+ 133D7C822D2BE2630075467E /* SettingsView.swift */,
+ 133D7C832D2BE2630075467E /* SubViews */,
);
path = SettingsView;
sourceTree = "";
};
- 13AEE62B2D2ABCC10096D953 /* SubViews */ = {
+ 133D7C832D2BE2630075467E /* SubViews */ = {
isa = PBXGroup;
children = (
- 13AEE62C2D2ABCD30096D953 /* SettingsViewModule.swift */,
+ 133D7C842D2BE2630075467E /* SettingsViewModule.swift */,
);
path = SubViews;
sourceTree = "";
};
+ 133D7C852D2BE2640075467E /* Utils */ = {
+ isa = PBXGroup;
+ children = (
+ 133D7C862D2BE2640075467E /* Extensions */,
+ 133D7C882D2BE2640075467E /* Modules */,
+ 133D7C8A2D2BE2640075467E /* Loaders */,
+ );
+ path = Utils;
+ sourceTree = "";
+ };
+ 133D7C862D2BE2640075467E /* Extensions */ = {
+ isa = PBXGroup;
+ children = (
+ 133D7C872D2BE2640075467E /* URLSession.swift */,
+ );
+ path = Extensions;
+ sourceTree = "";
+ };
+ 133D7C882D2BE2640075467E /* Modules */ = {
+ isa = PBXGroup;
+ children = (
+ 133D7C892D2BE2640075467E /* Modules.swift */,
+ );
+ path = Modules;
+ sourceTree = "";
+ };
+ 133D7C8A2D2BE2640075467E /* Loaders */ = {
+ isa = PBXGroup;
+ children = (
+ 133D7C8B2D2BE2640075467E /* JSController.swift */,
+ );
+ path = Loaders;
+ sourceTree = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- 1329D5C22D298198008AEDA2 /* Sora-JS */ = {
+ 133D7C692D2BE2500075467E /* Sora */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 1329D5D12D298199008AEDA2 /* Build configuration list for PBXNativeTarget "Sora-JS" */;
+ buildConfigurationList = 133D7C782D2BE2520075467E /* Build configuration list for PBXNativeTarget "Sora" */;
buildPhases = (
- 1329D5BF2D298198008AEDA2 /* Sources */,
- 1329D5C02D298198008AEDA2 /* Frameworks */,
- 1329D5C12D298198008AEDA2 /* Resources */,
+ 133D7C662D2BE2500075467E /* Sources */,
+ 133D7C672D2BE2500075467E /* Frameworks */,
+ 133D7C682D2BE2500075467E /* Resources */,
);
buildRules = (
);
dependencies = (
);
- name = "Sora-JS";
+ name = Sora;
packageProductDependencies = (
- 13AEE6222D2AAF160096D953 /* Kingfisher */,
+ 133D7C962D2BE2AF0075467E /* Kingfisher */,
);
- productName = "Sora-JS";
- productReference = 1329D5C32D298198008AEDA2 /* Sora-JS.app */;
+ productName = Sora;
+ productReference = 133D7C6A2D2BE2500075467E /* Sora.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
- 1329D5BB2D298198008AEDA2 /* Project object */ = {
+ 133D7C622D2BE2500075467E /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1320;
LastUpgradeCheck = 1320;
TargetAttributes = {
- 1329D5C22D298198008AEDA2 = {
+ 133D7C692D2BE2500075467E = {
CreatedOnToolsVersion = 13.2.1;
};
};
};
- buildConfigurationList = 1329D5BE2D298198008AEDA2 /* Build configuration list for PBXProject "Sora-JS" */;
+ buildConfigurationList = 133D7C652D2BE2500075467E /* Build configuration list for PBXProject "Sora" */;
compatibilityVersion = "Xcode 13.0";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -208,54 +206,54 @@
en,
Base,
);
- mainGroup = 1329D5BA2D298198008AEDA2;
+ mainGroup = 133D7C612D2BE2500075467E;
packageReferences = (
- 13AEE6212D2AAF160096D953 /* XCRemoteSwiftPackageReference "Kingfisher" */,
+ 133D7C952D2BE2AF0075467E /* XCRemoteSwiftPackageReference "Kingfisher" */,
);
- productRefGroup = 1329D5C42D298198008AEDA2 /* Products */;
+ productRefGroup = 133D7C6B2D2BE2500075467E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
- 1329D5C22D298198008AEDA2 /* Sora-JS */,
+ 133D7C692D2BE2500075467E /* Sora */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
- 1329D5C12D298198008AEDA2 /* Resources */ = {
+ 133D7C682D2BE2500075467E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 1329D5CE2D298199008AEDA2 /* Preview Assets.xcassets in Resources */,
- 1329D5CB2D298199008AEDA2 /* Assets.xcassets in Resources */,
+ 133D7C752D2BE2520075467E /* Preview Assets.xcassets in Resources */,
+ 133D7C722D2BE2520075467E /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
- 1329D5BF2D298198008AEDA2 /* Sources */ = {
+ 133D7C662D2BE2500075467E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 13AEE6272D2AB1990096D953 /* LibraryView.swift in Sources */,
- 1329D5C92D298198008AEDA2 /* ContentView.swift in Sources */,
- 133D7C1B2D2ADC430075467E /* URLSession.swift in Sources */,
- 13AEE62D2D2ABCD30096D953 /* SettingsViewModule.swift in Sources */,
- 13AEE61D2D2A78160096D953 /* JSController.swift in Sources */,
- 13AEE6192D2A75110096D953 /* Modules.swift in Sources */,
- 13AEE6292D2AB2070096D953 /* SearchView.swift in Sources */,
- 13AEE6252D2AB1730096D953 /* HomeView.swift in Sources */,
- 13AEE61B2D2A78050096D953 /* SettingsView.swift in Sources */,
- 1329D5C72D298198008AEDA2 /* Sora_JSApp.swift in Sources */,
- 133D7C1E2D2ADF110075467E /* MediaInfoView.swift in Sources */,
+ 133D7C902D2BE2640075467E /* SettingsView.swift in Sources */,
+ 133D7C932D2BE2640075467E /* Modules.swift in Sources */,
+ 133D7C702D2BE2500075467E /* ContentView.swift in Sources */,
+ 133D7C8F2D2BE2640075467E /* MediaInfoView.swift in Sources */,
+ 133D7C8D2D2BE2640075467E /* HomeView.swift in Sources */,
+ 133D7C8C2D2BE2640075467E /* SearchView.swift in Sources */,
+ 133D7C942D2BE2640075467E /* JSController.swift in Sources */,
+ 133D7C922D2BE2640075467E /* URLSession.swift in Sources */,
+ 133D7C912D2BE2640075467E /* SettingsViewModule.swift in Sources */,
+ 133D7C8E2D2BE2640075467E /* LibraryView.swift in Sources */,
+ 133D7C6E2D2BE2500075467E /* SoraApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
- 1329D5CF2D298199008AEDA2 /* Debug */ = {
+ 133D7C762D2BE2520075467E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -316,7 +314,7 @@
};
name = Debug;
};
- 1329D5D02D298199008AEDA2 /* Release */ = {
+ 133D7C772D2BE2520075467E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -371,19 +369,17 @@
};
name = Release;
};
- 1329D5D22D298199008AEDA2 /* Debug */ = {
+ 133D7C792D2BE2520075467E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_ASSET_PATHS = "\"Sora-JS/Preview Content\"";
+ DEVELOPMENT_ASSET_PATHS = "\"Sora/Preview Content\"";
DEVELOPMENT_TEAM = 399LMK6Q2Y;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
- INFOPLIST_FILE = "Sora-JS/Info.plist";
- INFOPLIST_KEY_CFBundleDisplayName = Sora;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -395,7 +391,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.2.0;
- PRODUCT_BUNDLE_IDENTIFIER = "me.cranci.Sora-JS";
+ PRODUCT_BUNDLE_IDENTIFIER = me.cranci.Sora;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
@@ -403,19 +399,17 @@
};
name = Debug;
};
- 1329D5D32D298199008AEDA2 /* Release */ = {
+ 133D7C7A2D2BE2520075467E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_ASSET_PATHS = "\"Sora-JS/Preview Content\"";
+ DEVELOPMENT_ASSET_PATHS = "\"Sora/Preview Content\"";
DEVELOPMENT_TEAM = 399LMK6Q2Y;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
- INFOPLIST_FILE = "Sora-JS/Info.plist";
- INFOPLIST_KEY_CFBundleDisplayName = Sora;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
@@ -427,7 +421,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 0.2.0;
- PRODUCT_BUNDLE_IDENTIFIER = "me.cranci.Sora-JS";
+ PRODUCT_BUNDLE_IDENTIFIER = me.cranci.Sora;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
@@ -438,20 +432,20 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 1329D5BE2D298198008AEDA2 /* Build configuration list for PBXProject "Sora-JS" */ = {
+ 133D7C652D2BE2500075467E /* Build configuration list for PBXProject "Sora" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 1329D5CF2D298199008AEDA2 /* Debug */,
- 1329D5D02D298199008AEDA2 /* Release */,
+ 133D7C762D2BE2520075467E /* Debug */,
+ 133D7C772D2BE2520075467E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 1329D5D12D298199008AEDA2 /* Build configuration list for PBXNativeTarget "Sora-JS" */ = {
+ 133D7C782D2BE2520075467E /* Build configuration list for PBXNativeTarget "Sora" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 1329D5D22D298199008AEDA2 /* Debug */,
- 1329D5D32D298199008AEDA2 /* Release */,
+ 133D7C792D2BE2520075467E /* Debug */,
+ 133D7C7A2D2BE2520075467E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -459,7 +453,7 @@
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
- 13AEE6212D2AAF160096D953 /* XCRemoteSwiftPackageReference "Kingfisher" */ = {
+ 133D7C952D2BE2AF0075467E /* XCRemoteSwiftPackageReference "Kingfisher" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/onevcat/Kingfisher.git";
requirement = {
@@ -470,12 +464,12 @@
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
- 13AEE6222D2AAF160096D953 /* Kingfisher */ = {
+ 133D7C962D2BE2AF0075467E /* Kingfisher */ = {
isa = XCSwiftPackageProductDependency;
- package = 13AEE6212D2AAF160096D953 /* XCRemoteSwiftPackageReference "Kingfisher" */;
+ package = 133D7C952D2BE2AF0075467E /* XCRemoteSwiftPackageReference "Kingfisher" */;
productName = Kingfisher;
};
/* End XCSwiftPackageProductDependency section */
};
- rootObject = 1329D5BB2D298198008AEDA2 /* Project object */;
+ rootObject = 133D7C622D2BE2500075467E /* Project object */;
}
diff --git a/Sora-JS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Sora.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Sora-JS.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to Sora.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/Sora-JS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Sora.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from Sora-JS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to Sora.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/Sora-JS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Sora.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
similarity index 100%
rename from Sora-JS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
rename to Sora.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
diff --git a/Sora-JS/Assets.xcassets/AccentColor.colorset/Contents.json b/Sora/Assets.xcassets/AccentColor.colorset/Contents.json
similarity index 100%
rename from Sora-JS/Assets.xcassets/AccentColor.colorset/Contents.json
rename to Sora/Assets.xcassets/AccentColor.colorset/Contents.json
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/120-1.png b/Sora/Assets.xcassets/AppIcon.appiconset/120-1.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/120-1.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/120-1.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/120.png b/Sora/Assets.xcassets/AppIcon.appiconset/120.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/120.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/120.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/152.png b/Sora/Assets.xcassets/AppIcon.appiconset/152.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/152.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/152.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/167.png b/Sora/Assets.xcassets/AppIcon.appiconset/167.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/167.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/167.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/180.png b/Sora/Assets.xcassets/AppIcon.appiconset/180.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/180.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/180.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/20.png b/Sora/Assets.xcassets/AppIcon.appiconset/20.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/20.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/20.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/29.png b/Sora/Assets.xcassets/AppIcon.appiconset/29.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/29.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/29.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/40-1.png b/Sora/Assets.xcassets/AppIcon.appiconset/40-1.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/40-1.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/40-1.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/40-2.png b/Sora/Assets.xcassets/AppIcon.appiconset/40-2.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/40-2.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/40-2.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/40.png b/Sora/Assets.xcassets/AppIcon.appiconset/40.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/40.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/40.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/58-1.png b/Sora/Assets.xcassets/AppIcon.appiconset/58-1.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/58-1.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/58-1.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/58.png b/Sora/Assets.xcassets/AppIcon.appiconset/58.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/58.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/58.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/60.png b/Sora/Assets.xcassets/AppIcon.appiconset/60.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/60.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/60.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/76.png b/Sora/Assets.xcassets/AppIcon.appiconset/76.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/76.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/76.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/80-1.png b/Sora/Assets.xcassets/AppIcon.appiconset/80-1.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/80-1.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/80-1.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/80.png b/Sora/Assets.xcassets/AppIcon.appiconset/80.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/80.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/80.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/87.png b/Sora/Assets.xcassets/AppIcon.appiconset/87.png
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/87.png
rename to Sora/Assets.xcassets/AppIcon.appiconset/87.png
diff --git a/Sora-JS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sora/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Sora-JS/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to Sora/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/Sora-JS/Assets.xcassets/Contents.json b/Sora/Assets.xcassets/Contents.json
similarity index 100%
rename from Sora-JS/Assets.xcassets/Contents.json
rename to Sora/Assets.xcassets/Contents.json
diff --git a/Sora-JS/ContentView.swift b/Sora/ContentView.swift
similarity index 93%
rename from Sora-JS/ContentView.swift
rename to Sora/ContentView.swift
index 44db28f..01fca9c 100644
--- a/Sora-JS/ContentView.swift
+++ b/Sora/ContentView.swift
@@ -1,8 +1,8 @@
//
// ContentView.swift
-// Sora-JS
+// Sora
//
-// Created by Francesco on 04/01/25.
+// Created by Francesco on 06/01/25.
//
import SwiftUI
diff --git a/Sora-JS/Preview Content/Preview Assets.xcassets/Contents.json b/Sora/Preview Content/Preview Assets.xcassets/Contents.json
similarity index 100%
rename from Sora-JS/Preview Content/Preview Assets.xcassets/Contents.json
rename to Sora/Preview Content/Preview Assets.xcassets/Contents.json
diff --git a/Sora-JS/Sora_JSApp.swift b/Sora/SoraApp.swift
similarity index 83%
rename from Sora-JS/Sora_JSApp.swift
rename to Sora/SoraApp.swift
index 70245bd..d9adbf4 100644
--- a/Sora-JS/Sora_JSApp.swift
+++ b/Sora/SoraApp.swift
@@ -1,14 +1,14 @@
//
-// Sora_JSApp.swift
-// Sora-JS
+// SoraApp.swift
+// Sora
//
-// Created by Francesco on 04/01/25.
+// Created by Francesco on 06/01/25.
//
import SwiftUI
@main
-struct Sora_JSApp: App {
+struct SoraApp: App {
@StateObject private var settings = Settings()
@StateObject private var moduleManager = ModuleManager()
diff --git a/Sora-JS/Utils/Extensions/URLSession.swift b/Sora/Utils/Extensions/URLSession.swift
similarity index 100%
rename from Sora-JS/Utils/Extensions/URLSession.swift
rename to Sora/Utils/Extensions/URLSession.swift
diff --git a/Sora-JS/Utils/Loaders/JSController.swift b/Sora/Utils/Loaders/JSController.swift
similarity index 99%
rename from Sora-JS/Utils/Loaders/JSController.swift
rename to Sora/Utils/Loaders/JSController.swift
index 92bd0f6..946d1ed 100644
--- a/Sora-JS/Utils/Loaders/JSController.swift
+++ b/Sora/Utils/Loaders/JSController.swift
@@ -1,6 +1,6 @@
//
// JSController.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/Sora-JS/Utils/Modules/Modules.swift b/Sora/Utils/Modules/Modules.swift
similarity index 99%
rename from Sora-JS/Utils/Modules/Modules.swift
rename to Sora/Utils/Modules/Modules.swift
index 22946c6..f33a1c0 100644
--- a/Sora-JS/Utils/Modules/Modules.swift
+++ b/Sora/Utils/Modules/Modules.swift
@@ -1,6 +1,6 @@
//
// Modules.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/Sora-JS/Views/HomeView.swift b/Sora/Views/HomeView.swift
similarity index 94%
rename from Sora-JS/Views/HomeView.swift
rename to Sora/Views/HomeView.swift
index db6742f..72ecb7c 100644
--- a/Sora-JS/Views/HomeView.swift
+++ b/Sora/Views/HomeView.swift
@@ -1,6 +1,6 @@
//
// HomeView.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/Sora-JS/Views/LibraryView.swift b/Sora/Views/LibraryView.swift
similarity index 95%
rename from Sora-JS/Views/LibraryView.swift
rename to Sora/Views/LibraryView.swift
index 1e6408d..11b7313 100644
--- a/Sora-JS/Views/LibraryView.swift
+++ b/Sora/Views/LibraryView.swift
@@ -1,6 +1,6 @@
//
// LibraryView.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/Sora-JS/Views/MediaInfoView/MediaInfoView.swift b/Sora/Views/MediaInfoView/MediaInfoView.swift
similarity index 99%
rename from Sora-JS/Views/MediaInfoView/MediaInfoView.swift
rename to Sora/Views/MediaInfoView/MediaInfoView.swift
index fb74815..9f901ad 100644
--- a/Sora-JS/Views/MediaInfoView/MediaInfoView.swift
+++ b/Sora/Views/MediaInfoView/MediaInfoView.swift
@@ -1,6 +1,6 @@
//
// MediaInfoView.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
@@ -50,4 +50,4 @@ struct MediaInfoView: View {
.navigationTitle("Media Info")
.navigationBarTitleDisplayMode(.inline)
}
-}
\ No newline at end of file
+}
diff --git a/Sora-JS/Views/SearchView.swift b/Sora/Views/SearchView.swift
similarity index 99%
rename from Sora-JS/Views/SearchView.swift
rename to Sora/Views/SearchView.swift
index 873fc75..7bef4ef 100644
--- a/Sora-JS/Views/SearchView.swift
+++ b/Sora/Views/SearchView.swift
@@ -1,6 +1,6 @@
//
// SearchView.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/Sora-JS/Views/SettingsView/SettingsView.swift b/Sora/Views/SettingsView/SettingsView.swift
similarity index 99%
rename from Sora-JS/Views/SettingsView/SettingsView.swift
rename to Sora/Views/SettingsView/SettingsView.swift
index f882c4f..a3b059c 100644
--- a/Sora-JS/Views/SettingsView/SettingsView.swift
+++ b/Sora/Views/SettingsView/SettingsView.swift
@@ -1,6 +1,6 @@
//
// SettingsView.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/Sora-JS/Views/SettingsView/SubViews/SettingsViewModule.swift b/Sora/Views/SettingsView/SubViews/SettingsViewModule.swift
similarity index 99%
rename from Sora-JS/Views/SettingsView/SubViews/SettingsViewModule.swift
rename to Sora/Views/SettingsView/SubViews/SettingsViewModule.swift
index 4cce272..58f4eb3 100644
--- a/Sora-JS/Views/SettingsView/SubViews/SettingsViewModule.swift
+++ b/Sora/Views/SettingsView/SubViews/SettingsViewModule.swift
@@ -1,6 +1,6 @@
//
// SettingsViewModule.swift
-// Sora-JS
+// Sora
//
// Created by Francesco on 05/01/25.
//
diff --git a/assets/Sora_banner.png b/assets/Sora_banner.png
new file mode 100644
index 0000000..d99b8e7
Binary files /dev/null and b/assets/Sora_banner.png differ
diff --git a/assets/banner2.png b/assets/banner2.png
new file mode 100644
index 0000000..a46bc4f
Binary files /dev/null and b/assets/banner2.png differ
diff --git a/ipabuild.sh b/ipabuild.sh
index 26606a7..e9ea9bd 100755
--- a/ipabuild.sh
+++ b/ipabuild.sh
@@ -5,7 +5,7 @@ set -e
cd "$(dirname "$0")"
WORKING_LOCATION="$(pwd)"
-APPLICATION_NAME=Sora-JS
+APPLICATION_NAME=Sora
if [ ! -d "build" ]; then
mkdir build
@@ -35,8 +35,8 @@ fi
mkdir Payload
-cp -r Sora-JS.app Payload/Sora-JS.app
-strip Payload/Sora-JS.app/Sora-JS
-zip -vr Sora-JS.ipa Payload
-rm -rf Sora-JS.app
+cp -r Sora.app Payload/Sora.app
+strip Payload/Sora.app/Sora
+zip -vr Sora.ipa Payload
+rm -rf Sora.app
rm -rf Payload