From 4d6be1deac3e2092676f46a7a16b65c3279f6063 Mon Sep 17 00:00:00 2001 From: Mark Chan <45706356+WindowsMEMZ@users.noreply.github.com> Date: Fri, 8 Mar 2024 23:42:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E6=BB=9A=E4=BB=A3=E7=A0=81=E5=88=B0?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=BA=93=E5=89=8D=E7=89=88=E6=9C=AC=20(#306)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "Update dylib-export.yml" This reverts commit 0197a19739e92e36a8a5c41af6a4bbbdffc7d90a. * rev: reverted to 6622d4 because dylib cannot be loaded under TestFlight and App Store signing * Fix ci scripts * Fix ci scripts --- .../{dylib-export.yml => company-export.yml} | 55 +- .github/workflows/statuscheck-runner.yml | 8 +- DarockBili.dynamic/AppMain.swift | 528 ------- DarockBili.dynamic/DarockBili_dynamic.swift | 43 - DarockBili.xcodeproj/project.pbxproj | 1335 ++++++----------- .../xcshareddata/xcschemes/ALL_BUILD.xcscheme | 66 - .../DarockBili.dynamic.watch.xcscheme | 84 -- .../xcschemes/DarockBili.dynamic.xcscheme | 84 -- Localizable.xcstrings | 545 +++---- MeowBili/DylibDownloadView.swift | 134 -- MeowBili/Extension/CodeExt.swift | 37 - MeowBili/InMain/MainView.swift | 29 +- MeowBili/MeowBiliApp.swift | 501 ++++++- MeowBili/Others/AboutView.swift | 5 +- MeowBili/Others/CCodes/OCCodeExt.m | 1 - MeowBili/Others/SettingsView.swift | 228 +-- README.md | 4 +- ci_scripts/ci_post_xcodebuild.sh | 12 + ci_scripts/ci_pre_xcodebuild.sh | 13 + 19 files changed, 1215 insertions(+), 2497 deletions(-) rename .github/workflows/{dylib-export.yml => company-export.yml} (60%) delete mode 100644 DarockBili.dynamic/AppMain.swift delete mode 100644 DarockBili.dynamic/DarockBili_dynamic.swift delete mode 100644 DarockBili.xcodeproj/xcshareddata/xcschemes/ALL_BUILD.xcscheme delete mode 100644 DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.watch.xcscheme delete mode 100644 DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.xcscheme delete mode 100644 MeowBili/DylibDownloadView.swift create mode 100755 ci_scripts/ci_post_xcodebuild.sh diff --git a/.github/workflows/dylib-export.yml b/.github/workflows/company-export.yml similarity index 60% rename from .github/workflows/dylib-export.yml rename to .github/workflows/company-export.yml index 30f8ce7ee..5ab0c026e 100644 --- a/.github/workflows/dylib-export.yml +++ b/.github/workflows/company-export.yml @@ -1,4 +1,4 @@ -name: Dylib Export Workflow +name: Company IPA Export Workflow on: workflow_dispatch: @@ -12,7 +12,7 @@ on: jobs: build: - name: Build and Export Dylibs + name: Build and Export Company App runs-on: macos-13 permissions: checks: write @@ -31,7 +31,7 @@ jobs: -f state='pending' \ -f target_url='https://github.com/Darock-Studio/Darock-Bili/actions/runs/${{ github.run_id }}' \ -f description='Building...' \ - -f context='Dylibs Export' + -f context='Company IPA Export' - name: Checkout uses: actions/checkout@v3 @@ -67,23 +67,50 @@ jobs: mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles + - name: Replace Bundle ID + run: | + sed -i "" 's/com.darock.DarockBili.watchkitapp/com.djbx.life.agent.dat/g' DarockBili.xcodeproj/project.pbxproj + sed -i "" 's/com.darock.DarockBili/com.djbx.life.agent.dat/g' DarockBili.xcodeproj/project.pbxproj + + - name: Restore Caches + uses: actions/cache/restore@v3 + with: + key: ${{ runner.os }}-pr-company-export-cache- + path: ~/Library/Developer/Xcode/DerivedData + + - name: Resolve Package Dependencies + run: xcodebuild -resolvePackageDependencies -project ./DarockBili.xcodeproj -scheme 'DarockBili Watch App' + + - name: Get Current Time + id: current-time + run: echo "time=$(date +"%Y%m%d%H%M%S")" >> $GITHUB_OUTPUT + + - name: Save Caches + uses: actions/cache/save@v3 + with: + key: ${{ runner.os }}-pr-company-export-cache-${{ steps.current-time.outputs.time }} + path: ~/Library/Developer/Xcode/DerivedData + - name: Update Status Env run: echo "FIN_STATUS=failure" >> $GITHUB_ENV - - name: Build Dylibs + - name: Archive DarockBili App + env: + COMPANY_PROV_UUID: ${{ secrets.COMPANY_PROV_UUID }} + COMPANY_P12_NAME: ${{ secrets.COMPANY_P12_NAME }} + run: xcodebuild archive -project ./DarockBili.xcodeproj -scheme 'DarockBili Watch App' -archivePath ./build.xcarchive -IDEPostProgressNotifications=YES CODE_SIGN_IDENTITY=- AD_HOC_CODE_SIGNING_ALLOWED=YES CODE_SIGN_STYLE=Automatic DEVELOPMENT_TEAM=H5SM6ZV38F COMPILER_INDEX_STORE_ENABLE=NO -quiet + + - name: Export IPA File run: | - mkdir build - xcodebuild build -project ./DarockBili.xcodeproj -scheme 'DarockBili.dynamic.watch' -destination generic/platform=watchOS -IDEPostProgressNotifications=YES CODE_SIGN_IDENTITY=- AD_HOC_CODE_SIGNING_ALLOWED=YES CODE_SIGN_STYLE=Automatic COMPILER_INDEX_STORE_ENABLE=NO -quiet -derivedDataPath ./build + xcodebuild -exportArchive -archivePath ./build.xcarchive -exportPath ./ -exportOptionsPlist ./ExportOptions/ad-hoc.plist -DVTProvisioningIsManaged=YES -DVTSkipCertificateValidityCheck=YES + mv '喵哩喵哩.ipa' DarockBili_Company.ipa + echo "FIN_STATUS=success" >> $GITHUB_ENV - - name: Resign Dylibs - run: | - codesign -fs B57D8PP775 build/Build/Products/Release-watchos/DarockBili.dynamic.watch.dylib - - - name: Upload watchOS Dylib + - name: Upload IPA File uses: actions/upload-artifact@v3 with: - name: Release-watchos - path: ./build/Build/Products/Release-watchos/DarockBili.dynamic.watch.dylib + name: Company IPA + path: ./DarockBili_Company.ipa - name: Update Check Status if: always() @@ -95,5 +122,5 @@ jobs: /repos/${{ github.repository }}/statuses/${{ inputs.lsha }} \ -f state='${{ env.FIN_STATUS }}' \ -f target_url='https://github.com/Darock-Studio/Darock-Bili/actions/runs/${{ github.run_id }}' \ - -f context='Dylibs Export' + -f context='Company IPA Export' diff --git a/.github/workflows/statuscheck-runner.yml b/.github/workflows/statuscheck-runner.yml index 95b5a3346..30a799cee 100644 --- a/.github/workflows/statuscheck-runner.yml +++ b/.github/workflows/statuscheck-runner.yml @@ -24,7 +24,7 @@ jobs: echo "The comment content contains the specified text. Continuing with further actions." echo "::set-output name=shouldc::true" fi - if [[ "${{ github.event.comment.body }}" != *"!Export Dylib"* ]]; then + if [[ "${{ github.event.comment.body }}" != *"!Export IPA"* ]]; then echo "::set-output name=shouldtun::false" else echo "::set-output name=shouldtun::true" @@ -70,8 +70,8 @@ jobs: with: workflow: status-check.yml inputs: '{ "psha": "${{ needs.get-head-sha.outputs.psha }}", "repository": "${{ needs.get-head-sha.outputs.repository }}", "lsha": "${{ needs.get-head-sha.outputs.lsha }}" }' - call-dylib-export-workflow: - name: Call Dylib Export Overflow + call-company-export-workflow: + name: Call Company Export Overflow needs: - get-head-sha - checkif @@ -83,7 +83,7 @@ jobs: - name: Call uses: benc-uk/workflow-dispatch@v1.2.2 with: - workflow: dylib-export.yml + workflow: company-export.yml inputs: '{ "psha": "${{ needs.get-head-sha.outputs.psha }}", "repository": "${{ needs.get-head-sha.outputs.repository }}", "lsha": "${{ needs.get-head-sha.outputs.lsha }}" }' call-tf-deploy-workflow: name: Call TestFlight Internal Deploy Overflow diff --git a/DarockBili.dynamic/AppMain.swift b/DarockBili.dynamic/AppMain.swift deleted file mode 100644 index aa17bb26e..000000000 --- a/DarockBili.dynamic/AppMain.swift +++ /dev/null @@ -1,528 +0,0 @@ -// -// -// MeowBiliApp.swift -// MeowBili -// -// Created by memz233 on 2024/2/10. -// -//===----------------------------------------------------------------------===// -// -// This source file is part of the MeowBili open source project -// -// Copyright (c) 2024 Darock Studio and the MeowBili project authors -// Licensed under GNU General Public License v3 -// -// See https://darock.top/LICENSE.txt for license information -// -//===----------------------------------------------------------------------===// - -import Darwin -import SwiftUI -import Mixpanel -import DarockKit -import SwiftyJSON -#if !os(visionOS) -import SDWebImage -import SDWebImagePDFCoder -import SDWebImageSVGCoder -import SDWebImageWebPCoder -#else -import RealityKit -#endif -#if os(watchOS) -import WatchKit -#else -import CoreHaptics -#endif - -//!!!: Debug Setting, Set false Before Release -var debug = false - -var debugControlStdout = "stdo\n" - -var pShowTipText = "" -var pShowTipSymbol = "" -var pTipBoxOffset: CGFloat = 80 - -var isShowMemoryInScreen = false - -var isInOfflineMode = false - -#if os(watchOS) -var isInLowBatteryMode = false -#endif - -// BUVID -var globalBuvid3 = "" -var globalBuvid4 = "" - -#if !os(watchOS) -var globalHapticEngine: CHHapticEngine? -#endif - -#if os(visionOS) -var globalWindowSize = Size3D() -#endif - -struct AppMainView: View { - @Environment(\.scenePhase) var scenePhase - // Screen Time - @AppStorage("isSleepNotificationOn") var isSleepNotificationOn = false - @AppStorage("notifyHour") var notifyHour = 0 - @AppStorage("notifyMinute") var notifyMinute = 0 - @AppStorage("IsScreenTimeEnabled") var isScreenTimeEnabled = true - @State var screenTimeCaculateTimer: Timer? - @State var showTipText = "" - @State var showTipSymbol = "" - @State var tipBoxOffset: CGFloat = 80 - @State var isLowBatteryMode = false - // Debug Controls - @State var isShowingDebugControls = false - @State var systemResourceRefreshTimer: Timer? - @State var memoryUsage: Float = 0.0 - @State var isShowMemoryUsage = false - @State var currentHour = 0 - @State var currentMinute = 0 - // Handoff - @State var handoffVideoDetails = [String: String]() - @State var shouldPushVideoView = false - // FileLocker - @State var fileLockerPwd = UserDefaults.standard.string(forKey: "FileLockerPassword") ?? "" - @State var fileLockerRecoverCode = UserDefaults.standard.string(forKey: "FileLockerRecoverCode") ?? "" - @State var fileLockerRetryCount = 0 - @State var fileLockerInput = "" - @State var recoveryCodeInput = "" - // Navigators - @State var isUrlOpenVideoPresented = false - @State var urlOpenVideoDetails = [String: String]() - @State var isFirstOpen = false -#if os(watchOS) - @State var isMemoryWarningPresented = false -#else - @State var shouldShowAppName = false -#endif - var body: some View { - Group { - if fileLockerPwd != "" { - List { - Section { - Text(fileLockerRetryCount == 0 ? "文件保险箱已启用" : "输入错误") - .font(.title3) - .bold() - .listRowBackground(Color.clear) - } - Section { - TextField("密码", text: $fileLockerInput) - .submitLabel(.continue) - .onSubmit { - if fileLockerInput == fileLockerPwd { - fileLockerPwd = "" - } else { - fileLockerInput = "" - fileLockerRetryCount++ - } - } - } - if fileLockerRetryCount >= 3 { - Section { - TextField("使用恢复密钥", text: $recoveryCodeInput) - .submitLabel(.continue) - .onSubmit { - if recoveryCodeInput == fileLockerRecoverCode { - fileLockerPwd = "" - } else { - recoveryCodeInput = "" - fileLockerRetryCount++ - } - } - } - } - } - } else { - ZStack { -#if !os(visionOS) -#if os(watchOS) - ContentView() - VStack { - Spacer() - if #available(watchOS 10, *) { - HStack { - Image(systemName: showTipSymbol) - Text(showTipText) - } - .font(.system(size: 14, weight: .bold)) - .frame(width: 110, height: 40) - .lineLimit(1) - .minimumScaleFactor(0.1) - .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 8, style: .continuous)) - .offset(y: tipBoxOffset) - .animation(.easeOut(duration: 0.4), value: tipBoxOffset) - } else { - HStack { - Image(systemName: showTipSymbol) - Text(showTipText) - } - .font(.system(size: 14, weight: .bold)) - .foregroundColor(.black) - .frame(width: 110, height: 40) - .lineLimit(1) - .minimumScaleFactor(0.1) - .background { - Color.white - .ignoresSafeArea() - .frame(width: 120, height: 40) - .cornerRadius(8) - .foregroundColor(Color(hex: 0xF5F5F5)) - .opacity(0.95) - } - .offset(y: tipBoxOffset) - .animation(.easeOut(duration: 0.4), value: tipBoxOffset) - } - } -#else - NavigationStack { - ZStack { - // Hide NavigationLinks behind - NavigationLink("", isActive: $isUrlOpenVideoPresented, destination: { VideoDetailView(videoDetails: urlOpenVideoDetails) }) - ContentView() - .onOpenURL { url in - let dec = url.absoluteString.urlDecoded() - let spd = dec.split(separator: "/").dropFirst() - debugPrint(spd) - switch spd[1] { - case "withvideodetail": - let kvs = dec.split(separator: "/", maxSplits: 1).dropFirst()[2].split(separator: "&") // e.g.: ["BV=xxx", "Title=xxx"] - urlOpenVideoDetails.removeAll() - for kv in kvs { - let kav = kv.split(separator: "=") - urlOpenVideoDetails.updateValue(String(kav[1]), forKey: String(kav[0])) - } - isUrlOpenVideoPresented = true - case "openbvid": - let bvid = spd[2] - urlOpenVideoDetails = ["Pic": "", "Title": "Loading...", "BV": String(bvid), "UP": "Loading...", "View": "1", "Danmaku": "1"] - isUrlOpenVideoPresented = true - default: - break - } - } - } - } - if shouldShowAppName { - VStack { - Spacer() - .frame(height: 10) - ZStack { - Capsule() - .fill(Color.accentColor) - .frame(width: 60, height: 20) - HStack { - Text("喵哩喵哩") - .foregroundStyle(Color.white) - .font(.system(size: 12, weight: .medium)) - } - } - Spacer() - } - .ignoresSafeArea() - } -#endif -#else - GeometryReader3D { proxy3D in - ContentView() - .onAppear { - Task { - // Delay first - rdar://so?77970699 - // rdar://so?76698516 - try await Task.sleep(nanoseconds: 1_000_000_000) - globalWindowSize = proxy3D.size - } - } - } -#endif - } -#if os(watchOS) - .sheet(isPresented: $isMemoryWarningPresented, content: { MemoryWarningView() }) -#endif - .onAppear { -#if os(watchOS) - isInLowBatteryMode = UserDefaults.standard.bool(forKey: "IsInLowBatteryMode") -#endif - - Timer.scheduledTimer(withTimeInterval: 0.05, repeats: true) { _ in - showTipText = pShowTipText - showTipSymbol = pShowTipSymbol - UserDefaults.standard.set(isLowBatteryMode, forKey: "IsInLowBatteryMode") - Timer.scheduledTimer(withTimeInterval: 0.2, repeats: false) { timer in - tipBoxOffset = pTipBoxOffset - timer.invalidate() - } - } - -#if os(watchOS) - Timer.scheduledTimer(withTimeInterval: 5.0, repeats: true) { timer in - if getMemory() > 240.0 { - isMemoryWarningPresented = true - timer.invalidate() - } - } -#endif - - Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in - if isShowMemoryInScreen { - isShowMemoryUsage = true - Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { _ in - memoryUsage = getMemory() - } - timer.invalidate() - } - } - let timer = Timer(timeInterval: 1, repeats: true) { _ in - currentHour = getCurrentTime().hour - currentMinute = getCurrentTime().minute - } - let sleepTimeCheck = Timer(timeInterval: 60, repeats: true) { _ in - if currentHour == notifyHour && currentMinute == notifyMinute && isSleepNotificationOn { -#if !os(visionOS) && !os(watchOS) - AlertKitAPI.present(title: String(localized: "Sleep.notification"), icon: .heart, style: .iOS17AppleMusic, haptic: .warning) -#else - tipWithText(String(localized: "Sleep.notification"), symbol: "bed.double.fill") -#endif - } - } - RunLoop.current.add(timer, forMode: .default) - timer.fire() - RunLoop.current.add(sleepTimeCheck, forMode: .default) - sleepTimeCheck.fire() - } - .overlay { - VStack { - HStack { - if isLowBatteryMode { - Image(systemName: "circle") - .font(.system(size: 17, weight: .heavy)) - .foregroundColor(.accentColor) - .offset(y: 10) - } - } - Spacer() - } - .ignoresSafeArea() - if isShowMemoryUsage { - VStack { - HStack { - Spacer() - Text("Memory.indicator.\(String(format: "%.2f", memoryUsage))") - .font(.system(size: 10, weight: .medium)) - .offset(y: 26) - } - Spacer() - } - .ignoresSafeArea() - } - if debug { - HStack { - VStack { - Button(action: { - isShowingDebugControls.toggle() - }, label: { - Text(isShowingDebugControls ? "Close Debug Controls" : "Show Debug Controls") - .font(.system(size: 12)) - .foregroundColor(.blue) - }) - .buttonStyle(.plain) - .offset(x: 15, y: 5) - if isShowingDebugControls { - VStack { - HStack { - Text("Memory Usage: \(memoryUsage) MB") - Spacer() - } - .allowsHitTesting(false) - } - .font(.system(size: 10)) - - .onAppear { - Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in - systemResourceRefreshTimer = timer - memoryUsage = getMemory() - } - } - .onDisappear { - systemResourceRefreshTimer?.invalidate() - } - } - Spacer() - } - .padding(.horizontal, 3) - .padding(.vertical, 1) - Spacer() - } - .ignoresSafeArea() - } - } - .onContinueUserActivity("com.darock.DarockBili.video-play") { activity in - if let videoDetails = activity.userInfo as? [String: String] { - handoffVideoDetails = videoDetails - shouldPushVideoView = true - } - } - } - } - .onChange(of: scenePhase) { value in - switch value { - case .background: - break - case .inactive: -#if os(iOS) - shouldShowAppName = false -#endif - case .active: -#if !os(visionOS) - SDImageCodersManager.shared.addCoder(SDImageWebPCoder.shared) - SDImageCodersManager.shared.addCoder(SDImageSVGCoder.shared) - SDImageCodersManager.shared.addCoder(SDImagePDFCoder.shared) - SDImageCache.shared.config.maxMemoryCost = 1024 * 1024 * 10 - SDImageCache.shared.config.shouldCacheImagesInMemory = false - SDImageCache.shared.config.shouldUseWeakMemoryCache = true - SDImageCache.shared.clearMemory() -#endif - - updateBuvid() - -#if os(watchOS) - WKInterfaceDevice.current().isBatteryMonitoringEnabled = true -#else - if CHHapticEngine.capabilitiesForHardware().supportsHaptics { - do { - globalHapticEngine = try CHHapticEngine() - try globalHapticEngine?.start() - } catch { - print("创建引擎时出现错误: \(error.localizedDescription)") - } - } - - shouldShowAppName = true -#endif - - if isScreenTimeEnabled { - if screenTimeCaculateTimer == nil { - Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in - screenTimeCaculateTimer = timer - let df = DateFormatter() - df.dateFormat = "yyyy-MM-dd" - let dateStr = df.string(from: Date.now) - UserDefaults.standard.set(UserDefaults.standard.integer(forKey: "ScreenTime\(dateStr)") + 1, forKey: "ScreenTime\(dateStr)") - } - } - } - - if !isFirstOpen { - #if !os(watchOS) - Mixpanel.initialize(token: "37d4aaecc64cae16353c2fe7dbb0513c", trackAutomaticEvents: false) - #else - Mixpanel.initialize(token: "37d4aaecc64cae16353c2fe7dbb0513c") - #endif - // ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Wow you see a token there, I'm not forget to hide it because you are no able to - // do anything important by this token >_- - if (UserDefaults.standard.object(forKey: "IsAllowMixpanel") as? Bool) ?? true { - Mixpanel.mainInstance().track(event: "Open App") - if let uid = UserDefaults.standard.string(forKey: "DedeUserId") { - Mixpanel.mainInstance().registerSuperPropertiesOnce(["DedeUserId": uid]) - } - } - isFirstOpen = true - } - @unknown default: - break - } - } - } -} - -public func tipWithText(_ text: String, symbol: String = "", time: Double = 3.0) { - pShowTipText = text - pShowTipSymbol = symbol - pTipBoxOffset = 7 - Timer.scheduledTimer(withTimeInterval: time, repeats: false) { timer in - pTipBoxOffset = 80 - timer.invalidate() - } -} - -#if !os(watchOS) -func signalErrorRecord(_ errorNum: Int32, _ errorSignal: String) { - var symbols = "" - for symbol in Thread.callStackSymbols { - symbols += symbol + "\n" - } - let dateN = Date.now - let df = DateFormatter() - df.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSS Z" - let dateStr = df.string(from: dateN) - let fullString = """ - ------------------------------------- - Translated Report (Full Report Below) - ------------------------------------- - - Date/Time: \(dateStr) - Version: \(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String) Build \(Bundle.main.infoDictionary?["CFBundleVersion"] as! String) - OS Version: \(UIDevice.current.systemName) \(UIDevice.current.systemVersion) - - Exception Type: \(errorSignal) - Termination Reason: \(errorSignal) \(errorNum) - - Main Symbols - - \(backtraceMainThread()) - - - Current Thread Symbols: - - \(backtraceCurrentThread()) - - Swift Thread Symbols: - - \(symbols) - - EOF - """ - let manager = FileManager.default - let urlForDocument = manager.urls(for: .documentDirectory, in: .userDomainMask) - try! fullString.write(to: URL(string: (urlForDocument[0] as URL).absoluteString + "\(dateStr.replacingOccurrences(of: " ", with: "_").replacingOccurrences(of: "/", with: "-").replacingOccurrences(of: ":", with: "__")).ddf")!, atomically: true, encoding: .utf8) - UserDefaults.standard.set("\(dateStr).ddf", forKey: "NewSignalError") -} -#else -class AppDelegate: NSObject, WKApplicationDelegate { - func applicationDidFinishLaunching() { - Mixpanel.initialize(token: "37d4aaecc64cae16353c2fe7dbb0513c") - // ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Wow you see a token there, I'm not forget to hide it because you are no able to - // do anything important by this token >_- - if (UserDefaults.standard.object(forKey: "IsAllowMixpanel") as? Bool) ?? true { - Mixpanel.mainInstance().track(event: "Open App") - if let uid = UserDefaults.standard.string(forKey: "DedeUserId") { - Mixpanel.mainInstance().registerSuperPropertiesOnce(["DedeUserId": uid]) - } - } - - SDImageCodersManager.shared.addCoder(SDImageWebPCoder.shared) - SDImageCodersManager.shared.addCoder(SDImageSVGCoder.shared) - SDImageCodersManager.shared.addCoder(SDImagePDFCoder.shared) - SDImageCache.shared.config.maxMemoryCost = 1024 * 1024 * 10 - SDImageCache.shared.config.shouldCacheImagesInMemory = false - SDImageCache.shared.config.shouldUseWeakMemoryCache = true - SDImageCache.shared.clearMemory() - } -} -#endif - -public func updateBuvid() { - DarockKit.Network.shared.requestJSON("https://api.bilibili.com/x/frontend/finger/spi") { respJson, isSuccess in - if isSuccess { - globalBuvid3 = respJson["data"]["b_3"].string ?? globalBuvid3 - globalBuvid4 = respJson["data"]["b_4"].string ?? globalBuvid4 - } - } -} diff --git a/DarockBili.dynamic/DarockBili_dynamic.swift b/DarockBili.dynamic/DarockBili_dynamic.swift deleted file mode 100644 index d18b79fe7..000000000 --- a/DarockBili.dynamic/DarockBili_dynamic.swift +++ /dev/null @@ -1,43 +0,0 @@ -// -// -// DarockBili_dynamic.swift -// DarockBili.dynamic -// -// Created by memz233 on 2024/3/2. -// -//===----------------------------------------------------------------------===// -// -// This source file is part of the MeowBili open source project -// -// Copyright (c) 2024 Darock Studio and the MeowBili project authors -// Licensed under GNU General Public License v3 -// -// See https://darock.top/LICENSE.txt for license information -// -//===----------------------------------------------------------------------===// - -import SwiftUI -import DarockKit -import Alamofire -import SwiftyJSON - -@_silgen_name("testPrint") -public func testPrint() { - print("Darock Dynamic Here!") -} - -@_silgen_name("GetAppMainView") -public func GetAppMainView() -> UnsafeMutableRawPointer { - return UnsafeMutableRawPointer(Unmanaged.passRetained(Wrapper(view: AnyView(AppMainView()))).toOpaque()) -} -final class Wrapper { - let view: AnyView - init(view: AnyView) { - self.view = view - } -} - -@_cdecl("GetDylibVersion") -public func GetDylibVersion() -> String { - return "1.0.3" -} diff --git a/DarockBili.xcodeproj/project.pbxproj b/DarockBili.xcodeproj/project.pbxproj index 69b57e76d..d023b2f28 100644 --- a/DarockBili.xcodeproj/project.pbxproj +++ b/DarockBili.xcodeproj/project.pbxproj @@ -6,24 +6,6 @@ objectVersion = 56; objects = { -/* Begin PBXAggregateTarget section */ - 8CA97C222B945EE00008A99B /* ALL_BUILD */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 8CA97C252B945EE10008A99B /* Build configuration list for PBXAggregateTarget "ALL_BUILD" */; - buildPhases = ( - 8CA97C2C2B945F440008A99B /* CopyFiles */, - 8CA97C2D2B945F670008A99B /* Export Dylibs */, - ); - dependencies = ( - 8CA97C272B945F1C0008A99B /* PBXTargetDependency */, - 8CA97C292B945F1C0008A99B /* PBXTargetDependency */, - 8CA97C2B2B945F1C0008A99B /* PBXTargetDependency */, - ); - name = ALL_BUILD; - productName = ALL_BUILD; - }; -/* End PBXAggregateTarget section */ - /* Begin PBXBuildFile section */ 8C0557DF2B791B84009D9CD0 /* AZVideoPlayer in Frameworks */ = {isa = PBXBuildFile; productRef = 8C0557DE2B791B84009D9CD0 /* AZVideoPlayer */; }; 8C617F412B92334B000A3687 /* SafariWebExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C617F402B92334B000A3687 /* SafariWebExtensionHandler.swift */; }; @@ -41,7 +23,60 @@ 8CA370DB2B82724400CE0E9E /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 8CA370D92B82724400CE0E9E /* PrivacyInfo.xcprivacy */; }; 8CA370DC2B82724400CE0E9E /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 8CA370D92B82724400CE0E9E /* PrivacyInfo.xcprivacy */; }; 8CA370DF2B827AAD00CE0E9E /* AlertToast in Frameworks */ = {isa = PBXBuildFile; platformFilters = (ios, maccatalyst, ); productRef = 8CA370DE2B827AAD00CE0E9E /* AlertToast */; settings = {ATTRIBUTES = (Required, ); }; }; + 8CA370FB2B83BB9100CE0E9E /* UserDynamicMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC92B77B4B2008E587F /* UserDynamicMainView.swift */; }; + 8CA370FC2B83BB9100CE0E9E /* NowPlayingExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5592B7CB95D005636DC /* NowPlayingExtension.m */; }; + 8CA370FD2B83BB9100CE0E9E /* BangumiDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD02B77B504008E587F /* BangumiDetailView.swift */; }; + 8CA370FE2B83BB9100CE0E9E /* CommentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA52B77B314008E587F /* CommentsView.swift */; }; + 8CA370FF2B83BB9100CE0E9E /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA22B77B2F2008E587F /* NoticeView.swift */; }; + 8CA371002B83BB9100CE0E9E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC42B77AC4A008E587F /* ContentView.swift */; }; + 8CA371012B83BB9100CE0E9E /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB72B77B3D6008E587F /* HistoryView.swift */; }; + 8CA371022B83BB9100CE0E9E /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC802B77AFDE008E587F /* FeedbackView.swift */; }; + 8CA371032B83BB9100CE0E9E /* SelfQrCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5642B7CCF3C005636DC /* SelfQrCardView.swift */; }; + 8CA371052B83BB9100CE0E9E /* BangumiPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD42B77B530008E587F /* BangumiPlayerView.swift */; }; + 8CA371062B83BB9100CE0E9E /* SignalErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7C2B77AFAC008E587F /* SignalErrorView.swift */; }; 8CA371072B83BB9100CE0E9E /* MeowBiliApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC22B77AC4A008E587F /* MeowBiliApp.swift */; }; + 8CA371082B83BB9100CE0E9E /* DynamicSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCD2B77B4DF008E587F /* DynamicSendView.swift */; }; + 8CA371092B83BB9100CE0E9E /* VideoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC22B77B45F008E587F /* VideoDetailView.swift */; }; + 8CA3710A2B83BB9100CE0E9E /* Bangumi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC692B77AE62008E587F /* Bangumi.swift */; }; + 8CA3710B2B83BB9100CE0E9E /* Passthroughs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9A2B77B13D008E587F /* Passthroughs.swift */; }; + 8CA3710C2B83BB9100CE0E9E /* backtrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC782B77AF79008E587F /* backtrace.swift */; }; + 8CA3710D2B83BB9100CE0E9E /* UIExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC872B77B039008E587F /* UIExt.swift */; }; + 8CA3710E2B83BB9100CE0E9E /* bMessageSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA92B77B340008E587F /* bMessageSendView.swift */; }; + 8CA3710F2B83BB9100CE0E9E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9E2B77B166008E587F /* SettingsView.swift */; }; + 8CA371102B83BB9100CE0E9E /* NetwokFixView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7A2B77AF93008E587F /* NetwokFixView.swift */; }; + 8CA371112B83BB9100CE0E9E /* AVExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC8D2B77B094008E587F /* AVExtension.m */; }; + 8CA371122B83BB9100CE0E9E /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC702B77AEE4008E587F /* MainView.swift */; }; + 8CA371132B83BB9100CE0E9E /* PersonAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAD2B77B36E008E587F /* PersonAccountView.swift */; }; + 8CA371142B83BB9100CE0E9E /* UserDynamicListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5572B7CA209005636DC /* UserDynamicListView.swift */; }; + 8CA371152B83BB9100CE0E9E /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC02B77B44E008E587F /* VideoDownloadView.swift */; }; + 8CA371162B83BB9100CE0E9E /* DownloadObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6B2B77AE80008E587F /* DownloadObj.swift */; }; + 8CA371172B83BB9100CE0E9E /* AudioPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC42B77B47A008E587F /* AudioPlayerView.swift */; }; + 8CA371182B83BB9100CE0E9E /* BangumiDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD22B77B51A008E587F /* BangumiDownloadView.swift */; }; + 8CA371192B83BB9100CE0E9E /* MemoryWarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7E2B77AFC5008E587F /* MemoryWarningView.swift */; }; + 8CA3711A2B83BB9100CE0E9E /* DownloadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAB2B77B354008E587F /* DownloadsView.swift */; }; + 8CA3711B2B83BB9100CE0E9E /* SkinDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC982B77B127008E587F /* SkinDownloadView.swift */; }; + 8CA3711C2B83BB9100CE0E9E /* FollowListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB12B77B398008E587F /* FollowListView.swift */; }; + 8CA3711D2B83BB9100CE0E9E /* ArticleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB32B77B3AC008E587F /* ArticleView.swift */; }; + 8CA3711E2B83BB9100CE0E9E /* CodingTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC912B77B0D4008E587F /* CodingTime.m */; }; + 8CA3711F2B83BB9100CE0E9E /* LiveDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD92B77B55F008E587F /* LiveDetailView.swift */; }; + 8CA371202B83BB9100CE0E9E /* SkinChooserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC942B77B0FB008E587F /* SkinChooserView.swift */; }; + 8CA371212B83BB9100CE0E9E /* DynamicDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCB2B77B4CA008E587F /* DynamicDetailView.swift */; }; + 8CA371222B83BB9100CE0E9E /* ImageViewerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC72B77B49D008E587F /* ImageViewerView.swift */; }; + 8CA371232B83BB9100CE0E9E /* CodeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC852B77B015008E587F /* CodeExt.swift */; }; + 8CA371242B83BB9100CE0E9E /* FavoriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAF2B77B383008E587F /* FavoriteView.swift */; }; + 8CA371252B83BB9100CE0E9E /* WatchLaterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB92B77B3EA008E587F /* WatchLaterView.swift */; }; + 8CA371262B83BB9100CE0E9E /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9C2B77B150008E587F /* AboutView.swift */; }; + 8CA371272B83BB9100CE0E9E /* OCCodeExt.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D55C2B7CC936005636DC /* OCCodeExt.m */; }; + 8CA371292B83BB9100CE0E9E /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6E2B77AEB4008E587F /* SearchView.swift */; }; + 8CA3712A2B83BB9100CE0E9E /* UserDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB52B77B3BF008E587F /* UserDetailView.swift */; }; + 8CA3712B2B83BB9100CE0E9E /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; + 8CA3712C2B83BB9100CE0E9E /* ErrorGetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC822B77AFF2008E587F /* ErrorGetView.swift */; }; + 8CA3712D2B83BB9100CE0E9E /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA02B77B2DC008E587F /* LoginView.swift */; }; + 8CA3712E2B83BB9100CE0E9E /* LiveMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCDB2B77B571008E587F /* LiveMessagesView.swift */; }; + 8CA3712F2B83BB9100CE0E9E /* LinkDetectText.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */; }; + 8CA371302B83BB9100CE0E9E /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCBC2B77B40B008E587F /* VideoPlayerView.swift */; }; + 8CA371312B83BB9100CE0E9E /* SkinExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC962B77B115008E587F /* SkinExplorerView.swift */; }; + 8CA371322B83BB9100CE0E9E /* LivePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD72B77B54F008E587F /* LivePlayerView.swift */; }; 8CA371362B83BF9400CE0E9E /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA371352B83BF9400CE0E9E /* Alamofire */; }; 8CA371382B83BF9400CE0E9E /* Marquee in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA371372B83BF9400CE0E9E /* Marquee */; }; 8CA3713A2B83BF9400CE0E9E /* SwiftDate in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA371392B83BF9400CE0E9E /* SwiftDate */; }; @@ -59,29 +94,8 @@ 8CA3889F2B78B1E300F5F91F /* AZVideoPlayer in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA3889E2B78B1E300F5F91F /* AZVideoPlayer */; }; 8CA388A22B78B5D800F5F91F /* BiliFont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8CA388A02B78B5D800F5F91F /* BiliFont.ttf */; }; 8CA388A32B78B5D800F5F91F /* BiliFont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8CA388A02B78B5D800F5F91F /* BiliFont.ttf */; }; - 8CA68EFD2B93224B00870AAA /* DarockBili_dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA68EFC2B93224B00870AAA /* DarockBili_dynamic.swift */; }; - 8CA68F132B93357700870AAA /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F122B93357700870AAA /* Alamofire */; }; - 8CA68F152B93357700870AAA /* Marquee in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F142B93357700870AAA /* Marquee */; }; - 8CA68F172B93357700870AAA /* SwiftDate in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F162B93357700870AAA /* SwiftDate */; }; - 8CA68F192B93357700870AAA /* SFSymbol in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F182B93357700870AAA /* SFSymbol */; }; - 8CA68F1B2B93357700870AAA /* ZipArchive in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F1A2B93357700870AAA /* ZipArchive */; }; - 8CA68F1D2B93357700870AAA /* EFQRCode in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F1C2B93357700870AAA /* EFQRCode */; }; - 8CA68F1F2B93357700870AAA /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F1E2B93357700870AAA /* SDWebImageSwiftUI */; }; - 8CA68F212B93357700870AAA /* SDWebImageWebPCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F202B93357700870AAA /* SDWebImageWebPCoder */; }; - 8CA68F232B93357700870AAA /* SDWebImageSVGCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F222B93357700870AAA /* SDWebImageSVGCoder */; }; - 8CA68F252B93357700870AAA /* SDWebImagePDFCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F242B93357700870AAA /* SDWebImagePDFCoder */; }; - 8CA68F272B93357700870AAA /* SwiftSoup in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F262B93357700870AAA /* SwiftSoup */; }; - 8CA68F292B93357700870AAA /* CachedAsyncImage in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F282B93357700870AAA /* CachedAsyncImage */; }; - 8CA68F2B2B93357700870AAA /* Dynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F2A2B93357700870AAA /* Dynamic */; }; - 8CA68F2D2B93357700870AAA /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F2C2B93357700870AAA /* SwiftyJSON */; }; - 8CA68F2F2B93357700870AAA /* DarockKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F2E2B93357700870AAA /* DarockKit */; }; - 8CA68F312B93357700870AAA /* AlertKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F302B93357700870AAA /* AlertKit */; }; - 8CA68F332B93357700870AAA /* AZVideoPlayer in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F322B93357700870AAA /* AZVideoPlayer */; }; - 8CA68F352B93357700870AAA /* ScreenshotableView in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F342B93357700870AAA /* ScreenshotableView */; }; - 8CA68F372B93357700870AAA /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F362B93357700870AAA /* Mixpanel */; }; - 8CA68F392B93357700870AAA /* AlertToast in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA68F382B93357700870AAA /* AlertToast */; }; - 8CA68F3C2B9337B900870AAA /* CodeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC852B77B015008E587F /* CodeExt.swift */; }; 8CA7CBC32B77AC4A008E587F /* MeowBiliApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC22B77AC4A008E587F /* MeowBiliApp.swift */; }; + 8CA7CBC52B77AC4A008E587F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC42B77AC4A008E587F /* ContentView.swift */; }; 8CA7CBC72B77AC4C008E587F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC62B77AC4C008E587F /* Assets.xcassets */; }; 8CA7CBCA2B77AC4C008E587F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC92B77AC4C008E587F /* Preview Assets.xcassets */; }; 8CA7CBD02B77AC4C008E587F /* 喵哩喵哩.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 8CA7CBCF2B77AC4C008E587F /* 喵哩喵哩.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -114,6 +128,54 @@ 8CA7CC1F2B77AC93008E587F /* Dynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA7CC1E2B77AC93008E587F /* Dynamic */; }; 8CA7CC212B77AC93008E587F /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA7CC202B77AC93008E587F /* SwiftyJSON */; }; 8CA7CC232B77AC93008E587F /* DarockKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA7CC222B77AC93008E587F /* DarockKit */; }; + 8CA7CC6A2B77AE62008E587F /* Bangumi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC692B77AE62008E587F /* Bangumi.swift */; }; + 8CA7CC6C2B77AE80008E587F /* DownloadObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6B2B77AE80008E587F /* DownloadObj.swift */; }; + 8CA7CC6F2B77AEB4008E587F /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6E2B77AEB4008E587F /* SearchView.swift */; }; + 8CA7CC712B77AEE4008E587F /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC702B77AEE4008E587F /* MainView.swift */; }; + 8CA7CC772B77AF4C008E587F /* backtrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC762B77AF4C008E587F /* backtrace.c */; }; + 8CA7CC792B77AF79008E587F /* backtrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC782B77AF79008E587F /* backtrace.swift */; }; + 8CA7CC7B2B77AF93008E587F /* NetwokFixView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7A2B77AF93008E587F /* NetwokFixView.swift */; }; + 8CA7CC7D2B77AFAC008E587F /* SignalErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7C2B77AFAC008E587F /* SignalErrorView.swift */; }; + 8CA7CC7F2B77AFC5008E587F /* MemoryWarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7E2B77AFC5008E587F /* MemoryWarningView.swift */; }; + 8CA7CC812B77AFDE008E587F /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC802B77AFDE008E587F /* FeedbackView.swift */; }; + 8CA7CC832B77AFF2008E587F /* ErrorGetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC822B77AFF2008E587F /* ErrorGetView.swift */; }; + 8CA7CC862B77B015008E587F /* CodeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC852B77B015008E587F /* CodeExt.swift */; }; + 8CA7CC882B77B039008E587F /* UIExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC872B77B039008E587F /* UIExt.swift */; }; + 8CA7CC8A2B77B061008E587F /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; + 8CA7CC8E2B77B094008E587F /* AVExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC8D2B77B094008E587F /* AVExtension.m */; }; + 8CA7CC922B77B0D4008E587F /* CodingTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC912B77B0D4008E587F /* CodingTime.m */; }; + 8CA7CC952B77B0FB008E587F /* SkinChooserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC942B77B0FB008E587F /* SkinChooserView.swift */; }; + 8CA7CC972B77B115008E587F /* SkinExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC962B77B115008E587F /* SkinExplorerView.swift */; }; + 8CA7CC992B77B127008E587F /* SkinDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC982B77B127008E587F /* SkinDownloadView.swift */; }; + 8CA7CC9B2B77B13D008E587F /* Passthroughs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9A2B77B13D008E587F /* Passthroughs.swift */; }; + 8CA7CC9D2B77B150008E587F /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9C2B77B150008E587F /* AboutView.swift */; }; + 8CA7CC9F2B77B166008E587F /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9E2B77B166008E587F /* SettingsView.swift */; }; + 8CA7CCA12B77B2DC008E587F /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA02B77B2DC008E587F /* LoginView.swift */; }; + 8CA7CCA32B77B2F3008E587F /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA22B77B2F2008E587F /* NoticeView.swift */; }; + 8CA7CCA62B77B315008E587F /* CommentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA52B77B314008E587F /* CommentsView.swift */; }; + 8CA7CCAA2B77B340008E587F /* bMessageSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA92B77B340008E587F /* bMessageSendView.swift */; }; + 8CA7CCAC2B77B354008E587F /* DownloadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAB2B77B354008E587F /* DownloadsView.swift */; }; + 8CA7CCAE2B77B36E008E587F /* PersonAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAD2B77B36E008E587F /* PersonAccountView.swift */; }; + 8CA7CCB02B77B383008E587F /* FavoriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAF2B77B383008E587F /* FavoriteView.swift */; }; + 8CA7CCB22B77B398008E587F /* FollowListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB12B77B398008E587F /* FollowListView.swift */; }; + 8CA7CCB42B77B3AC008E587F /* ArticleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB32B77B3AC008E587F /* ArticleView.swift */; }; + 8CA7CCB62B77B3BF008E587F /* UserDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB52B77B3BF008E587F /* UserDetailView.swift */; }; + 8CA7CCB82B77B3D6008E587F /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB72B77B3D6008E587F /* HistoryView.swift */; }; + 8CA7CCBA2B77B3EA008E587F /* WatchLaterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB92B77B3EA008E587F /* WatchLaterView.swift */; }; + 8CA7CCBD2B77B40B008E587F /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCBC2B77B40B008E587F /* VideoPlayerView.swift */; }; + 8CA7CCC12B77B44E008E587F /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC02B77B44E008E587F /* VideoDownloadView.swift */; }; + 8CA7CCC32B77B45F008E587F /* VideoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC22B77B45F008E587F /* VideoDetailView.swift */; }; + 8CA7CCC52B77B47A008E587F /* AudioPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC42B77B47A008E587F /* AudioPlayerView.swift */; }; + 8CA7CCC82B77B49D008E587F /* ImageViewerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC72B77B49D008E587F /* ImageViewerView.swift */; }; + 8CA7CCCA2B77B4B2008E587F /* UserDynamicMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC92B77B4B2008E587F /* UserDynamicMainView.swift */; }; + 8CA7CCCC2B77B4CA008E587F /* DynamicDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCB2B77B4CA008E587F /* DynamicDetailView.swift */; }; + 8CA7CCCE2B77B4DF008E587F /* DynamicSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCD2B77B4DF008E587F /* DynamicSendView.swift */; }; + 8CA7CCD12B77B504008E587F /* BangumiDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD02B77B504008E587F /* BangumiDetailView.swift */; }; + 8CA7CCD32B77B51A008E587F /* BangumiDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD22B77B51A008E587F /* BangumiDownloadView.swift */; }; + 8CA7CCD52B77B530008E587F /* BangumiPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD42B77B530008E587F /* BangumiPlayerView.swift */; }; + 8CA7CCD82B77B54F008E587F /* LivePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD72B77B54F008E587F /* LivePlayerView.swift */; }; + 8CA7CCDA2B77B55F008E587F /* LiveDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD92B77B55F008E587F /* LiveDetailView.swift */; }; + 8CA7CCDC2B77B571008E587F /* LiveMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCDB2B77B571008E587F /* LiveMessagesView.swift */; }; 8CA7CCDF2B77BB5A008E587F /* AlertKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8CA7CCDE2B77BB5A008E587F /* AlertKit */; }; 8CA7CCE02B77C3A8008E587F /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E2B720932B67858E00ABB0A6 /* Localizable.xcstrings */; }; 8CA7CCE12B77C3A9008E587F /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E2B720932B67858E00ABB0A6 /* Localizable.xcstrings */; }; @@ -122,14 +184,126 @@ 8CB0D0282B88D67D0057EF1C /* CurrentChannel.drkdatac in Resources */ = {isa = PBXBuildFile; fileRef = 8CB0D0252B88D67D0057EF1C /* CurrentChannel.drkdatac */; }; 8CB0D0292B88D67D0057EF1C /* CurrentChannel.drkdatac in Resources */ = {isa = PBXBuildFile; fileRef = 8CB0D0252B88D67D0057EF1C /* CurrentChannel.drkdatac */; }; 8CB0D02A2B88E5B20057EF1C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E2B720932B67858E00ABB0A6 /* Localizable.xcstrings */; }; + 8CBFF0B72B85E55F00350E0F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC42B77AC4A008E587F /* ContentView.swift */; }; + 8CBFF0B82B85E55F00350E0F /* CommentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA52B77B314008E587F /* CommentsView.swift */; }; + 8CBFF0B92B85E55F00350E0F /* LinkDetectText.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */; }; + 8CBFF0BA2B85E55F00350E0F /* Passthroughs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9A2B77B13D008E587F /* Passthroughs.swift */; }; + 8CBFF0BB2B85E55F00350E0F /* DynamicDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCB2B77B4CA008E587F /* DynamicDetailView.swift */; }; + 8CBFF0BC2B85E55F00350E0F /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB72B77B3D6008E587F /* HistoryView.swift */; }; + 8CBFF0BD2B85E55F00350E0F /* DynamicSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCD2B77B4DF008E587F /* DynamicSendView.swift */; }; + 8CBFF0BE2B85E55F00350E0F /* ArticleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB32B77B3AC008E587F /* ArticleView.swift */; }; + 8CBFF0BF2B85E55F00350E0F /* NowPlayingExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5592B7CB95D005636DC /* NowPlayingExtension.m */; }; + 8CBFF0C02B85E55F00350E0F /* SkinDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC982B77B127008E587F /* SkinDownloadView.swift */; }; + 8CBFF0C12B85E55F00350E0F /* CodeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC852B77B015008E587F /* CodeExt.swift */; }; + 8CBFF0C22B85E55F00350E0F /* WatchLaterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB92B77B3EA008E587F /* WatchLaterView.swift */; }; 8CBFF0C32B85E55F00350E0F /* MeowBiliApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC22B77AC4A008E587F /* MeowBiliApp.swift */; }; + 8CBFF0C42B85E55F00350E0F /* backtrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC782B77AF79008E587F /* backtrace.swift */; }; + 8CBFF0C52B85E55F00350E0F /* SkinExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC962B77B115008E587F /* SkinExplorerView.swift */; }; + 8CBFF0C62B85E55F00350E0F /* UserDynamicListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5572B7CA209005636DC /* UserDynamicListView.swift */; }; + 8CBFF0C72B85E55F00350E0F /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC02B77B44E008E587F /* VideoDownloadView.swift */; }; + 8CBFF0C82B85E55F00350E0F /* BangumiPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD42B77B530008E587F /* BangumiPlayerView.swift */; }; + 8CBFF0C92B85E55F00350E0F /* BangumiDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD22B77B51A008E587F /* BangumiDownloadView.swift */; }; + 8CBFF0CA2B85E55F00350E0F /* LiveDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD92B77B55F008E587F /* LiveDetailView.swift */; }; + 8CBFF0CB2B85E55F00350E0F /* bMessageSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA92B77B340008E587F /* bMessageSendView.swift */; }; + 8CBFF0CC2B85E55F00350E0F /* AudioPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC42B77B47A008E587F /* AudioPlayerView.swift */; }; + 8CBFF0CD2B85E55F00350E0F /* UIExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC872B77B039008E587F /* UIExt.swift */; }; + 8CBFF0CE2B85E55F00350E0F /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA22B77B2F2008E587F /* NoticeView.swift */; }; + 8CBFF0CF2B85E55F00350E0F /* LiveMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCDB2B77B571008E587F /* LiveMessagesView.swift */; }; + 8CBFF0D02B85E55F00350E0F /* AVExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC8D2B77B094008E587F /* AVExtension.m */; }; + 8CBFF0D12B85E55F00350E0F /* SelfQrCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5642B7CCF3C005636DC /* SelfQrCardView.swift */; }; + 8CBFF0D22B85E55F00350E0F /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCBC2B77B40B008E587F /* VideoPlayerView.swift */; }; 8CBFF0D32B85E55F00350E0F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC62B77AC4C008E587F /* Assets.xcassets */; }; + 8CBFF0D42B85E55F00350E0F /* SkinChooserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC942B77B0FB008E587F /* SkinChooserView.swift */; }; + 8CBFF0D52B85E55F00350E0F /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9E2B77B166008E587F /* SettingsView.swift */; }; + 8CBFF0D62B85E55F00350E0F /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6E2B77AEB4008E587F /* SearchView.swift */; }; + 8CBFF0D72B85E55F00350E0F /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC702B77AEE4008E587F /* MainView.swift */; }; + 8CBFF0D82B85E55F00350E0F /* VideoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC22B77B45F008E587F /* VideoDetailView.swift */; }; + 8CBFF0D92B85E55F00350E0F /* MemoryWarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7E2B77AFC5008E587F /* MemoryWarningView.swift */; }; + 8CBFF0DA2B85E55F00350E0F /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC802B77AFDE008E587F /* FeedbackView.swift */; }; + 8CBFF0DB2B85E55F00350E0F /* SignalErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7C2B77AFAC008E587F /* SignalErrorView.swift */; }; + 8CBFF0DC2B85E55F00350E0F /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA02B77B2DC008E587F /* LoginView.swift */; }; + 8CBFF0DD2B85E55F00350E0F /* DownloadObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6B2B77AE80008E587F /* DownloadObj.swift */; }; + 8CBFF0DE2B85E55F00350E0F /* DownloadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAB2B77B354008E587F /* DownloadsView.swift */; }; + 8CBFF0DF2B85E55F00350E0F /* ImageViewerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC72B77B49D008E587F /* ImageViewerView.swift */; }; + 8CBFF0E02B85E55F00350E0F /* OCCodeExt.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D55C2B7CC936005636DC /* OCCodeExt.m */; }; + 8CBFF0E12B85E55F00350E0F /* UserDynamicMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC92B77B4B2008E587F /* UserDynamicMainView.swift */; }; + 8CBFF0E22B85E55F00350E0F /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; + 8CBFF0E32B85E55F00350E0F /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9C2B77B150008E587F /* AboutView.swift */; }; + 8CBFF0E42B85E55F00350E0F /* BangumiDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD02B77B504008E587F /* BangumiDetailView.swift */; }; + 8CBFF0E52B85E55F00350E0F /* CodingTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC912B77B0D4008E587F /* CodingTime.m */; }; + 8CBFF0E62B85E55F00350E0F /* PersonAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAD2B77B36E008E587F /* PersonAccountView.swift */; }; + 8CBFF0E72B85E55F00350E0F /* UserDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB52B77B3BF008E587F /* UserDetailView.swift */; }; + 8CBFF0E82B85E55F00350E0F /* LivePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD72B77B54F008E587F /* LivePlayerView.swift */; }; + 8CBFF0E92B85E55F00350E0F /* Bangumi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC692B77AE62008E587F /* Bangumi.swift */; }; + 8CBFF0EB2B85E55F00350E0F /* FavoriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAF2B77B383008E587F /* FavoriteView.swift */; }; + 8CBFF0EC2B85E55F00350E0F /* ErrorGetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC822B77AFF2008E587F /* ErrorGetView.swift */; }; + 8CBFF0ED2B85E55F00350E0F /* NetwokFixView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7A2B77AF93008E587F /* NetwokFixView.swift */; }; + 8CBFF0EE2B85E55F00350E0F /* FollowListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB12B77B398008E587F /* FollowListView.swift */; }; + 8CBFF1282B861F7F00350E0F /* backtrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC762B77AF4C008E587F /* backtrace.c */; }; + 8CC3D5582B7CA209005636DC /* UserDynamicListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5572B7CA209005636DC /* UserDynamicListView.swift */; }; + 8CC3D55A2B7CB95D005636DC /* NowPlayingExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5592B7CB95D005636DC /* NowPlayingExtension.m */; }; + 8CC3D55D2B7CC936005636DC /* OCCodeExt.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D55C2B7CC936005636DC /* OCCodeExt.m */; }; 8CC3D5632B7CCE57005636DC /* ScreenshotableView in Frameworks */ = {isa = PBXBuildFile; platformFilters = (ios, maccatalyst, ); productRef = 8CC3D5622B7CCE57005636DC /* ScreenshotableView */; settings = {ATTRIBUTES = (Required, ); }; }; + 8CC3D5652B7CCF3C005636DC /* SelfQrCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5642B7CCF3C005636DC /* SelfQrCardView.swift */; }; + 8CC5B6BE2B8652AF00BAD89E /* backtrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC762B77AF4C008E587F /* backtrace.c */; }; 8CC5B6BF2B8652C000BAD89E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC62B77AC4C008E587F /* Assets.xcassets */; }; 8CC5B6C02B86539700BAD89E /* BiliFont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8CA388A02B78B5D800F5F91F /* BiliFont.ttf */; }; 8CC5B6C12B86539700BAD89E /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E2B720932B67858E00ABB0A6 /* Localizable.xcstrings */; }; + 8CC5B6DD2B873FA000BAD89E /* CodeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC852B77B015008E587F /* CodeExt.swift */; }; + 8CC5B6DE2B873FA000BAD89E /* backtrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC782B77AF79008E587F /* backtrace.swift */; }; + 8CC5B6DF2B873FA000BAD89E /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC802B77AFDE008E587F /* FeedbackView.swift */; }; + 8CC5B6E02B873FA000BAD89E /* UserDynamicListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5572B7CA209005636DC /* UserDynamicListView.swift */; }; + 8CC5B6E12B873FA000BAD89E /* BangumiDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD22B77B51A008E587F /* BangumiDownloadView.swift */; }; + 8CC5B6E22B873FA000BAD89E /* LivePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD72B77B54F008E587F /* LivePlayerView.swift */; }; + 8CC5B6E32B873FA000BAD89E /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA02B77B2DC008E587F /* LoginView.swift */; }; + 8CC5B6E42B873FA000BAD89E /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB72B77B3D6008E587F /* HistoryView.swift */; }; + 8CC5B6E52B873FA000BAD89E /* UserDynamicMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC92B77B4B2008E587F /* UserDynamicMainView.swift */; }; + 8CC5B6E62B873FA000BAD89E /* UIExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC872B77B039008E587F /* UIExt.swift */; }; + 8CC5B6E72B873FA000BAD89E /* FavoriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAF2B77B383008E587F /* FavoriteView.swift */; }; + 8CC5B6E82B873FA000BAD89E /* Bangumi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC692B77AE62008E587F /* Bangumi.swift */; }; + 8CC5B6E92B873FA000BAD89E /* DownloadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAB2B77B354008E587F /* DownloadsView.swift */; }; + 8CC5B6EA2B873FA000BAD89E /* CodingTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC912B77B0D4008E587F /* CodingTime.m */; }; + 8CC5B6EB2B873FA000BAD89E /* MemoryWarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7E2B77AFC5008E587F /* MemoryWarningView.swift */; }; + 8CC5B6EC2B873FA000BAD89E /* ArticleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB32B77B3AC008E587F /* ArticleView.swift */; }; + 8CC5B6ED2B873FA000BAD89E /* BangumiPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD42B77B530008E587F /* BangumiPlayerView.swift */; }; + 8CC5B6EE2B873FA000BAD89E /* backtrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC762B77AF4C008E587F /* backtrace.c */; }; + 8CC5B6EF2B873FA000BAD89E /* SignalErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7C2B77AFAC008E587F /* SignalErrorView.swift */; }; + 8CC5B6F02B873FA000BAD89E /* ErrorGetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC822B77AFF2008E587F /* ErrorGetView.swift */; }; + 8CC5B6F12B873FA000BAD89E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC42B77AC4A008E587F /* ContentView.swift */; }; + 8CC5B6F22B873FA000BAD89E /* LiveDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD92B77B55F008E587F /* LiveDetailView.swift */; }; + 8CC5B6F32B873FA000BAD89E /* FollowListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB12B77B398008E587F /* FollowListView.swift */; }; + 8CC5B6F42B873FA000BAD89E /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6E2B77AEB4008E587F /* SearchView.swift */; }; + 8CC5B6F52B873FA000BAD89E /* BangumiDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD02B77B504008E587F /* BangumiDetailView.swift */; }; + 8CC5B6F62B873FA000BAD89E /* SelfQrCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5642B7CCF3C005636DC /* SelfQrCardView.swift */; }; + 8CC5B6F72B873FA000BAD89E /* AudioPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC42B77B47A008E587F /* AudioPlayerView.swift */; }; + 8CC5B6F82B873FA000BAD89E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9E2B77B166008E587F /* SettingsView.swift */; }; + 8CC5B6F92B873FA000BAD89E /* WatchLaterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB92B77B3EA008E587F /* WatchLaterView.swift */; }; 8CC5B6FA2B873FA000BAD89E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC62B77AC4C008E587F /* Assets.xcassets */; }; + 8CC5B6FB2B873FA000BAD89E /* DynamicSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCD2B77B4DF008E587F /* DynamicSendView.swift */; }; + 8CC5B6FC2B873FA000BAD89E /* NowPlayingExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5592B7CB95D005636DC /* NowPlayingExtension.m */; }; + 8CC5B6FD2B873FA000BAD89E /* LinkDetectText.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */; }; + 8CC5B6FE2B873FA000BAD89E /* PersonAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAD2B77B36E008E587F /* PersonAccountView.swift */; }; + 8CC5B6FF2B873FA000BAD89E /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; + 8CC5B7002B873FA000BAD89E /* DynamicDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCB2B77B4CA008E587F /* DynamicDetailView.swift */; }; + 8CC5B7012B873FA000BAD89E /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCBC2B77B40B008E587F /* VideoPlayerView.swift */; }; + 8CC5B7022B873FA000BAD89E /* OCCodeExt.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D55C2B7CC936005636DC /* OCCodeExt.m */; }; + 8CC5B7032B873FA000BAD89E /* SkinDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC982B77B127008E587F /* SkinDownloadView.swift */; }; + 8CC5B7042B873FA000BAD89E /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC02B77B44E008E587F /* VideoDownloadView.swift */; }; + 8CC5B7052B873FA000BAD89E /* DownloadObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6B2B77AE80008E587F /* DownloadObj.swift */; }; + 8CC5B7062B873FA000BAD89E /* CommentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA52B77B314008E587F /* CommentsView.swift */; }; + 8CC5B7072B873FA000BAD89E /* SkinChooserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC942B77B0FB008E587F /* SkinChooserView.swift */; }; + 8CC5B7082B873FA000BAD89E /* NetwokFixView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7A2B77AF93008E587F /* NetwokFixView.swift */; }; + 8CC5B7092B873FA000BAD89E /* AVExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC8D2B77B094008E587F /* AVExtension.m */; }; + 8CC5B70A2B873FA000BAD89E /* VideoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC22B77B45F008E587F /* VideoDetailView.swift */; }; + 8CC5B70B2B873FA000BAD89E /* ImageViewerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC72B77B49D008E587F /* ImageViewerView.swift */; }; + 8CC5B70C2B873FA000BAD89E /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9C2B77B150008E587F /* AboutView.swift */; }; 8CC5B70D2B873FA000BAD89E /* MeowBiliApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC22B77AC4A008E587F /* MeowBiliApp.swift */; }; + 8CC5B70E2B873FA000BAD89E /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA22B77B2F2008E587F /* NoticeView.swift */; }; + 8CC5B70F2B873FA000BAD89E /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC702B77AEE4008E587F /* MainView.swift */; }; + 8CC5B7102B873FA000BAD89E /* LiveMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCDB2B77B571008E587F /* LiveMessagesView.swift */; }; + 8CC5B7112B873FA000BAD89E /* SkinExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC962B77B115008E587F /* SkinExplorerView.swift */; }; + 8CC5B7122B873FA000BAD89E /* UserDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB52B77B3BF008E587F /* UserDetailView.swift */; }; + 8CC5B7132B873FA000BAD89E /* Passthroughs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9A2B77B13D008E587F /* Passthroughs.swift */; }; 8CC5B7152B8742D300BAD89E /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 8CC5B7142B8742D300BAD89E /* Alamofire */; }; 8CC5B7172B8742D300BAD89E /* Marquee in Frameworks */ = {isa = PBXBuildFile; productRef = 8CC5B7162B8742D300BAD89E /* Marquee */; }; 8CC5B7192B8742D300BAD89E /* SwiftDate in Frameworks */ = {isa = PBXBuildFile; productRef = 8CC5B7182B8742D300BAD89E /* SwiftDate */; }; @@ -151,140 +325,7 @@ 8CC5B7392B8742D300BAD89E /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 8CC5B7382B8742D300BAD89E /* Mixpanel */; }; 8CC5B73B2B8742D300BAD89E /* AlertToast in Frameworks */ = {isa = PBXBuildFile; productRef = 8CC5B73A2B8742D300BAD89E /* AlertToast */; }; 8CC5B7432B8749BC00BAD89E /* MeowBiliUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC5B7422B8749BC00BAD89E /* MeowBiliUITests.swift */; }; - 8CE5237D2B93408A00C89318 /* BangumiPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD42B77B530008E587F /* BangumiPlayerView.swift */; }; - 8CE5237E2B93408A00C89318 /* OCCodeExt.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D55C2B7CC936005636DC /* OCCodeExt.m */; }; - 8CE5237F2B93408A00C89318 /* SkinDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC982B77B127008E587F /* SkinDownloadView.swift */; }; - 8CE523802B93408A00C89318 /* MemoryWarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7E2B77AFC5008E587F /* MemoryWarningView.swift */; }; - 8CE523812B93408A00C89318 /* CommentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA52B77B314008E587F /* CommentsView.swift */; }; - 8CE523822B93408A00C89318 /* ErrorGetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC822B77AFF2008E587F /* ErrorGetView.swift */; }; - 8CE523832B93408A00C89318 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6E2B77AEB4008E587F /* SearchView.swift */; }; - 8CE523842B93408A00C89318 /* AVExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC8D2B77B094008E587F /* AVExtension.m */; }; - 8CE523852B93408A00C89318 /* DynamicSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCD2B77B4DF008E587F /* DynamicSendView.swift */; }; - 8CE523862B93408A00C89318 /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC02B77B44E008E587F /* VideoDownloadView.swift */; }; - 8CE523872B93408A00C89318 /* SkinExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC962B77B115008E587F /* SkinExplorerView.swift */; }; - 8CE523882B93408A00C89318 /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC802B77AFDE008E587F /* FeedbackView.swift */; }; - 8CE523892B93408A00C89318 /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB72B77B3D6008E587F /* HistoryView.swift */; }; - 8CE5238A2B93408A00C89318 /* AudioPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC42B77B47A008E587F /* AudioPlayerView.swift */; }; - 8CE5238B2B93408A00C89318 /* backtrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC762B77AF4C008E587F /* backtrace.c */; }; - 8CE5238C2B93408A00C89318 /* NetwokFixView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7A2B77AF93008E587F /* NetwokFixView.swift */; }; - 8CE5238D2B93408A00C89318 /* LiveMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCDB2B77B571008E587F /* LiveMessagesView.swift */; }; - 8CE5238E2B93408A00C89318 /* bMessageSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA92B77B340008E587F /* bMessageSendView.swift */; }; - 8CE5238F2B93408A00C89318 /* VideoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC22B77B45F008E587F /* VideoDetailView.swift */; }; - 8CE523902B93408A00C89318 /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCBC2B77B40B008E587F /* VideoPlayerView.swift */; }; - 8CE523912B93408A00C89318 /* backtrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC782B77AF79008E587F /* backtrace.swift */; }; - 8CE523922B93408A00C89318 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC702B77AEE4008E587F /* MainView.swift */; }; - 8CE523932B93408A00C89318 /* UserDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB52B77B3BF008E587F /* UserDetailView.swift */; }; - 8CE523942B93408A00C89318 /* UserDynamicListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5572B7CA209005636DC /* UserDynamicListView.swift */; }; - 8CE523952B93408A00C89318 /* ArticleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB32B77B3AC008E587F /* ArticleView.swift */; }; - 8CE523962B93408A00C89318 /* LiveDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD92B77B55F008E587F /* LiveDetailView.swift */; }; - 8CE523972B93408A00C89318 /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; - 8CE523982B93408A00C89318 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9C2B77B150008E587F /* AboutView.swift */; }; - 8CE523992B93408A00C89318 /* SkinChooserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC942B77B0FB008E587F /* SkinChooserView.swift */; }; - 8CE5239A2B93408A00C89318 /* ImageViewerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC72B77B49D008E587F /* ImageViewerView.swift */; }; - 8CE5239B2B93408A00C89318 /* Passthroughs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9A2B77B13D008E587F /* Passthroughs.swift */; }; - 8CE5239C2B93408A00C89318 /* FavoriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAF2B77B383008E587F /* FavoriteView.swift */; }; - 8CE5239D2B93408A00C89318 /* BangumiDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD22B77B51A008E587F /* BangumiDownloadView.swift */; }; - 8CE5239E2B93408A00C89318 /* CodingTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC912B77B0D4008E587F /* CodingTime.m */; }; - 8CE5239F2B93408A00C89318 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA02B77B2DC008E587F /* LoginView.swift */; }; - 8CE523A02B93408A00C89318 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9E2B77B166008E587F /* SettingsView.swift */; }; - 8CE523A12B93408A00C89318 /* WatchLaterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB92B77B3EA008E587F /* WatchLaterView.swift */; }; - 8CE523A22B93408A00C89318 /* LivePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD72B77B54F008E587F /* LivePlayerView.swift */; }; - 8CE523A32B93408A00C89318 /* DynamicDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCB2B77B4CA008E587F /* DynamicDetailView.swift */; }; - 8CE523A42B93408A00C89318 /* UIExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC872B77B039008E587F /* UIExt.swift */; }; - 8CE523A52B93408A00C89318 /* SignalErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7C2B77AFAC008E587F /* SignalErrorView.swift */; }; - 8CE523A62B93408A00C89318 /* DownloadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAB2B77B354008E587F /* DownloadsView.swift */; }; - 8CE523A72B93408A00C89318 /* NowPlayingExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5592B7CB95D005636DC /* NowPlayingExtension.m */; }; - 8CE523A82B93408A00C89318 /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA22B77B2F2008E587F /* NoticeView.swift */; }; - 8CE523A92B93408A00C89318 /* DownloadObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6B2B77AE80008E587F /* DownloadObj.swift */; }; - 8CE523AA2B93408A00C89318 /* PersonAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAD2B77B36E008E587F /* PersonAccountView.swift */; }; - 8CE523AB2B93408A00C89318 /* Bangumi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC692B77AE62008E587F /* Bangumi.swift */; }; - 8CE523AC2B93408A00C89318 /* LinkDetectText.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */; }; - 8CE523AD2B93408A00C89318 /* SelfQrCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5642B7CCF3C005636DC /* SelfQrCardView.swift */; }; - 8CE523AE2B93408A00C89318 /* BangumiDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD02B77B504008E587F /* BangumiDetailView.swift */; }; - 8CE523AF2B93408A00C89318 /* UserDynamicMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC92B77B4B2008E587F /* UserDynamicMainView.swift */; }; - 8CE523B02B93408A00C89318 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC42B77AC4A008E587F /* ContentView.swift */; }; - 8CE523B12B93408A00C89318 /* FollowListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB12B77B398008E587F /* FollowListView.swift */; }; - 8CE523B32B9340EF00C89318 /* AppMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE523B22B9340EF00C89318 /* AppMain.swift */; }; - 8CE523C32B935D9300C89318 /* CommentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA52B77B314008E587F /* CommentsView.swift */; }; - 8CE523C42B935D9300C89318 /* DynamicDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCB2B77B4CA008E587F /* DynamicDetailView.swift */; }; - 8CE523C52B935D9300C89318 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9E2B77B166008E587F /* SettingsView.swift */; }; - 8CE523C62B935D9300C89318 /* UIExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC872B77B039008E587F /* UIExt.swift */; }; - 8CE523C72B935D9300C89318 /* AudioPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC42B77B47A008E587F /* AudioPlayerView.swift */; }; - 8CE523C82B935D9300C89318 /* SignalErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7C2B77AFAC008E587F /* SignalErrorView.swift */; }; - 8CE523C92B935D9300C89318 /* DarockBili_dynamic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA68EFC2B93224B00870AAA /* DarockBili_dynamic.swift */; }; - 8CE523CA2B935D9300C89318 /* ImageViewerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC72B77B49D008E587F /* ImageViewerView.swift */; }; - 8CE523CB2B935D9300C89318 /* ArticleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB32B77B3AC008E587F /* ArticleView.swift */; }; - 8CE523CC2B935D9300C89318 /* HistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB72B77B3D6008E587F /* HistoryView.swift */; }; - 8CE523CD2B935D9300C89318 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC702B77AEE4008E587F /* MainView.swift */; }; - 8CE523CE2B935D9300C89318 /* LivePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD72B77B54F008E587F /* LivePlayerView.swift */; }; - 8CE523CF2B935D9300C89318 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6E2B77AEB4008E587F /* SearchView.swift */; }; - 8CE523D02B935D9300C89318 /* BangumiPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD42B77B530008E587F /* BangumiPlayerView.swift */; }; - 8CE523D12B935D9300C89318 /* UserDynamicMainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC92B77B4B2008E587F /* UserDynamicMainView.swift */; }; - 8CE523D22B935D9300C89318 /* CodingTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC912B77B0D4008E587F /* CodingTime.m */; }; - 8CE523D32B935D9300C89318 /* SkinExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC962B77B115008E587F /* SkinExplorerView.swift */; }; - 8CE523D42B935D9300C89318 /* Bangumi.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC692B77AE62008E587F /* Bangumi.swift */; }; - 8CE523D52B935D9300C89318 /* FollowListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB12B77B398008E587F /* FollowListView.swift */; }; - 8CE523D62B935D9300C89318 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA02B77B2DC008E587F /* LoginView.swift */; }; - 8CE523D72B935D9300C89318 /* FavoriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAF2B77B383008E587F /* FavoriteView.swift */; }; - 8CE523D82B935D9300C89318 /* VideoDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC02B77B44E008E587F /* VideoDownloadView.swift */; }; - 8CE523D92B935D9300C89318 /* backtrace.c in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC762B77AF4C008E587F /* backtrace.c */; }; - 8CE523DA2B935D9300C89318 /* UserDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB52B77B3BF008E587F /* UserDetailView.swift */; }; - 8CE523DB2B935D9300C89318 /* LinkDetectText.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */; }; - 8CE523DC2B935D9300C89318 /* SkinChooserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC942B77B0FB008E587F /* SkinChooserView.swift */; }; - 8CE523DD2B935D9300C89318 /* UserDynamicListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5572B7CA209005636DC /* UserDynamicListView.swift */; }; - 8CE523DE2B935D9300C89318 /* DownloadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAB2B77B354008E587F /* DownloadsView.swift */; }; - 8CE523DF2B935D9300C89318 /* BangumiDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD02B77B504008E587F /* BangumiDetailView.swift */; }; - 8CE523E02B935D9300C89318 /* SelfQrCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5642B7CCF3C005636DC /* SelfQrCardView.swift */; }; - 8CE523E12B935D9300C89318 /* OCCodeExt.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D55C2B7CC936005636DC /* OCCodeExt.m */; }; - 8CE523E22B935D9300C89318 /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA22B77B2F2008E587F /* NoticeView.swift */; }; - 8CE523E32B935D9300C89318 /* CodeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC852B77B015008E587F /* CodeExt.swift */; }; - 8CE523E42B935D9300C89318 /* BangumiDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD22B77B51A008E587F /* BangumiDownloadView.swift */; }; - 8CE523E52B935D9300C89318 /* AppMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE523B22B9340EF00C89318 /* AppMain.swift */; }; - 8CE523E62B935D9300C89318 /* LiveDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCD92B77B55F008E587F /* LiveDetailView.swift */; }; - 8CE523E72B935D9300C89318 /* DynamicSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCCD2B77B4DF008E587F /* DynamicSendView.swift */; }; - 8CE523E82B935D9300C89318 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CBC42B77AC4A008E587F /* ContentView.swift */; }; - 8CE523E92B935D9300C89318 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9C2B77B150008E587F /* AboutView.swift */; }; - 8CE523EA2B935D9300C89318 /* VideoPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCBC2B77B40B008E587F /* VideoPlayerView.swift */; }; - 8CE523EB2B935D9300C89318 /* ErrorGetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC822B77AFF2008E587F /* ErrorGetView.swift */; }; - 8CE523EC2B935D9300C89318 /* DownloadObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC6B2B77AE80008E587F /* DownloadObj.swift */; }; - 8CE523ED2B935D9300C89318 /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC802B77AFDE008E587F /* FeedbackView.swift */; }; - 8CE523EE2B935D9300C89318 /* VideoDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCC22B77B45F008E587F /* VideoDetailView.swift */; }; - 8CE523EF2B935D9300C89318 /* AVExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC8D2B77B094008E587F /* AVExtension.m */; }; - 8CE523F02B935D9300C89318 /* LiveMessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCDB2B77B571008E587F /* LiveMessagesView.swift */; }; - 8CE523F12B935D9300C89318 /* backtrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC782B77AF79008E587F /* backtrace.swift */; }; - 8CE523F22B935D9300C89318 /* Passthroughs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC9A2B77B13D008E587F /* Passthroughs.swift */; }; - 8CE523F32B935D9300C89318 /* bMessageSendView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCA92B77B340008E587F /* bMessageSendView.swift */; }; - 8CE523F42B935D9300C89318 /* NetwokFixView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7A2B77AF93008E587F /* NetwokFixView.swift */; }; - 8CE523F52B935D9300C89318 /* SkinDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC982B77B127008E587F /* SkinDownloadView.swift */; }; - 8CE523F62B935D9300C89318 /* NowPlayingExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC3D5592B7CB95D005636DC /* NowPlayingExtension.m */; }; - 8CE523F72B935D9300C89318 /* WatchLaterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCB92B77B3EA008E587F /* WatchLaterView.swift */; }; - 8CE523F82B935D9300C89318 /* PersonAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CCAD2B77B36E008E587F /* PersonAccountView.swift */; }; - 8CE523F92B935D9300C89318 /* MemoryWarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC7E2B77AFC5008E587F /* MemoryWarningView.swift */; }; - 8CE523FA2B935D9300C89318 /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; - 8CE523FC2B935E0E00C89318 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE523FB2B935E0E00C89318 /* Alamofire */; }; - 8CE523FE2B935E0E00C89318 /* Marquee in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE523FD2B935E0E00C89318 /* Marquee */; }; - 8CE524002B935E0E00C89318 /* SwiftDate in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE523FF2B935E0E00C89318 /* SwiftDate */; }; - 8CE524022B935E0E00C89318 /* SFSymbol in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524012B935E0E00C89318 /* SFSymbol */; }; - 8CE524042B935E0E00C89318 /* ZipArchive in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524032B935E0E00C89318 /* ZipArchive */; }; - 8CE524062B935E0E00C89318 /* EFQRCode in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524052B935E0E00C89318 /* EFQRCode */; }; - 8CE524082B935E0E00C89318 /* SDWebImageSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524072B935E0E00C89318 /* SDWebImageSwiftUI */; }; - 8CE5240A2B935E0E00C89318 /* SDWebImageWebPCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524092B935E0E00C89318 /* SDWebImageWebPCoder */; }; - 8CE5240C2B935E0E00C89318 /* SDWebImageSVGCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE5240B2B935E0E00C89318 /* SDWebImageSVGCoder */; }; - 8CE5240E2B935E0E00C89318 /* SDWebImagePDFCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE5240D2B935E0E00C89318 /* SDWebImagePDFCoder */; }; - 8CE524102B935E0E00C89318 /* SwiftSoup in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE5240F2B935E0E00C89318 /* SwiftSoup */; }; - 8CE524122B935E0E00C89318 /* CachedAsyncImage in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524112B935E0E00C89318 /* CachedAsyncImage */; }; - 8CE524142B935E0E00C89318 /* Dynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524132B935E0E00C89318 /* Dynamic */; }; - 8CE524162B935E0E00C89318 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524152B935E0E00C89318 /* SwiftyJSON */; }; - 8CE524182B935E0E00C89318 /* DarockKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE524172B935E0E00C89318 /* DarockKit */; }; - 8CE524202B935E0E00C89318 /* Mixpanel in Frameworks */ = {isa = PBXBuildFile; productRef = 8CE5241F2B935E0E00C89318 /* Mixpanel */; }; - 8CE524242B935EF700C89318 /* DylibDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE524232B935EF700C89318 /* DylibDownloadView.swift */; }; - 8CE524252B935EF700C89318 /* DylibDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE524232B935EF700C89318 /* DylibDownloadView.swift */; }; - 8CE524262B935EF700C89318 /* DylibDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE524232B935EF700C89318 /* DylibDownloadView.swift */; }; - 8CE524272B935EF700C89318 /* DylibDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE524232B935EF700C89318 /* DylibDownloadView.swift */; }; - 8CE524282B935F3C00C89318 /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; - 8CE524292B935F3D00C89318 /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; - 8CE5242A2B935F3D00C89318 /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; - 8CE5242B2B935F3D00C89318 /* AppFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CA7CC892B77B061008E587F /* AppFileManager.swift */; }; + B4DAF0DD2B80725800755F0C /* LinkDetectText.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -295,13 +336,6 @@ remoteGlobalIDString = 8C617F3D2B92334B000A3687; remoteInfo = SafariExtension; }; - 8CA68F092B93264B00870AAA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8CA68EF92B93224B00870AAA; - remoteInfo = DarockBili.dynamic; - }; 8CA7CBD12B77AC4C008E587F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; @@ -309,34 +343,6 @@ remoteGlobalIDString = 8CA7CBCE2B77AC4C008E587F; remoteInfo = "MeowBili Watch App"; }; - 8CA97C262B945F1C0008A99B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8CA68EF92B93224B00870AAA; - remoteInfo = DarockBili.dynamic; - }; - 8CA97C282B945F1C0008A99B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8CE523BB2B935D6100C89318; - remoteInfo = DarockBili.dynamic.watch; - }; - 8CA97C2A2B945F1C0008A99B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8CA7CBBF2B77AC4A008E587F; - remoteInfo = MeowBili; - }; - 8CA97C2E2B9468590008A99B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8CE523BB2B935D6100C89318; - remoteInfo = DarockBili.dynamic.watch; - }; 8CC5B7462B8749BC00BAD89E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = B44689C42B4FC15A002CCEB2 /* Project object */; @@ -358,15 +364,6 @@ name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; }; - 8CA68EF82B93224B00870AAA /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 8CA7CBDF2B77AC4D008E587F /* Embed Watch Content */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -378,24 +375,6 @@ name = "Embed Watch Content"; runOnlyForDeploymentPostprocessing = 0; }; - 8CA97C2C2B945F440008A99B /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8CE523BA2B935D6100C89318 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -411,14 +390,11 @@ 8C617F4F2B92334B000A3687 /* popup.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = popup.css; sourceTree = ""; }; 8C617F512B92334B000A3687 /* popup.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; path = popup.js; sourceTree = ""; }; 8C617F532B92334B000A3687 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8C617F5B2B924C5B000A3687 /* ci_post_clone.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = ci_post_clone.sh; sourceTree = ""; }; 8C72E32A2B6605B80087486E /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 8CA370D92B82724400CE0E9E /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 8CA370E82B83BB4F00CE0E9E /* MeowBili Vision App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MeowBili Vision App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 8CA371332B83BE7D00CE0E9E /* MeowBili Vision App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "MeowBili Vision App.entitlements"; sourceTree = ""; }; 8CA388A02B78B5D800F5F91F /* BiliFont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = BiliFont.ttf; sourceTree = ""; }; - 8CA68EFA2B93224B00870AAA /* DarockBili.dynamic.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = DarockBili.dynamic.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; - 8CA68EFC2B93224B00870AAA /* DarockBili_dynamic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DarockBili_dynamic.swift; sourceTree = ""; }; 8CA7CBC02B77AC4A008E587F /* MeowBili.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MeowBili.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8CA7CBC22B77AC4A008E587F /* MeowBiliApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeowBiliApp.swift; sourceTree = ""; }; 8CA7CBC42B77AC4A008E587F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -496,9 +472,6 @@ 8CC5B7422B8749BC00BAD89E /* MeowBiliUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeowBiliUITests.swift; sourceTree = ""; }; 8CC5B74B2B8749FC00BAD89E /* MeowBili.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = MeowBili.xctestplan; sourceTree = ""; }; 8CD9463A2B64CD0F005D00D0 /* Bangumi_Detail_Season.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = Bangumi_Detail_Season.json; sourceTree = ""; }; - 8CE523B22B9340EF00C89318 /* AppMain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMain.swift; sourceTree = ""; }; - 8CE523BC2B935D6100C89318 /* DarockBili.dynamic.watch.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = DarockBili.dynamic.watch.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; - 8CE524232B935EF700C89318 /* DylibDownloadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DylibDownloadView.swift; sourceTree = ""; }; B4468A152B4FC24A002CCEB2 /* Dynamic_Feed_All.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Dynamic_Feed_All.json; sourceTree = ""; }; B4468A162B4FC24A002CCEB2 /* Search_With_UP_V2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Search_With_UP_V2.json; sourceTree = ""; }; B4DAF0DB2B80725800755F0C /* LinkDetectText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkDetectText.swift; sourceTree = ""; }; @@ -533,33 +506,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8CA68EF72B93224B00870AAA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8CA68F1F2B93357700870AAA /* SDWebImageSwiftUI in Frameworks */, - 8CA68F1B2B93357700870AAA /* ZipArchive in Frameworks */, - 8CA68F132B93357700870AAA /* Alamofire in Frameworks */, - 8CA68F252B93357700870AAA /* SDWebImagePDFCoder in Frameworks */, - 8CA68F232B93357700870AAA /* SDWebImageSVGCoder in Frameworks */, - 8CA68F2F2B93357700870AAA /* DarockKit in Frameworks */, - 8CA68F152B93357700870AAA /* Marquee in Frameworks */, - 8CA68F172B93357700870AAA /* SwiftDate in Frameworks */, - 8CA68F312B93357700870AAA /* AlertKit in Frameworks */, - 8CA68F352B93357700870AAA /* ScreenshotableView in Frameworks */, - 8CA68F2B2B93357700870AAA /* Dynamic in Frameworks */, - 8CA68F2D2B93357700870AAA /* SwiftyJSON in Frameworks */, - 8CA68F372B93357700870AAA /* Mixpanel in Frameworks */, - 8CA68F392B93357700870AAA /* AlertToast in Frameworks */, - 8CA68F272B93357700870AAA /* SwiftSoup in Frameworks */, - 8CA68F332B93357700870AAA /* AZVideoPlayer in Frameworks */, - 8CA68F192B93357700870AAA /* SFSymbol in Frameworks */, - 8CA68F292B93357700870AAA /* CachedAsyncImage in Frameworks */, - 8CA68F212B93357700870AAA /* SDWebImageWebPCoder in Frameworks */, - 8CA68F1D2B93357700870AAA /* EFQRCode in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 8CA7CBBD2B77AC4A008E587F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -645,29 +591,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8CE523B92B935D6100C89318 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8CE524082B935E0E00C89318 /* SDWebImageSwiftUI in Frameworks */, - 8CE524042B935E0E00C89318 /* ZipArchive in Frameworks */, - 8CE523FC2B935E0E00C89318 /* Alamofire in Frameworks */, - 8CE5240E2B935E0E00C89318 /* SDWebImagePDFCoder in Frameworks */, - 8CE5240C2B935E0E00C89318 /* SDWebImageSVGCoder in Frameworks */, - 8CE524182B935E0E00C89318 /* DarockKit in Frameworks */, - 8CE523FE2B935E0E00C89318 /* Marquee in Frameworks */, - 8CE524002B935E0E00C89318 /* SwiftDate in Frameworks */, - 8CE524142B935E0E00C89318 /* Dynamic in Frameworks */, - 8CE524162B935E0E00C89318 /* SwiftyJSON in Frameworks */, - 8CE524202B935E0E00C89318 /* Mixpanel in Frameworks */, - 8CE524102B935E0E00C89318 /* SwiftSoup in Frameworks */, - 8CE524022B935E0E00C89318 /* SFSymbol in Frameworks */, - 8CE524122B935E0E00C89318 /* CachedAsyncImage in Frameworks */, - 8CE5240A2B935E0E00C89318 /* SDWebImageWebPCoder in Frameworks */, - 8CE524062B935E0E00C89318 /* EFQRCode in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -696,15 +619,6 @@ path = Resources; sourceTree = ""; }; - 8CA68EFB2B93224B00870AAA /* DarockBili.dynamic */ = { - isa = PBXGroup; - children = ( - 8CA68EFC2B93224B00870AAA /* DarockBili_dynamic.swift */, - 8CE523B22B9340EF00C89318 /* AppMain.swift */, - ); - path = DarockBili.dynamic; - sourceTree = ""; - }; 8CA7CBC12B77AC4A008E587F /* MeowBili */ = { isa = PBXGroup; children = ( @@ -716,7 +630,6 @@ 8CA7CC752B77AF4B008E587F /* MeowBili-Bridging-Header.h */, 8CC5B74B2B8749FC00BAD89E /* MeowBili.xctestplan */, 8CA7CBC22B77AC4A008E587F /* MeowBiliApp.swift */, - 8CE524232B935EF700C89318 /* DylibDownloadView.swift */, 8CA7CC642B77AE33008E587F /* Models */, 8CA7CC6D2B77AEA4008E587F /* InMain */, 8CA7CC722B77AEFB008E587F /* Errors */, @@ -915,7 +828,6 @@ children = ( 8CB0D0232B88CEC40057EF1C /* ci_post_xcodebuild.sh */, 8CB0D0242B88D20F0057EF1C /* ci_pre_xcodebuild.sh */, - 8C617F5B2B924C5B000A3687 /* ci_post_clone.sh */, ); path = ci_scripts; sourceTree = ""; @@ -942,7 +854,6 @@ 8CA7CBC12B77AC4A008E587F /* MeowBili */, 8CC5B7412B8749BC00BAD89E /* MeowBiliUITests */, 8C617F3F2B92334B000A3687 /* SafariExtension */, - 8CA68EFB2B93224B00870AAA /* DarockBili.dynamic */, B44689CB2B4FC15A002CCEB2 /* Products */, B4468A902B4FC8B7002CCEB2 /* Frameworks */, ); @@ -957,8 +868,6 @@ 8CC5B6CC2B873E7500BAD89E /* MeowBili Mac App.app */, 8CC5B7402B8749BC00BAD89E /* MeowBiliUITests.xctest */, 8C617F3E2B92334B000A3687 /* SafariExtension.appex */, - 8CA68EFA2B93224B00870AAA /* DarockBili.dynamic.dylib */, - 8CE523BC2B935D6100C89318 /* DarockBili.dynamic.watch.dylib */, ); name = Products; sourceTree = ""; @@ -1034,45 +943,6 @@ productReference = 8CA370E82B83BB4F00CE0E9E /* MeowBili Vision App.app */; productType = "com.apple.product-type.application"; }; - 8CA68EF92B93224B00870AAA /* DarockBili.dynamic */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8CA68F002B93224B00870AAA /* Build configuration list for PBXNativeTarget "DarockBili.dynamic" */; - buildPhases = ( - 8CA68EF62B93224B00870AAA /* Sources */, - 8CA68EF72B93224B00870AAA /* Frameworks */, - 8CA68EF82B93224B00870AAA /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DarockBili.dynamic; - packageProductDependencies = ( - 8CA68F122B93357700870AAA /* Alamofire */, - 8CA68F142B93357700870AAA /* Marquee */, - 8CA68F162B93357700870AAA /* SwiftDate */, - 8CA68F182B93357700870AAA /* SFSymbol */, - 8CA68F1A2B93357700870AAA /* ZipArchive */, - 8CA68F1C2B93357700870AAA /* EFQRCode */, - 8CA68F1E2B93357700870AAA /* SDWebImageSwiftUI */, - 8CA68F202B93357700870AAA /* SDWebImageWebPCoder */, - 8CA68F222B93357700870AAA /* SDWebImageSVGCoder */, - 8CA68F242B93357700870AAA /* SDWebImagePDFCoder */, - 8CA68F262B93357700870AAA /* SwiftSoup */, - 8CA68F282B93357700870AAA /* CachedAsyncImage */, - 8CA68F2A2B93357700870AAA /* Dynamic */, - 8CA68F2C2B93357700870AAA /* SwiftyJSON */, - 8CA68F2E2B93357700870AAA /* DarockKit */, - 8CA68F302B93357700870AAA /* AlertKit */, - 8CA68F322B93357700870AAA /* AZVideoPlayer */, - 8CA68F342B93357700870AAA /* ScreenshotableView */, - 8CA68F362B93357700870AAA /* Mixpanel */, - 8CA68F382B93357700870AAA /* AlertToast */, - ); - productName = DarockBili.dynamic; - productReference = 8CA68EFA2B93224B00870AAA /* DarockBili.dynamic.dylib */; - productType = "com.apple.product-type.library.dynamic"; - }; 8CA7CBBF2B77AC4A008E587F /* MeowBili */ = { isa = PBXNativeTarget; buildConfigurationList = 8CA7CBE32B77AC4D008E587F /* Build configuration list for PBXNativeTarget "MeowBili" */; @@ -1087,7 +957,6 @@ buildRules = ( ); dependencies = ( - 8CA68F0A2B93264B00870AAA /* PBXTargetDependency */, 8CA7CBD22B77AC4C008E587F /* PBXTargetDependency */, 8C617F552B92334B000A3687 /* PBXTargetDependency */, ); @@ -1131,7 +1000,6 @@ buildRules = ( ); dependencies = ( - 8CA97C2F2B9468590008A99B /* PBXTargetDependency */, ); name = "MeowBili Watch App"; packageProductDependencies = ( @@ -1213,41 +1081,6 @@ productReference = 8CC5B7402B8749BC00BAD89E /* MeowBiliUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; - 8CE523BB2B935D6100C89318 /* DarockBili.dynamic.watch */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8CE523C02B935D6200C89318 /* Build configuration list for PBXNativeTarget "DarockBili.dynamic.watch" */; - buildPhases = ( - 8CE523B82B935D6100C89318 /* Sources */, - 8CE523B92B935D6100C89318 /* Frameworks */, - 8CE523BA2B935D6100C89318 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DarockBili.dynamic.watch; - packageProductDependencies = ( - 8CE523FB2B935E0E00C89318 /* Alamofire */, - 8CE523FD2B935E0E00C89318 /* Marquee */, - 8CE523FF2B935E0E00C89318 /* SwiftDate */, - 8CE524012B935E0E00C89318 /* SFSymbol */, - 8CE524032B935E0E00C89318 /* ZipArchive */, - 8CE524052B935E0E00C89318 /* EFQRCode */, - 8CE524072B935E0E00C89318 /* SDWebImageSwiftUI */, - 8CE524092B935E0E00C89318 /* SDWebImageWebPCoder */, - 8CE5240B2B935E0E00C89318 /* SDWebImageSVGCoder */, - 8CE5240D2B935E0E00C89318 /* SDWebImagePDFCoder */, - 8CE5240F2B935E0E00C89318 /* SwiftSoup */, - 8CE524112B935E0E00C89318 /* CachedAsyncImage */, - 8CE524132B935E0E00C89318 /* Dynamic */, - 8CE524152B935E0E00C89318 /* SwiftyJSON */, - 8CE524172B935E0E00C89318 /* DarockKit */, - 8CE5241F2B935E0E00C89318 /* Mixpanel */, - ); - productName = DarockBili.dynamic.watch; - productReference = 8CE523BC2B935D6100C89318 /* DarockBili.dynamic.watch.dylib */; - productType = "com.apple.product-type.library.dynamic"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -1264,10 +1097,6 @@ 8CA370E72B83BB4F00CE0E9E = { CreatedOnToolsVersion = 15.2; }; - 8CA68EF92B93224B00870AAA = { - CreatedOnToolsVersion = 15.2; - LastSwiftMigration = 1520; - }; 8CA7CBBF2B77AC4A008E587F = { CreatedOnToolsVersion = 15.2; LastSwiftMigration = 1520; @@ -1275,9 +1104,6 @@ 8CA7CBCE2B77AC4C008E587F = { CreatedOnToolsVersion = 15.2; }; - 8CA97C222B945EE00008A99B = { - CreatedOnToolsVersion = 15.2; - }; 8CC5B6CB2B873E7500BAD89E = { CreatedOnToolsVersion = 15.2; }; @@ -1285,9 +1111,6 @@ CreatedOnToolsVersion = 15.2; TestTargetID = 8CA7CBBF2B77AC4A008E587F; }; - 8CE523BB2B935D6100C89318 = { - CreatedOnToolsVersion = 15.2; - }; }; }; buildConfigurationList = B44689C72B4FC15A002CCEB2 /* Build configuration list for PBXProject "DarockBili" */; @@ -1334,9 +1157,6 @@ 8CC5B6CB2B873E7500BAD89E /* MeowBili Mac App */, 8CC5B73F2B8749BC00BAD89E /* MeowBiliUITests */, 8C617F3D2B92334B000A3687 /* SafariExtension */, - 8CA68EF92B93224B00870AAA /* DarockBili.dynamic */, - 8CE523BB2B935D6100C89318 /* DarockBili.dynamic.watch */, - 8CA97C222B945EE00008A99B /* ALL_BUILD */, ); }; /* End PBXProject section */ @@ -1413,25 +1233,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 8CA97C2D2B945F670008A99B /* Export Dylibs */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Export Dylibs"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "BUILD_FOLDER=\"${SRCROOT}/build\"\n\nif [ ! -d \"$BUILD_FOLDER\" ]; then\n mkdir -p \"$BUILD_FOLDER\"\nfi\n\ncp \"${BUILD_DIR}/Release-iphoneos/DarockBili.dynamic.dylib\" \"${BUILD_FOLDER}/iphoneos.dylib\"\ncp \"${BUILD_DIR}/Release-watchos/DarockBili.dynamic.watch.dylib\" \"${BUILD_FOLDER}/watchos.dylib\"\n"; - }; 8CBFF1262B86157800350E0F /* Run SwiftLint */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -1502,72 +1303,61 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 8CA3711A2B83BB9100CE0E9E /* DownloadsView.swift in Sources */, + 8CA3711F2B83BB9100CE0E9E /* LiveDetailView.swift in Sources */, + 8CA371162B83BB9100CE0E9E /* DownloadObj.swift in Sources */, + 8CA3712F2B83BB9100CE0E9E /* LinkDetectText.swift in Sources */, + 8CA3712A2B83BB9100CE0E9E /* UserDetailView.swift in Sources */, + 8CA371102B83BB9100CE0E9E /* NetwokFixView.swift in Sources */, + 8CA371232B83BB9100CE0E9E /* CodeExt.swift in Sources */, + 8CA371012B83BB9100CE0E9E /* HistoryView.swift in Sources */, + 8CA371112B83BB9100CE0E9E /* AVExtension.m in Sources */, + 8CA371222B83BB9100CE0E9E /* ImageViewerView.swift in Sources */, + 8CA3711D2B83BB9100CE0E9E /* ArticleView.swift in Sources */, + 8CA370FD2B83BB9100CE0E9E /* BangumiDetailView.swift in Sources */, + 8CA370FB2B83BB9100CE0E9E /* UserDynamicMainView.swift in Sources */, + 8CA3710D2B83BB9100CE0E9E /* UIExt.swift in Sources */, + 8CA371242B83BB9100CE0E9E /* FavoriteView.swift in Sources */, + 8CA371002B83BB9100CE0E9E /* ContentView.swift in Sources */, + 8CA371312B83BB9100CE0E9E /* SkinExplorerView.swift in Sources */, + 8CA371302B83BB9100CE0E9E /* VideoPlayerView.swift in Sources */, + 8CA3710F2B83BB9100CE0E9E /* SettingsView.swift in Sources */, + 8CA3711C2B83BB9100CE0E9E /* FollowListView.swift in Sources */, + 8CA371272B83BB9100CE0E9E /* OCCodeExt.m in Sources */, + 8CA371032B83BB9100CE0E9E /* SelfQrCardView.swift in Sources */, + 8CA371082B83BB9100CE0E9E /* DynamicSendView.swift in Sources */, + 8CA371322B83BB9100CE0E9E /* LivePlayerView.swift in Sources */, + 8CA371212B83BB9100CE0E9E /* DynamicDetailView.swift in Sources */, + 8CA371202B83BB9100CE0E9E /* SkinChooserView.swift in Sources */, + 8CA370FE2B83BB9100CE0E9E /* CommentsView.swift in Sources */, + 8CA371142B83BB9100CE0E9E /* UserDynamicListView.swift in Sources */, + 8CA371092B83BB9100CE0E9E /* VideoDetailView.swift in Sources */, + 8CC5B6BE2B8652AF00BAD89E /* backtrace.c in Sources */, + 8CA371172B83BB9100CE0E9E /* AudioPlayerView.swift in Sources */, + 8CA3710B2B83BB9100CE0E9E /* Passthroughs.swift in Sources */, + 8CA371062B83BB9100CE0E9E /* SignalErrorView.swift in Sources */, + 8CA3710E2B83BB9100CE0E9E /* bMessageSendView.swift in Sources */, + 8CA371022B83BB9100CE0E9E /* FeedbackView.swift in Sources */, + 8CA370FF2B83BB9100CE0E9E /* NoticeView.swift in Sources */, + 8CA371132B83BB9100CE0E9E /* PersonAccountView.swift in Sources */, + 8CA3710C2B83BB9100CE0E9E /* backtrace.swift in Sources */, 8CA371072B83BB9100CE0E9E /* MeowBiliApp.swift in Sources */, - 8CE524292B935F3D00C89318 /* AppFileManager.swift in Sources */, - 8CE524262B935EF700C89318 /* DylibDownloadView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8CA68EF62B93224B00870AAA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8CE5239A2B93408A00C89318 /* ImageViewerView.swift in Sources */, - 8CE5238D2B93408A00C89318 /* LiveMessagesView.swift in Sources */, - 8CE523922B93408A00C89318 /* MainView.swift in Sources */, - 8CE523842B93408A00C89318 /* AVExtension.m in Sources */, - 8CE523932B93408A00C89318 /* UserDetailView.swift in Sources */, - 8CE523982B93408A00C89318 /* AboutView.swift in Sources */, - 8CE523972B93408A00C89318 /* AppFileManager.swift in Sources */, - 8CE523AE2B93408A00C89318 /* BangumiDetailView.swift in Sources */, - 8CE523AD2B93408A00C89318 /* SelfQrCardView.swift in Sources */, - 8CE523872B93408A00C89318 /* SkinExplorerView.swift in Sources */, - 8CE523902B93408A00C89318 /* VideoPlayerView.swift in Sources */, - 8CE5237E2B93408A00C89318 /* OCCodeExt.m in Sources */, - 8CE523832B93408A00C89318 /* SearchView.swift in Sources */, - 8CA68F3C2B9337B900870AAA /* CodeExt.swift in Sources */, - 8CE523B02B93408A00C89318 /* ContentView.swift in Sources */, - 8CE523822B93408A00C89318 /* ErrorGetView.swift in Sources */, - 8CE523A72B93408A00C89318 /* NowPlayingExtension.m in Sources */, - 8CE5239F2B93408A00C89318 /* LoginView.swift in Sources */, - 8CE5239D2B93408A00C89318 /* BangumiDownloadView.swift in Sources */, - 8CE5239E2B93408A00C89318 /* CodingTime.m in Sources */, - 8CE523AC2B93408A00C89318 /* LinkDetectText.swift in Sources */, - 8CE523B12B93408A00C89318 /* FollowListView.swift in Sources */, - 8CE523AA2B93408A00C89318 /* PersonAccountView.swift in Sources */, - 8CE523A32B93408A00C89318 /* DynamicDetailView.swift in Sources */, - 8CE5238F2B93408A00C89318 /* VideoDetailView.swift in Sources */, - 8CE523942B93408A00C89318 /* UserDynamicListView.swift in Sources */, - 8CE5238C2B93408A00C89318 /* NetwokFixView.swift in Sources */, - 8CA68EFD2B93224B00870AAA /* DarockBili_dynamic.swift in Sources */, - 8CE523992B93408A00C89318 /* SkinChooserView.swift in Sources */, - 8CE523A92B93408A00C89318 /* DownloadObj.swift in Sources */, - 8CE523B32B9340EF00C89318 /* AppMain.swift in Sources */, - 8CE5239C2B93408A00C89318 /* FavoriteView.swift in Sources */, - 8CE523892B93408A00C89318 /* HistoryView.swift in Sources */, - 8CE523A62B93408A00C89318 /* DownloadsView.swift in Sources */, - 8CE523A22B93408A00C89318 /* LivePlayerView.swift in Sources */, - 8CE523A52B93408A00C89318 /* SignalErrorView.swift in Sources */, - 8CE523912B93408A00C89318 /* backtrace.swift in Sources */, - 8CE523AB2B93408A00C89318 /* Bangumi.swift in Sources */, - 8CE523952B93408A00C89318 /* ArticleView.swift in Sources */, - 8CE523962B93408A00C89318 /* LiveDetailView.swift in Sources */, - 8CE523882B93408A00C89318 /* FeedbackView.swift in Sources */, - 8CE5239B2B93408A00C89318 /* Passthroughs.swift in Sources */, - 8CE5237F2B93408A00C89318 /* SkinDownloadView.swift in Sources */, - 8CE523A82B93408A00C89318 /* NoticeView.swift in Sources */, - 8CE523A12B93408A00C89318 /* WatchLaterView.swift in Sources */, - 8CE5238A2B93408A00C89318 /* AudioPlayerView.swift in Sources */, - 8CE5238E2B93408A00C89318 /* bMessageSendView.swift in Sources */, - 8CE5238B2B93408A00C89318 /* backtrace.c in Sources */, - 8CE523802B93408A00C89318 /* MemoryWarningView.swift in Sources */, - 8CE523862B93408A00C89318 /* VideoDownloadView.swift in Sources */, - 8CE523AF2B93408A00C89318 /* UserDynamicMainView.swift in Sources */, - 8CE5237D2B93408A00C89318 /* BangumiPlayerView.swift in Sources */, - 8CE523852B93408A00C89318 /* DynamicSendView.swift in Sources */, - 8CE523A42B93408A00C89318 /* UIExt.swift in Sources */, - 8CE523812B93408A00C89318 /* CommentsView.swift in Sources */, - 8CE523A02B93408A00C89318 /* SettingsView.swift in Sources */, + 8CA371122B83BB9100CE0E9E /* MainView.swift in Sources */, + 8CA3711B2B83BB9100CE0E9E /* SkinDownloadView.swift in Sources */, + 8CA371152B83BB9100CE0E9E /* VideoDownloadView.swift in Sources */, + 8CA371292B83BB9100CE0E9E /* SearchView.swift in Sources */, + 8CA3712D2B83BB9100CE0E9E /* LoginView.swift in Sources */, + 8CA371252B83BB9100CE0E9E /* WatchLaterView.swift in Sources */, + 8CA3710A2B83BB9100CE0E9E /* Bangumi.swift in Sources */, + 8CA3712C2B83BB9100CE0E9E /* ErrorGetView.swift in Sources */, + 8CA371262B83BB9100CE0E9E /* AboutView.swift in Sources */, + 8CA370FC2B83BB9100CE0E9E /* NowPlayingExtension.m in Sources */, + 8CA371052B83BB9100CE0E9E /* BangumiPlayerView.swift in Sources */, + 8CA3712B2B83BB9100CE0E9E /* AppFileManager.swift in Sources */, + 8CA3712E2B83BB9100CE0E9E /* LiveMessagesView.swift in Sources */, + 8CA371192B83BB9100CE0E9E /* MemoryWarningView.swift in Sources */, + 8CA3711E2B83BB9100CE0E9E /* CodingTime.m in Sources */, + 8CA371182B83BB9100CE0E9E /* BangumiDownloadView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1575,9 +1365,61 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 8CA7CCA32B77B2F3008E587F /* NoticeView.swift in Sources */, + 8CA7CC952B77B0FB008E587F /* SkinChooserView.swift in Sources */, + 8CA7CCA62B77B315008E587F /* CommentsView.swift in Sources */, + 8CA7CC6F2B77AEB4008E587F /* SearchView.swift in Sources */, + 8CA7CCD82B77B54F008E587F /* LivePlayerView.swift in Sources */, + 8CA7CCB62B77B3BF008E587F /* UserDetailView.swift in Sources */, + 8CA7CCCE2B77B4DF008E587F /* DynamicSendView.swift in Sources */, + 8CA7CCCC2B77B4CA008E587F /* DynamicDetailView.swift in Sources */, + 8CA7CCC52B77B47A008E587F /* AudioPlayerView.swift in Sources */, + 8CA7CCC82B77B49D008E587F /* ImageViewerView.swift in Sources */, + 8CA7CC972B77B115008E587F /* SkinExplorerView.swift in Sources */, + 8CC3D5582B7CA209005636DC /* UserDynamicListView.swift in Sources */, + 8CA7CC712B77AEE4008E587F /* MainView.swift in Sources */, + 8CC3D5652B7CCF3C005636DC /* SelfQrCardView.swift in Sources */, + 8CA7CCB82B77B3D6008E587F /* HistoryView.swift in Sources */, + 8CA7CCDC2B77B571008E587F /* LiveMessagesView.swift in Sources */, + 8CA7CC792B77AF79008E587F /* backtrace.swift in Sources */, + 8CC3D55A2B7CB95D005636DC /* NowPlayingExtension.m in Sources */, + 8CA7CC6A2B77AE62008E587F /* Bangumi.swift in Sources */, + 8CA7CBC52B77AC4A008E587F /* ContentView.swift in Sources */, + 8CA7CCAA2B77B340008E587F /* bMessageSendView.swift in Sources */, + 8CA7CCB42B77B3AC008E587F /* ArticleView.swift in Sources */, + 8CA7CC812B77AFDE008E587F /* FeedbackView.swift in Sources */, + 8CA7CC862B77B015008E587F /* CodeExt.swift in Sources */, + 8CA7CC9F2B77B166008E587F /* SettingsView.swift in Sources */, + 8CA7CC7D2B77AFAC008E587F /* SignalErrorView.swift in Sources */, + B4DAF0DD2B80725800755F0C /* LinkDetectText.swift in Sources */, + 8CA7CCBA2B77B3EA008E587F /* WatchLaterView.swift in Sources */, + 8CA7CCBD2B77B40B008E587F /* VideoPlayerView.swift in Sources */, + 8CA7CC8E2B77B094008E587F /* AVExtension.m in Sources */, + 8CA7CC7F2B77AFC5008E587F /* MemoryWarningView.swift in Sources */, + 8CA7CCA12B77B2DC008E587F /* LoginView.swift in Sources */, + 8CA7CCCA2B77B4B2008E587F /* UserDynamicMainView.swift in Sources */, + 8CA7CCAE2B77B36E008E587F /* PersonAccountView.swift in Sources */, + 8CA7CCD52B77B530008E587F /* BangumiPlayerView.swift in Sources */, + 8CA7CC9B2B77B13D008E587F /* Passthroughs.swift in Sources */, + 8CA7CCB02B77B383008E587F /* FavoriteView.swift in Sources */, + 8CA7CC9D2B77B150008E587F /* AboutView.swift in Sources */, + 8CA7CC882B77B039008E587F /* UIExt.swift in Sources */, + 8CA7CC772B77AF4C008E587F /* backtrace.c in Sources */, + 8CA7CCC32B77B45F008E587F /* VideoDetailView.swift in Sources */, + 8CA7CCAC2B77B354008E587F /* DownloadsView.swift in Sources */, + 8CA7CC8A2B77B061008E587F /* AppFileManager.swift in Sources */, + 8CA7CCB22B77B398008E587F /* FollowListView.swift in Sources */, + 8CA7CC7B2B77AF93008E587F /* NetwokFixView.swift in Sources */, + 8CA7CCD32B77B51A008E587F /* BangumiDownloadView.swift in Sources */, + 8CA7CC922B77B0D4008E587F /* CodingTime.m in Sources */, 8CA7CBC32B77AC4A008E587F /* MeowBiliApp.swift in Sources */, - 8CE5242B2B935F3D00C89318 /* AppFileManager.swift in Sources */, - 8CE524242B935EF700C89318 /* DylibDownloadView.swift in Sources */, + 8CA7CCC12B77B44E008E587F /* VideoDownloadView.swift in Sources */, + 8CA7CC832B77AFF2008E587F /* ErrorGetView.swift in Sources */, + 8CA7CC992B77B127008E587F /* SkinDownloadView.swift in Sources */, + 8CA7CCDA2B77B55F008E587F /* LiveDetailView.swift in Sources */, + 8CA7CC6C2B77AE80008E587F /* DownloadObj.swift in Sources */, + 8CC3D55D2B7CC936005636DC /* OCCodeExt.m in Sources */, + 8CA7CCD12B77B504008E587F /* BangumiDetailView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1585,9 +1427,61 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 8CBFF0C02B85E55F00350E0F /* SkinDownloadView.swift in Sources */, + 8CBFF0C82B85E55F00350E0F /* BangumiPlayerView.swift in Sources */, + 8CBFF0C42B85E55F00350E0F /* backtrace.swift in Sources */, + 8CBFF0C72B85E55F00350E0F /* VideoDownloadView.swift in Sources */, + 8CBFF0E32B85E55F00350E0F /* AboutView.swift in Sources */, + 8CBFF0E52B85E55F00350E0F /* CodingTime.m in Sources */, + 8CBFF0C52B85E55F00350E0F /* SkinExplorerView.swift in Sources */, + 8CBFF0BC2B85E55F00350E0F /* HistoryView.swift in Sources */, + 8CBFF0B72B85E55F00350E0F /* ContentView.swift in Sources */, + 8CBFF0DB2B85E55F00350E0F /* SignalErrorView.swift in Sources */, + 8CBFF0D82B85E55F00350E0F /* VideoDetailView.swift in Sources */, + 8CBFF0D72B85E55F00350E0F /* MainView.swift in Sources */, + 8CBFF0C22B85E55F00350E0F /* WatchLaterView.swift in Sources */, + 8CBFF0E82B85E55F00350E0F /* LivePlayerView.swift in Sources */, + 8CBFF0BD2B85E55F00350E0F /* DynamicSendView.swift in Sources */, + 8CBFF0DD2B85E55F00350E0F /* DownloadObj.swift in Sources */, + 8CBFF0D02B85E55F00350E0F /* AVExtension.m in Sources */, + 8CBFF0C12B85E55F00350E0F /* CodeExt.swift in Sources */, + 8CBFF0E62B85E55F00350E0F /* PersonAccountView.swift in Sources */, + 8CBFF0D92B85E55F00350E0F /* MemoryWarningView.swift in Sources */, + 8CBFF0E02B85E55F00350E0F /* OCCodeExt.m in Sources */, + 8CBFF0CA2B85E55F00350E0F /* LiveDetailView.swift in Sources */, + 8CBFF0DC2B85E55F00350E0F /* LoginView.swift in Sources */, + 8CBFF0BF2B85E55F00350E0F /* NowPlayingExtension.m in Sources */, + 8CBFF0CE2B85E55F00350E0F /* NoticeView.swift in Sources */, + 8CBFF0E72B85E55F00350E0F /* UserDetailView.swift in Sources */, + 8CBFF0B82B85E55F00350E0F /* CommentsView.swift in Sources */, 8CBFF0C32B85E55F00350E0F /* MeowBiliApp.swift in Sources */, - 8CE5242A2B935F3D00C89318 /* AppFileManager.swift in Sources */, - 8CE524252B935EF700C89318 /* DylibDownloadView.swift in Sources */, + 8CBFF0CC2B85E55F00350E0F /* AudioPlayerView.swift in Sources */, + 8CBFF1282B861F7F00350E0F /* backtrace.c in Sources */, + 8CBFF0EB2B85E55F00350E0F /* FavoriteView.swift in Sources */, + 8CBFF0E12B85E55F00350E0F /* UserDynamicMainView.swift in Sources */, + 8CBFF0BA2B85E55F00350E0F /* Passthroughs.swift in Sources */, + 8CBFF0B92B85E55F00350E0F /* LinkDetectText.swift in Sources */, + 8CBFF0CB2B85E55F00350E0F /* bMessageSendView.swift in Sources */, + 8CBFF0CF2B85E55F00350E0F /* LiveMessagesView.swift in Sources */, + 8CBFF0BE2B85E55F00350E0F /* ArticleView.swift in Sources */, + 8CBFF0D22B85E55F00350E0F /* VideoPlayerView.swift in Sources */, + 8CBFF0EC2B85E55F00350E0F /* ErrorGetView.swift in Sources */, + 8CBFF0C62B85E55F00350E0F /* UserDynamicListView.swift in Sources */, + 8CBFF0EE2B85E55F00350E0F /* FollowListView.swift in Sources */, + 8CBFF0D42B85E55F00350E0F /* SkinChooserView.swift in Sources */, + 8CBFF0DA2B85E55F00350E0F /* FeedbackView.swift in Sources */, + 8CBFF0CD2B85E55F00350E0F /* UIExt.swift in Sources */, + 8CBFF0D12B85E55F00350E0F /* SelfQrCardView.swift in Sources */, + 8CBFF0DF2B85E55F00350E0F /* ImageViewerView.swift in Sources */, + 8CBFF0D62B85E55F00350E0F /* SearchView.swift in Sources */, + 8CBFF0ED2B85E55F00350E0F /* NetwokFixView.swift in Sources */, + 8CBFF0E22B85E55F00350E0F /* AppFileManager.swift in Sources */, + 8CBFF0E92B85E55F00350E0F /* Bangumi.swift in Sources */, + 8CBFF0DE2B85E55F00350E0F /* DownloadsView.swift in Sources */, + 8CBFF0C92B85E55F00350E0F /* BangumiDownloadView.swift in Sources */, + 8CBFF0D52B85E55F00350E0F /* SettingsView.swift in Sources */, + 8CBFF0BB2B85E55F00350E0F /* DynamicDetailView.swift in Sources */, + 8CBFF0E42B85E55F00350E0F /* BangumiDetailView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1595,9 +1489,60 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 8CC5B6EE2B873FA000BAD89E /* backtrace.c in Sources */, + 8CC5B7082B873FA000BAD89E /* NetwokFixView.swift in Sources */, + 8CC5B7062B873FA000BAD89E /* CommentsView.swift in Sources */, + 8CC5B6ED2B873FA000BAD89E /* BangumiPlayerView.swift in Sources */, + 8CC5B70A2B873FA000BAD89E /* VideoDetailView.swift in Sources */, + 8CC5B6F12B873FA000BAD89E /* ContentView.swift in Sources */, + 8CC5B6FC2B873FA000BAD89E /* NowPlayingExtension.m in Sources */, + 8CC5B7022B873FA000BAD89E /* OCCodeExt.m in Sources */, + 8CC5B6F62B873FA000BAD89E /* SelfQrCardView.swift in Sources */, + 8CC5B6DE2B873FA000BAD89E /* backtrace.swift in Sources */, + 8CC5B7052B873FA000BAD89E /* DownloadObj.swift in Sources */, + 8CC5B6F42B873FA000BAD89E /* SearchView.swift in Sources */, + 8CC5B6FF2B873FA000BAD89E /* AppFileManager.swift in Sources */, + 8CC5B7122B873FA000BAD89E /* UserDetailView.swift in Sources */, + 8CC5B70F2B873FA000BAD89E /* MainView.swift in Sources */, + 8CC5B7112B873FA000BAD89E /* SkinExplorerView.swift in Sources */, + 8CC5B6F52B873FA000BAD89E /* BangumiDetailView.swift in Sources */, + 8CC5B6F92B873FA000BAD89E /* WatchLaterView.swift in Sources */, + 8CC5B7072B873FA000BAD89E /* SkinChooserView.swift in Sources */, + 8CC5B6E92B873FA000BAD89E /* DownloadsView.swift in Sources */, + 8CC5B7132B873FA000BAD89E /* Passthroughs.swift in Sources */, + 8CC5B6E42B873FA000BAD89E /* HistoryView.swift in Sources */, + 8CC5B6E32B873FA000BAD89E /* LoginView.swift in Sources */, + 8CC5B6E82B873FA000BAD89E /* Bangumi.swift in Sources */, + 8CC5B6DD2B873FA000BAD89E /* CodeExt.swift in Sources */, 8CC5B70D2B873FA000BAD89E /* MeowBiliApp.swift in Sources */, - 8CE524282B935F3C00C89318 /* AppFileManager.swift in Sources */, - 8CE524272B935EF700C89318 /* DylibDownloadView.swift in Sources */, + 8CC5B6F22B873FA000BAD89E /* LiveDetailView.swift in Sources */, + 8CC5B6EF2B873FA000BAD89E /* SignalErrorView.swift in Sources */, + 8CC5B6F32B873FA000BAD89E /* FollowListView.swift in Sources */, + 8CC5B6DF2B873FA000BAD89E /* FeedbackView.swift in Sources */, + 8CC5B7092B873FA000BAD89E /* AVExtension.m in Sources */, + 8CC5B6F02B873FA000BAD89E /* ErrorGetView.swift in Sources */, + 8CC5B6E72B873FA000BAD89E /* FavoriteView.swift in Sources */, + 8CC5B70C2B873FA000BAD89E /* AboutView.swift in Sources */, + 8CC5B6FE2B873FA000BAD89E /* PersonAccountView.swift in Sources */, + 8CC5B6E22B873FA000BAD89E /* LivePlayerView.swift in Sources */, + 8CC5B7012B873FA000BAD89E /* VideoPlayerView.swift in Sources */, + 8CC5B6FB2B873FA000BAD89E /* DynamicSendView.swift in Sources */, + 8CC5B70E2B873FA000BAD89E /* NoticeView.swift in Sources */, + 8CC5B70B2B873FA000BAD89E /* ImageViewerView.swift in Sources */, + 8CC5B6E12B873FA000BAD89E /* BangumiDownloadView.swift in Sources */, + 8CC5B6E52B873FA000BAD89E /* UserDynamicMainView.swift in Sources */, + 8CC5B6F82B873FA000BAD89E /* SettingsView.swift in Sources */, + 8CC5B6EC2B873FA000BAD89E /* ArticleView.swift in Sources */, + 8CC5B6E02B873FA000BAD89E /* UserDynamicListView.swift in Sources */, + 8CC5B7002B873FA000BAD89E /* DynamicDetailView.swift in Sources */, + 8CC5B6FD2B873FA000BAD89E /* LinkDetectText.swift in Sources */, + 8CC5B6F72B873FA000BAD89E /* AudioPlayerView.swift in Sources */, + 8CC5B6EA2B873FA000BAD89E /* CodingTime.m in Sources */, + 8CC5B7102B873FA000BAD89E /* LiveMessagesView.swift in Sources */, + 8CC5B7042B873FA000BAD89E /* VideoDownloadView.swift in Sources */, + 8CC5B6EB2B873FA000BAD89E /* MemoryWarningView.swift in Sources */, + 8CC5B6E62B873FA000BAD89E /* UIExt.swift in Sources */, + 8CC5B7032B873FA000BAD89E /* SkinDownloadView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1609,69 +1554,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8CE523B82B935D6100C89318 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8CE523EF2B935D9300C89318 /* AVExtension.m in Sources */, - 8CE523F52B935D9300C89318 /* SkinDownloadView.swift in Sources */, - 8CE523CA2B935D9300C89318 /* ImageViewerView.swift in Sources */, - 8CE523EE2B935D9300C89318 /* VideoDetailView.swift in Sources */, - 8CE523E62B935D9300C89318 /* LiveDetailView.swift in Sources */, - 8CE523D02B935D9300C89318 /* BangumiPlayerView.swift in Sources */, - 8CE523EC2B935D9300C89318 /* DownloadObj.swift in Sources */, - 8CE523C52B935D9300C89318 /* SettingsView.swift in Sources */, - 8CE523E92B935D9300C89318 /* AboutView.swift in Sources */, - 8CE523F22B935D9300C89318 /* Passthroughs.swift in Sources */, - 8CE523F32B935D9300C89318 /* bMessageSendView.swift in Sources */, - 8CE523DD2B935D9300C89318 /* UserDynamicListView.swift in Sources */, - 8CE523DC2B935D9300C89318 /* SkinChooserView.swift in Sources */, - 8CE523F62B935D9300C89318 /* NowPlayingExtension.m in Sources */, - 8CE523F42B935D9300C89318 /* NetwokFixView.swift in Sources */, - 8CE523C62B935D9300C89318 /* UIExt.swift in Sources */, - 8CE523DA2B935D9300C89318 /* UserDetailView.swift in Sources */, - 8CE523E82B935D9300C89318 /* ContentView.swift in Sources */, - 8CE523D82B935D9300C89318 /* VideoDownloadView.swift in Sources */, - 8CE523E22B935D9300C89318 /* NoticeView.swift in Sources */, - 8CE523E52B935D9300C89318 /* AppMain.swift in Sources */, - 8CE523CE2B935D9300C89318 /* LivePlayerView.swift in Sources */, - 8CE523C32B935D9300C89318 /* CommentsView.swift in Sources */, - 8CE523EB2B935D9300C89318 /* ErrorGetView.swift in Sources */, - 8CE523D32B935D9300C89318 /* SkinExplorerView.swift in Sources */, - 8CE523C82B935D9300C89318 /* SignalErrorView.swift in Sources */, - 8CE523C42B935D9300C89318 /* DynamicDetailView.swift in Sources */, - 8CE523F02B935D9300C89318 /* LiveMessagesView.swift in Sources */, - 8CE523F92B935D9300C89318 /* MemoryWarningView.swift in Sources */, - 8CE523D92B935D9300C89318 /* backtrace.c in Sources */, - 8CE523D42B935D9300C89318 /* Bangumi.swift in Sources */, - 8CE523C92B935D9300C89318 /* DarockBili_dynamic.swift in Sources */, - 8CE523DE2B935D9300C89318 /* DownloadsView.swift in Sources */, - 8CE523CF2B935D9300C89318 /* SearchView.swift in Sources */, - 8CE523D22B935D9300C89318 /* CodingTime.m in Sources */, - 8CE523ED2B935D9300C89318 /* FeedbackView.swift in Sources */, - 8CE523E02B935D9300C89318 /* SelfQrCardView.swift in Sources */, - 8CE523D12B935D9300C89318 /* UserDynamicMainView.swift in Sources */, - 8CE523DF2B935D9300C89318 /* BangumiDetailView.swift in Sources */, - 8CE523F12B935D9300C89318 /* backtrace.swift in Sources */, - 8CE523DB2B935D9300C89318 /* LinkDetectText.swift in Sources */, - 8CE523CD2B935D9300C89318 /* MainView.swift in Sources */, - 8CE523F72B935D9300C89318 /* WatchLaterView.swift in Sources */, - 8CE523E12B935D9300C89318 /* OCCodeExt.m in Sources */, - 8CE523E42B935D9300C89318 /* BangumiDownloadView.swift in Sources */, - 8CE523CC2B935D9300C89318 /* HistoryView.swift in Sources */, - 8CE523D72B935D9300C89318 /* FavoriteView.swift in Sources */, - 8CE523E32B935D9300C89318 /* CodeExt.swift in Sources */, - 8CE523CB2B935D9300C89318 /* ArticleView.swift in Sources */, - 8CE523C72B935D9300C89318 /* AudioPlayerView.swift in Sources */, - 8CE523D62B935D9300C89318 /* LoginView.swift in Sources */, - 8CE523FA2B935D9300C89318 /* AppFileManager.swift in Sources */, - 8CE523E72B935D9300C89318 /* DynamicSendView.swift in Sources */, - 8CE523D52B935D9300C89318 /* FollowListView.swift in Sources */, - 8CE523EA2B935D9300C89318 /* VideoPlayerView.swift in Sources */, - 8CE523F82B935D9300C89318 /* PersonAccountView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -1680,36 +1562,11 @@ target = 8C617F3D2B92334B000A3687 /* SafariExtension */; targetProxy = 8C617F542B92334B000A3687 /* PBXContainerItemProxy */; }; - 8CA68F0A2B93264B00870AAA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8CA68EF92B93224B00870AAA /* DarockBili.dynamic */; - targetProxy = 8CA68F092B93264B00870AAA /* PBXContainerItemProxy */; - }; 8CA7CBD22B77AC4C008E587F /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 8CA7CBCE2B77AC4C008E587F /* MeowBili Watch App */; targetProxy = 8CA7CBD12B77AC4C008E587F /* PBXContainerItemProxy */; }; - 8CA97C272B945F1C0008A99B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8CA68EF92B93224B00870AAA /* DarockBili.dynamic */; - targetProxy = 8CA97C262B945F1C0008A99B /* PBXContainerItemProxy */; - }; - 8CA97C292B945F1C0008A99B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8CE523BB2B935D6100C89318 /* DarockBili.dynamic.watch */; - targetProxy = 8CA97C282B945F1C0008A99B /* PBXContainerItemProxy */; - }; - 8CA97C2B2B945F1C0008A99B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8CA7CBBF2B77AC4A008E587F /* MeowBili */; - targetProxy = 8CA97C2A2B945F1C0008A99B /* PBXContainerItemProxy */; - }; - 8CA97C2F2B9468590008A99B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8CE523BB2B935D6100C89318 /* DarockBili.dynamic.watch */; - targetProxy = 8CA97C2E2B9468590008A99B /* PBXContainerItemProxy */; - }; 8CC5B7472B8749BC00BAD89E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 8CA7CBBF2B77AC4A008E587F /* MeowBili */; @@ -1722,7 +1579,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_TEAM = B57D8PP775; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SafariExtension/Info.plist; @@ -1753,7 +1610,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_TEAM = B57D8PP775; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SafariExtension/Info.plist; @@ -1789,7 +1646,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = "MeowBili/MeowBili Vision App.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_PREVIEWS = YES; @@ -1824,7 +1681,7 @@ ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = "MeowBili/MeowBili Vision App.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_PREVIEWS = YES; @@ -1852,50 +1709,6 @@ }; name = Release; }; - 8CA68EFE2B93224B00870AAA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = B57D8PP775; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - EXECUTABLE_EXTENSION = dylib; - EXECUTABLE_PREFIX = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - MACH_O_TYPE = mh_dylib; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "MeowBili/MeowBili-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 8CA68EFF2B93224B00870AAA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = B57D8PP775; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - EXECUTABLE_EXTENSION = dylib; - EXECUTABLE_PREFIX = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - MACH_O_TYPE = mh_dylib; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "MeowBili/MeowBili-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; 8CA7CBDD2B77AC4D008E587F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1905,7 +1718,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MeowBili/MeowBili.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_PREVIEWS = YES; @@ -1952,7 +1765,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MeowBili/MeowBili.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_PREVIEWS = YES; @@ -1996,7 +1809,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIconWatch; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview\\ Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_PREVIEWS = YES; @@ -2032,7 +1845,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIconWatch; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview\\ Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_PREVIEWS = YES; @@ -2063,28 +1876,6 @@ }; name = Release; }; - 8CA97C232B945EE10008A99B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = B57D8PP775; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 8CA97C242B945EE10008A99B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = B57D8PP775; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - }; - name = Release; - }; 8CC5B6D92B873E7800BAD89E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2093,7 +1884,7 @@ CODE_SIGN_ENTITLEMENTS = "MeowBili/MeowBili Mac App.entitlements"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_HARDENED_RUNTIME = YES; @@ -2126,7 +1917,7 @@ CODE_SIGN_ENTITLEMENTS = "MeowBili/MeowBili Mac App.entitlements"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_ASSET_PATHS = "\"MeowBili/Preview Content\""; DEVELOPMENT_TEAM = B57D8PP775; ENABLE_HARDENED_RUNTIME = YES; @@ -2155,7 +1946,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_TEAM = B57D8PP775; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 16.0; @@ -2178,7 +1969,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 942; + CURRENT_PROJECT_VERSION = 885; DEVELOPMENT_TEAM = B57D8PP775; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 16.0; @@ -2198,41 +1989,6 @@ }; name = Release; }; - 8CE523C12B935D6200C89318 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = B57D8PP775; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = watchos; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "MeowBili/MeowBili-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 8CE523C22B935D6200C89318 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = B57D8PP775; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = watchos; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "MeowBili/MeowBili-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 4; - VALIDATE_PRODUCT = YES; - WATCHOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Release; - }; B44689DE2B4FC15B002CCEB2 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2380,15 +2136,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8CA68F002B93224B00870AAA /* Build configuration list for PBXNativeTarget "DarockBili.dynamic" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8CA68EFE2B93224B00870AAA /* Debug */, - 8CA68EFF2B93224B00870AAA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 8CA7CBE22B77AC4D008E587F /* Build configuration list for PBXNativeTarget "MeowBili Watch App" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -2407,15 +2154,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8CA97C252B945EE10008A99B /* Build configuration list for PBXAggregateTarget "ALL_BUILD" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8CA97C232B945EE10008A99B /* Debug */, - 8CA97C242B945EE10008A99B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 8CC5B6D82B873E7800BAD89E /* Build configuration list for PBXNativeTarget "MeowBili Mac App" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -2434,15 +2172,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8CE523C02B935D6200C89318 /* Build configuration list for PBXNativeTarget "DarockBili.dynamic.watch" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8CE523C12B935D6200C89318 /* Debug */, - 8CE523C22B935D6200C89318 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; B44689C72B4FC15A002CCEB2 /* Build configuration list for PBXProject "DarockBili" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -2711,106 +2440,6 @@ isa = XCSwiftPackageProductDependency; productName = AZVideoPlayer; }; - 8CA68F122B93357700870AAA /* Alamofire */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A6B2B4FC2C8002CCEB2 /* XCRemoteSwiftPackageReference "Alamofire" */; - productName = Alamofire; - }; - 8CA68F142B93357700870AAA /* Marquee */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A6E2B4FC5E7002CCEB2 /* XCRemoteSwiftPackageReference "Marquee" */; - productName = Marquee; - }; - 8CA68F162B93357700870AAA /* SwiftDate */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A712B4FC5F1002CCEB2 /* XCRemoteSwiftPackageReference "SwiftDate" */; - productName = SwiftDate; - }; - 8CA68F182B93357700870AAA /* SFSymbol */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A742B4FC602002CCEB2 /* XCRemoteSwiftPackageReference "SFSymbol" */; - productName = SFSymbol; - }; - 8CA68F1A2B93357700870AAA /* ZipArchive */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A792B4FC618002CCEB2 /* XCRemoteSwiftPackageReference "ZipArchive" */; - productName = ZipArchive; - }; - 8CA68F1C2B93357700870AAA /* EFQRCode */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A7E2B4FC675002CCEB2 /* XCRemoteSwiftPackageReference "EFQRCode" */; - productName = EFQRCode; - }; - 8CA68F1E2B93357700870AAA /* SDWebImageSwiftUI */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A7F2B4FC681002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */; - productName = SDWebImageSwiftUI; - }; - 8CA68F202B93357700870AAA /* SDWebImageWebPCoder */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A802B4FC68C002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImageWebPCoder" */; - productName = SDWebImageWebPCoder; - }; - 8CA68F222B93357700870AAA /* SDWebImageSVGCoder */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A812B4FC697002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImageSVGCoder" */; - productName = SDWebImageSVGCoder; - }; - 8CA68F242B93357700870AAA /* SDWebImagePDFCoder */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A822B4FC6A1002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImagePDFCoder" */; - productName = SDWebImagePDFCoder; - }; - 8CA68F262B93357700870AAA /* SwiftSoup */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A832B4FC6B1002CCEB2 /* XCRemoteSwiftPackageReference "SwiftSoup" */; - productName = SwiftSoup; - }; - 8CA68F282B93357700870AAA /* CachedAsyncImage */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A842B4FC6BE002CCEB2 /* XCRemoteSwiftPackageReference "swiftui-cached-async-image" */; - productName = CachedAsyncImage; - }; - 8CA68F2A2B93357700870AAA /* Dynamic */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A852B4FC6C6002CCEB2 /* XCRemoteSwiftPackageReference "Dynamic" */; - productName = Dynamic; - }; - 8CA68F2C2B93357700870AAA /* SwiftyJSON */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A8A2B4FC85A002CCEB2 /* XCRemoteSwiftPackageReference "SwiftyJSON" */; - productName = SwiftyJSON; - }; - 8CA68F2E2B93357700870AAA /* DarockKit */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A8D2B4FC8AC002CCEB2 /* XCRemoteSwiftPackageReference "DarockKit" */; - productName = DarockKit; - }; - 8CA68F302B93357700870AAA /* AlertKit */ = { - isa = XCSwiftPackageProductDependency; - package = 8CA7CCDD2B77BB5A008E587F /* XCRemoteSwiftPackageReference "AlertKit" */; - productName = AlertKit; - }; - 8CA68F322B93357700870AAA /* AZVideoPlayer */ = { - isa = XCSwiftPackageProductDependency; - package = 8C0557DD2B791B84009D9CD0 /* XCRemoteSwiftPackageReference "AZVideoPlayer" */; - productName = AZVideoPlayer; - }; - 8CA68F342B93357700870AAA /* ScreenshotableView */ = { - isa = XCSwiftPackageProductDependency; - package = 8CC3D5612B7CCE57005636DC /* XCRemoteSwiftPackageReference "ScreenshotableView" */; - productName = ScreenshotableView; - }; - 8CA68F362B93357700870AAA /* Mixpanel */ = { - isa = XCSwiftPackageProductDependency; - package = 8CA370D22B82690700CE0E9E /* XCRemoteSwiftPackageReference "mixpanel-swift" */; - productName = Mixpanel; - }; - 8CA68F382B93357700870AAA /* AlertToast */ = { - isa = XCSwiftPackageProductDependency; - package = 8CA370DD2B827AAD00CE0E9E /* XCRemoteSwiftPackageReference "AlertToast" */; - productName = AlertToast; - }; 8CA7CBE42B77AC8A008E587F /* Alamofire */ = { isa = XCSwiftPackageProductDependency; package = B4468A6B2B4FC2C8002CCEB2 /* XCRemoteSwiftPackageReference "Alamofire" */; @@ -3066,86 +2695,6 @@ package = 8CA370DD2B827AAD00CE0E9E /* XCRemoteSwiftPackageReference "AlertToast" */; productName = AlertToast; }; - 8CE523FB2B935E0E00C89318 /* Alamofire */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A6B2B4FC2C8002CCEB2 /* XCRemoteSwiftPackageReference "Alamofire" */; - productName = Alamofire; - }; - 8CE523FD2B935E0E00C89318 /* Marquee */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A6E2B4FC5E7002CCEB2 /* XCRemoteSwiftPackageReference "Marquee" */; - productName = Marquee; - }; - 8CE523FF2B935E0E00C89318 /* SwiftDate */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A712B4FC5F1002CCEB2 /* XCRemoteSwiftPackageReference "SwiftDate" */; - productName = SwiftDate; - }; - 8CE524012B935E0E00C89318 /* SFSymbol */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A742B4FC602002CCEB2 /* XCRemoteSwiftPackageReference "SFSymbol" */; - productName = SFSymbol; - }; - 8CE524032B935E0E00C89318 /* ZipArchive */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A792B4FC618002CCEB2 /* XCRemoteSwiftPackageReference "ZipArchive" */; - productName = ZipArchive; - }; - 8CE524052B935E0E00C89318 /* EFQRCode */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A7E2B4FC675002CCEB2 /* XCRemoteSwiftPackageReference "EFQRCode" */; - productName = EFQRCode; - }; - 8CE524072B935E0E00C89318 /* SDWebImageSwiftUI */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A7F2B4FC681002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImageSwiftUI" */; - productName = SDWebImageSwiftUI; - }; - 8CE524092B935E0E00C89318 /* SDWebImageWebPCoder */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A802B4FC68C002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImageWebPCoder" */; - productName = SDWebImageWebPCoder; - }; - 8CE5240B2B935E0E00C89318 /* SDWebImageSVGCoder */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A812B4FC697002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImageSVGCoder" */; - productName = SDWebImageSVGCoder; - }; - 8CE5240D2B935E0E00C89318 /* SDWebImagePDFCoder */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A822B4FC6A1002CCEB2 /* XCRemoteSwiftPackageReference "SDWebImagePDFCoder" */; - productName = SDWebImagePDFCoder; - }; - 8CE5240F2B935E0E00C89318 /* SwiftSoup */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A832B4FC6B1002CCEB2 /* XCRemoteSwiftPackageReference "SwiftSoup" */; - productName = SwiftSoup; - }; - 8CE524112B935E0E00C89318 /* CachedAsyncImage */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A842B4FC6BE002CCEB2 /* XCRemoteSwiftPackageReference "swiftui-cached-async-image" */; - productName = CachedAsyncImage; - }; - 8CE524132B935E0E00C89318 /* Dynamic */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A852B4FC6C6002CCEB2 /* XCRemoteSwiftPackageReference "Dynamic" */; - productName = Dynamic; - }; - 8CE524152B935E0E00C89318 /* SwiftyJSON */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A8A2B4FC85A002CCEB2 /* XCRemoteSwiftPackageReference "SwiftyJSON" */; - productName = SwiftyJSON; - }; - 8CE524172B935E0E00C89318 /* DarockKit */ = { - isa = XCSwiftPackageProductDependency; - package = B4468A8D2B4FC8AC002CCEB2 /* XCRemoteSwiftPackageReference "DarockKit" */; - productName = DarockKit; - }; - 8CE5241F2B935E0E00C89318 /* Mixpanel */ = { - isa = XCSwiftPackageProductDependency; - package = 8CA370D22B82690700CE0E9E /* XCRemoteSwiftPackageReference "mixpanel-swift" */; - productName = Mixpanel; - }; /* End XCSwiftPackageProductDependency section */ }; rootObject = B44689C42B4FC15A002CCEB2 /* Project object */; diff --git a/DarockBili.xcodeproj/xcshareddata/xcschemes/ALL_BUILD.xcscheme b/DarockBili.xcodeproj/xcshareddata/xcschemes/ALL_BUILD.xcscheme deleted file mode 100644 index 318316095..000000000 --- a/DarockBili.xcodeproj/xcshareddata/xcschemes/ALL_BUILD.xcscheme +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.watch.xcscheme b/DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.watch.xcscheme deleted file mode 100644 index c90ef894a..000000000 --- a/DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.watch.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.xcscheme b/DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.xcscheme deleted file mode 100644 index 52adaf0f4..000000000 --- a/DarockBili.xcodeproj/xcshareddata/xcschemes/DarockBili.dynamic.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Localizable.xcstrings b/Localizable.xcstrings index 6d672353b..de76fd004 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -2,7 +2,6 @@ "sourceLanguage" : "zh-Hans", "strings" : { "" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -19,7 +18,6 @@ } }, " / %lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -48,7 +46,6 @@ } }, "_uuid_Gen" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -77,7 +74,6 @@ } }, "-- And You --" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -106,7 +102,6 @@ } }, ":" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -123,7 +118,6 @@ } }, ".%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -180,7 +174,6 @@ } }, "%@\n%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -209,7 +202,6 @@ } }, "%@ · %@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -238,7 +230,6 @@ } }, "%@ %@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -267,7 +258,6 @@ } }, "%@ 人在看" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -290,7 +280,6 @@ } }, "%@ 弹幕" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -313,7 +302,6 @@ } }, "%@ 播放" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -336,7 +324,6 @@ } }, "%@ 粉丝" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -357,6 +344,9 @@ } } } + }, + "%@ 频道" : { + }, "%@MB / %@MB" : { "localizations" : { @@ -385,6 +375,9 @@ } } } + }, + "%@粉丝" : { + }, "%lld" : { "extractionState" : "stale", @@ -410,7 +403,6 @@ } }, "%lld / %lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -439,7 +431,6 @@ } }, "%lld%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -468,7 +459,6 @@ } }, "%lld%%" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -497,7 +487,6 @@ } }, "+86" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -520,7 +509,6 @@ } }, "114" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -543,7 +531,6 @@ } }, "About" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -572,7 +559,6 @@ } }, "About-me" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -601,7 +587,6 @@ } }, "About.confirm" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -630,7 +615,6 @@ } }, "About.credits" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -659,7 +643,6 @@ } }, "About.genshin" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -688,7 +671,6 @@ } }, "About.meowbili" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -717,7 +699,6 @@ } }, "About.mystery-code" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -746,7 +727,6 @@ } }, "About.mystery-code.error" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -775,7 +755,6 @@ } }, "About.open-source" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -804,7 +783,6 @@ } }, "Account.articals.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -845,7 +823,6 @@ } }, "Account.certification" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -874,7 +851,6 @@ } }, "Account.check-articles" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -903,7 +879,6 @@ } }, "Account.check-videos" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -932,7 +907,6 @@ } }, "Account.direct-message" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -961,7 +935,6 @@ } }, "Account.follow" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -990,7 +963,6 @@ } }, "Account.followers" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1019,7 +991,6 @@ } }, "Account.info" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1048,7 +1019,6 @@ } }, "Account.list.destination" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1071,7 +1041,6 @@ } }, "Account.list.go" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1100,7 +1069,6 @@ } }, "Account.list.goto" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1129,7 +1097,6 @@ } }, "Account.list.last-page" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1158,7 +1125,6 @@ } }, "Account.list.next-page" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1187,7 +1153,6 @@ } }, "Account.list.no-article" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1216,7 +1181,6 @@ } }, "Account.list.no-video" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1245,7 +1209,6 @@ } }, "Account.subscribed" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1274,7 +1237,6 @@ } }, "Account.tips.followed" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1303,7 +1265,6 @@ } }, "Account.tips.unfollowed" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1332,7 +1293,6 @@ } }, "Account.unfollow" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1361,7 +1321,6 @@ } }, "Account.videos.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -1402,7 +1361,6 @@ } }, "activeBdUrl" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1425,7 +1383,6 @@ } }, "Bangumi" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1454,7 +1411,6 @@ } }, "Bangumi.comments.select" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1483,7 +1439,6 @@ } }, "Bangumi.commnets" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1512,7 +1467,6 @@ } }, "Bangumi.score.joined-people.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -1553,7 +1507,6 @@ } }, "Battery.low-power-mode" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1582,7 +1535,6 @@ } }, "buvid_fpTest" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1605,7 +1557,6 @@ } }, "buvid3_4_actived" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1626,15 +1577,8 @@ } } } - }, - "Cannot get handle" : { - - }, - "Cannot get sym" : { - }, "Close Debug Controls" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1657,7 +1601,6 @@ } }, "Comment.send" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1686,7 +1629,6 @@ } }, "Current Global Buvid3: %@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1709,7 +1651,6 @@ } }, "Current Global Buvid4: %@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1732,7 +1673,6 @@ } }, "Darock 会收集必要的诊断信息以便进行改进,信息不会关联到您个人。如果您不愿意被收集信息,请勿发送。" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -1743,7 +1683,6 @@ } }, "Darock-studio" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1772,7 +1711,6 @@ } }, "Dignite" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1795,7 +1733,6 @@ } }, "Direct-message.failed" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1824,7 +1761,6 @@ } }, "Download.finished.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1853,7 +1789,6 @@ } }, "Download.list" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1882,7 +1817,6 @@ } }, "Download.nothing" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1911,7 +1845,6 @@ } }, "Download.num.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1940,7 +1873,6 @@ } }, "Download.paused.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1969,7 +1901,6 @@ } }, "Download.preloading..." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1998,7 +1929,6 @@ } }, "Download.tap-2-retry" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2027,7 +1957,6 @@ } }, "Download.task-created" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2056,7 +1985,6 @@ } }, "Download.title" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2085,7 +2013,6 @@ } }, "Error" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2114,7 +2041,6 @@ } }, "Error.appriciate" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2143,7 +2069,6 @@ } }, "Error.area.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2172,7 +2097,6 @@ } }, "Error.before-ranning-into-problem" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2201,7 +2125,6 @@ } }, "Error.details" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2230,7 +2153,6 @@ } }, "Error.details.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2259,7 +2181,6 @@ } }, "Error.do-not-send" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2288,7 +2209,6 @@ } }, "Error.exit" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2311,7 +2231,6 @@ } }, "Error.exiting" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2334,7 +2253,6 @@ } }, "Error.fatal" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2363,7 +2281,6 @@ } }, "Error.information" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2386,7 +2303,6 @@ } }, "Error.leave" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2409,7 +2325,6 @@ } }, "Error.network-troubleshoot" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2438,7 +2353,6 @@ } }, "Error.no-need-to-send" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2467,7 +2381,6 @@ } }, "Error.number.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2496,7 +2409,6 @@ } }, "Error.oops" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2525,7 +2437,6 @@ } }, "Error.place.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2554,7 +2465,6 @@ } }, "Error.ran-into-a-problem" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2583,7 +2493,6 @@ } }, "Error.send" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2612,7 +2521,6 @@ } }, "Error.send-to-Darock-advice" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2641,7 +2549,6 @@ } }, "Error.sending" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2670,7 +2577,6 @@ } }, "Error.sent" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2699,7 +2605,6 @@ } }, "Error.sorry.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2728,7 +2633,6 @@ } }, "Feedback.continue-on-other-device" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -2803,9 +2707,11 @@ } } } + }, + "FocusStateDebug" : { + }, "fp" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2828,7 +2734,6 @@ } }, "Gen" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2851,7 +2756,6 @@ } }, "Gesture.double-tap" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2880,7 +2784,6 @@ } }, "Gesture.double-tap.description" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2909,7 +2812,6 @@ } }, "Get new & active" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2932,7 +2834,6 @@ } }, "Hello, World!" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2955,7 +2856,6 @@ } }, "History.none" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2984,7 +2884,6 @@ } }, "Home" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3013,7 +2912,6 @@ } }, "Home.debug" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3042,7 +2940,6 @@ } }, "Home.more" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3071,7 +2968,6 @@ } }, "Home.more.error" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3100,7 +2996,6 @@ } }, "Home.no-internet" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3129,7 +3024,6 @@ } }, "Home.search" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3158,7 +3052,6 @@ } }, "Home.understand" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3187,7 +3080,6 @@ } }, "Home.update.%@.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3216,7 +3108,6 @@ } }, "Home.update.skip" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3243,9 +3134,11 @@ } } } + }, + "ID: %@" : { + }, "Lightning-Lion" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3274,7 +3167,6 @@ } }, "Linecom" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3303,7 +3195,6 @@ } }, "Live" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3332,7 +3223,6 @@ } }, "Live.starting.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3361,7 +3251,6 @@ } }, "Login" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3390,7 +3279,6 @@ } }, "Login.scan" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3419,7 +3307,6 @@ } }, "Login.scanned" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3448,7 +3335,6 @@ } }, "Login.step1.phone-number" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3477,7 +3363,6 @@ } }, "Login.step1.title" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3506,7 +3391,6 @@ } }, "Login.step2.CAPTCHA" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3535,7 +3419,6 @@ } }, "Login.step2.captcha-first" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3564,7 +3447,6 @@ } }, "Login.step2.code" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3593,7 +3475,6 @@ } }, "Login.step2.code.empty" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3622,7 +3503,6 @@ } }, "Login.step2.code.get" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3651,7 +3531,6 @@ } }, "Login.step2.code.sent" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3680,7 +3559,6 @@ } }, "Login.step2.title" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3709,7 +3587,6 @@ } }, "Login.step3.title" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3738,7 +3615,6 @@ } }, "LongUIDUserTest" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3767,7 +3643,6 @@ } }, "Lv%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3796,7 +3671,6 @@ } }, "Memory Usage: %f MB" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3819,7 +3693,6 @@ } }, "Memory.caution" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3842,7 +3715,6 @@ } }, "Memory.display-usage" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3865,7 +3737,6 @@ } }, "Memory.indicator.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3888,7 +3759,6 @@ } }, "Memory.limit" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3911,7 +3781,6 @@ } }, "Memory.too-much-occupied" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3934,7 +3803,6 @@ } }, "Memory.understand" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3963,7 +3831,6 @@ } }, "Moments" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3986,7 +3853,6 @@ } }, "Moments.requires-login" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4015,7 +3881,6 @@ } }, "name" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4038,7 +3903,6 @@ } }, "navbar.dynamic" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4061,7 +3925,6 @@ } }, "navbar.my" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4090,7 +3953,6 @@ } }, "navbar.suggest" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4119,7 +3981,6 @@ } }, "Player.analyzying-source" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4148,7 +4009,6 @@ } }, "Player.analyzying-source.description" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4177,7 +4037,6 @@ } }, "Player.analyzying-source.offical" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4206,7 +4065,6 @@ } }, "Player.analyzying-source.third-party" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4235,7 +4093,6 @@ } }, "Player.pause" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4264,7 +4121,6 @@ } }, "Player.record-history" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4293,7 +4149,6 @@ } }, "Player.record-history.never" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4322,7 +4177,6 @@ } }, "Player.record-history.when-entering-page" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4351,7 +4205,6 @@ } }, "Player.record-history.when-video-plays" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4380,7 +4233,6 @@ } }, "Screen-time.daily-average" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4409,7 +4261,6 @@ } }, "Screen-time.description" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4438,7 +4289,6 @@ } }, "Screen-time.minutes.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -4479,7 +4329,6 @@ } }, "Screen-time.off" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4508,7 +4357,6 @@ } }, "Screen-time.on" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4537,7 +4385,6 @@ } }, "Screen-time.usage" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4566,7 +4413,6 @@ } }, "Search.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4595,7 +4441,6 @@ } }, "Search.debug" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4618,7 +4463,6 @@ } }, "Search.history" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4647,7 +4491,6 @@ } }, "Search.no-result" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4676,7 +4519,6 @@ } }, "Search.type" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4705,7 +4547,6 @@ } }, "Search.type.article" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4734,7 +4575,6 @@ } }, "Search.type.bangumi" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4763,7 +4603,6 @@ } }, "Search.type.live" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4792,7 +4631,6 @@ } }, "Search.type.user" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4821,7 +4659,6 @@ } }, "Search.type.video" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4850,7 +4687,6 @@ } }, "Settings" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4879,7 +4715,6 @@ } }, "Settings.about" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4908,7 +4743,6 @@ } }, "Settings.battery" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4937,7 +4771,6 @@ } }, "Settings.debug" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4960,7 +4793,6 @@ } }, "Settings.developer" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -4989,7 +4821,6 @@ } }, "Settings.feedback" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5018,7 +4849,6 @@ } }, "Settings.gesture" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5047,7 +4877,6 @@ } }, "Settings.internet" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5076,7 +4905,6 @@ } }, "Settings.log-out" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5105,7 +4933,6 @@ } }, "Settings.log-out.cancel" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5134,7 +4961,6 @@ } }, "Settings.log-out.confirm" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5163,7 +4989,6 @@ } }, "Settings.log-out.message" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5192,7 +5017,6 @@ } }, "Settings.player" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5221,7 +5045,6 @@ } }, "Settings.screen-time" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5250,7 +5073,6 @@ } }, "Settings.sleep" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5279,7 +5101,6 @@ } }, "Settings.update" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5308,7 +5129,6 @@ } }, "Show Debug Controls" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5331,7 +5151,6 @@ } }, "Skin" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5348,7 +5167,6 @@ } }, "Skin.add" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5365,7 +5183,6 @@ } }, "Skin.downloading" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5382,7 +5199,6 @@ } }, "Skin.none" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5399,7 +5215,6 @@ } }, "Skin.nothing" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5416,7 +5231,6 @@ } }, "Skin.unzipping" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5433,7 +5247,6 @@ } }, "Sleep" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5462,7 +5275,6 @@ } }, "Sleep.current.%@.%@.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5491,7 +5303,6 @@ } }, "Sleep.discription" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5520,7 +5331,6 @@ } }, "Sleep.edit.%@.%@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5549,7 +5359,6 @@ } }, "Sleep.edit.hour" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5572,7 +5381,6 @@ } }, "Sleep.edit.minute" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5595,7 +5403,6 @@ } }, "Sleep.edit.title" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5624,7 +5431,6 @@ } }, "Sleep.notification" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5653,7 +5459,6 @@ } }, "ThreeManager785" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5682,7 +5487,6 @@ } }, "time" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5705,7 +5509,6 @@ } }, "Troubleshoot" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5734,7 +5537,6 @@ } }, "Troubleshoot.auto-pop-up" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5763,7 +5565,6 @@ } }, "Troubleshoot.bilibili-api" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5792,7 +5593,6 @@ } }, "Troubleshoot.bilibili-api.available" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5821,7 +5621,6 @@ } }, "Troubleshoot.bilibili-api.checking" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5850,7 +5649,6 @@ } }, "Troubleshoot.bilibili-api.unavailable" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5879,7 +5677,6 @@ } }, "Troubleshoot.connection-states" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5908,7 +5705,6 @@ } }, "Troubleshoot.darock-api" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5937,7 +5733,6 @@ } }, "Troubleshoot.darock-api.available" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5966,7 +5761,6 @@ } }, "Troubleshoot.darock-api.checking" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5995,7 +5789,6 @@ } }, "Troubleshoot.darock-api.invalid-return" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6024,7 +5817,6 @@ } }, "Troubleshoot.darock-api.unavailable" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6053,7 +5845,6 @@ } }, "Troubleshoot.feedback" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6082,7 +5873,6 @@ } }, "Troubleshoot.fine" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6111,7 +5901,6 @@ } }, "Troubleshoot.fine.weird" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6140,7 +5929,6 @@ } }, "Troubleshoot.internet" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6169,7 +5957,6 @@ } }, "Troubleshoot.internet.checking" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6198,7 +5985,6 @@ } }, "Troubleshoot.internet.offline" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6227,7 +6013,6 @@ } }, "Troubleshoot.internet.online" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6256,7 +6041,6 @@ } }, "Troubleshoot.problem.bilibili-api" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6285,7 +6069,6 @@ } }, "Troubleshoot.problem.bilibili-api.meaning" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6314,7 +6097,6 @@ } }, "Troubleshoot.problem.bilibili-api.solution" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6343,7 +6125,6 @@ } }, "Troubleshoot.problem.darock-api" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6372,7 +6153,6 @@ } }, "Troubleshoot.problem.darock-api.meaning" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6401,7 +6181,6 @@ } }, "Troubleshoot.problem.darock-api.solution" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6430,7 +6209,6 @@ } }, "Troubleshoot.problem.internet" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6459,7 +6237,6 @@ } }, "Troubleshoot.problem.internet.meaning" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -6632,7 +6409,6 @@ } }, "Troubleshoot.problem.internet.plan-b" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -6709,7 +6485,6 @@ } }, "Troubleshoot.problem.internet.solution1" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -6882,7 +6657,6 @@ } }, "Troubleshoot.problem.internet.solution2" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -6959,7 +6733,6 @@ } }, "Troubleshoot.problem.meaning" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -6982,7 +6755,6 @@ } }, "Troubleshoot.problem.plan-b" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7005,7 +6777,6 @@ } }, "Troubleshoot.problem.solution" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7028,7 +6799,6 @@ } }, "Troubleshoot.problem.tips" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7051,7 +6821,6 @@ } }, "Troubleshoot.problems-found" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7074,7 +6843,6 @@ } }, "Troubleshoot.problems.bilibili-api.unavailable" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7097,7 +6865,6 @@ } }, "Troubleshoot.problems.darock-api.invalid-return" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7120,7 +6887,6 @@ } }, "Troubleshoot.problems.darock-api.unavailable" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7143,7 +6909,6 @@ } }, "Troubleshoot.problems.internet" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7172,7 +6937,6 @@ } }, "Troubleshoot.re-troubleshoot" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7201,7 +6965,6 @@ } }, "Troubleshoot.troubleshooting" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7230,7 +6993,6 @@ } }, "UID: %@" : { - "extractionState" : "stale", "localizations" : { "ja" : { "stringUnit" : { @@ -7247,7 +7009,6 @@ } }, "Update.checking" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7276,7 +7037,6 @@ } }, "Update.download-and-install" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7299,7 +7059,6 @@ } }, "Update.error" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7322,7 +7081,6 @@ } }, "Update.install-by-testflight" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -7381,7 +7139,6 @@ } }, "Update.latest" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7410,7 +7167,6 @@ } }, "User.favorites" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7439,7 +7195,6 @@ } }, "User.histories" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7468,7 +7223,6 @@ } }, "User.offline-cache" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7497,7 +7251,6 @@ } }, "User.subcribed-accounts" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7526,7 +7279,6 @@ } }, "User.switch" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7555,7 +7307,6 @@ } }, "User.switch.add" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7584,7 +7335,6 @@ } }, "User.switch.description" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7613,7 +7363,6 @@ } }, "User.switch.description.1" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7642,7 +7391,6 @@ } }, "User.switch.none" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7665,7 +7413,6 @@ } }, "User.tap-to-login" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7694,7 +7441,6 @@ } }, "User.watch-later" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7723,7 +7469,6 @@ } }, "UsernamePlaceholder" : { - "extractionState" : "stale", "localizations" : { "ja" : { "stringUnit" : { @@ -7734,7 +7479,6 @@ } }, "v%@ Build %@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7757,7 +7501,6 @@ } }, "Video" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7780,7 +7523,6 @@ } }, "Video.action.canceled" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7803,7 +7545,6 @@ } }, "Video.action.liked" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7826,7 +7567,6 @@ } }, "Video.add-to-favorites" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7849,7 +7589,6 @@ } }, "Video.added" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7872,7 +7611,6 @@ } }, "Video.analyzing" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7895,7 +7633,6 @@ } }, "Video.coin.throw" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7918,7 +7655,6 @@ } }, "Video.coin.throw.1" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -7941,7 +7677,6 @@ } }, "Video.coin.throw.2" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8057,7 +7792,6 @@ } }, "Video.details.watching-people.%@" : { - "extractionState" : "stale", "localizations" : { "ja" : { "stringUnit" : { @@ -8068,7 +7802,6 @@ } }, "Video.details.watching-people.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -8103,7 +7836,6 @@ } }, "Video.download" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8126,7 +7858,6 @@ } }, "Video.fans.%@" : { - "extractionState" : "stale", "localizations" : { "ja" : { "stringUnit" : { @@ -8137,7 +7868,6 @@ } }, "Video.fans.%lld" : { - "extractionState" : "stale", "localizations" : { "en" : { "variations" : { @@ -8172,7 +7902,6 @@ } }, "Video.more" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8195,7 +7924,6 @@ } }, "Video.play" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8218,7 +7946,6 @@ } }, "Video.play-in-audio" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8241,7 +7968,6 @@ } }, "Video.trending" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8264,7 +7990,6 @@ } }, "Video.unkonwn-error" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8287,7 +8012,6 @@ } }, "Video.watch-later" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8316,7 +8040,6 @@ } }, "WindowsMEMZ" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8343,9 +8066,14 @@ } } } + }, + "上一小时" : { + + }, + "下一步" : { + }, "二维码名片" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8368,7 +8096,6 @@ } }, "什么都木有" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -8377,9 +8104,14 @@ } } } + }, + "今天" : { + + }, + "从关注列表中移除" : { + }, "令枫" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8400,9 +8132,17 @@ } } } + }, + "使用“相机”App" : { + + }, + "使用恢复密钥" : { + + }, + "允许收集使用信息" : { + }, "全屏" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8425,7 +8165,6 @@ } }, "内容" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -8434,9 +8173,11 @@ } } } + }, + "分析与改进" : { + }, "动态" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8459,7 +8200,6 @@ } }, "动态内容" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8482,7 +8222,6 @@ } }, "动态评论" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8505,7 +8244,6 @@ } }, "动态详情" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8522,7 +8260,6 @@ } }, "历史记录" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8543,9 +8280,14 @@ } } } + }, + "反馈助理" : { + + }, + "反馈类型" : { + }, "发布于 %@" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8566,9 +8308,11 @@ } } } + }, + "发送" : { + }, "发送动态" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8585,7 +8329,6 @@ } }, "发送弹幕" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8606,9 +8349,14 @@ } } } + }, + "发送的反馈" : { + + }, + "发送评论" : { + }, "可选, 最多9个" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8631,7 +8379,6 @@ } }, "启用" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8646,9 +8393,35 @@ } } } + }, + "启用通知" : { + + }, + "喵哩喵哩" : { + + }, + "喵哩喵哩为完整开源项目,欢迎检查代码以确认无隐私问题" : { + + }, + "喵哩喵哩开源页" : { + + }, + "喵哩喵哩收集使用信息仅用以帮助改进质量,不会用于广告、个人画像之类,收集的信息不会关联到个人。此更改立即生效,不会影响哔哩哔哩官方对您的数据收集。" : { + + }, + "回复 %lld" : { + + }, + "回复信息" : { + + }, + "回复内容" : { + + }, + "在App内反馈" : { + }, "在iPhone上继续" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -8659,7 +8432,6 @@ } }, "在使用本 App 前,您需要先知晓以下信息:\n· 本 App 由第三方开发者以及部分社区用户贡献,与哔哩哔哩无合作关系,哔哩哔哩是上海宽娱数码科技有限公司的商标。\n· 本 App 并不是哔哩哔哩的替代品,我们建议您在能够使用官方客户端时尽量使用官方客户端。\n· 本 App 均使用来源于网络的公开信息进行开发。\n· 本 App 中和B站相关的功能完全免费\n· 本 App 中所呈现的B站内容来自哔哩哔哩官方。\n· 本 App 的开发者、负责人和实际责任人是%@\n 联系QQ:3245146430" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8686,9 +8458,11 @@ } } } + }, + "声音与触感" : { + }, "复制" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8705,7 +8479,6 @@ } }, "大" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8722,7 +8495,6 @@ } }, "字号" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8737,9 +8509,14 @@ } } } + }, + "完成" : { + + }, + "密码" : { + }, "将作为动态主体" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -8750,7 +8527,6 @@ } }, "小" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8767,7 +8543,6 @@ } }, "小尾巴内容" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -8776,12 +8551,8 @@ } } } - }, - "尝试重新下载资源包" : { - }, "已选择的图片" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8804,7 +8575,6 @@ } }, "应用" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8821,7 +8591,6 @@ } }, "底部" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8836,6 +8605,9 @@ } } } + }, + "建议" : { + }, "开启“屏幕使用时间”" : { "extractionState" : "stale", @@ -8861,7 +8633,6 @@ } }, "弹幕" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8884,7 +8655,6 @@ } }, "恢复" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8899,9 +8669,11 @@ } } } + }, + "恢复密钥" : { + }, "您可以更改默认的小尾巴内容, 如果不想添加小尾巴, 请清空上方文本框内容. 您可以随时在设置中更改此内容" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8924,7 +8696,6 @@ } }, "我的收藏" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8945,9 +8716,11 @@ } } } + }, + "所有历史记录" : { + }, "手记建议" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -8956,9 +8729,11 @@ } } } + }, + "扩展的触感反馈" : { + }, "推荐" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -8980,6 +8755,25 @@ } } }, + "搜索" : { + + }, + "文件保险箱" : { + + }, + "文件保险箱已启用" : { + + }, + "文件保险箱通过对喵哩喵哩进行加密来保护 App 内的数据。\n\n警告:你将需要密码或恢复密钥才能访问数据。在此设置过程中,会自动生成恢复密钥。如果同时忘记了密码和恢复密钥,数据将会丢失。\n\n已%@喵哩喵哩的文件保险箱。%@" : { + "localizations" : { + "zh-Hans" : { + "stringUnit" : { + "state" : "new", + "value" : "文件保险箱通过对喵哩喵哩进行加密来保护 App 内的数据。\n\n警告:你将需要密码或恢复密钥才能访问数据。在此设置过程中,会自动生成恢复密钥。如果同时忘记了密码和恢复密钥,数据将会丢失。\n\n已%1$@喵哩喵哩的文件保险箱。%2$@" + } + } + } + }, "文本加载失败" : { "extractionState" : "stale", "localizations" : { @@ -8996,9 +8790,14 @@ } } } + }, + "新建反馈" : { + + }, + "昨天和今天" : { + }, "显示底部弹幕" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9021,7 +8820,6 @@ } }, "显示普通弹幕" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9044,7 +8842,6 @@ } }, "显示顶部弹幕" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9067,7 +8864,6 @@ } }, "普通" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9082,9 +8878,11 @@ } } } + }, + "来自" : { + }, "极大" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9101,7 +8899,6 @@ } }, "极小" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9118,7 +8915,6 @@ } }, "标准" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9133,9 +8929,11 @@ } } } + }, + "标题" : { + }, "模式" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9150,12 +8948,8 @@ } } } - }, - "正在下载资源..." : { - }, "正在加密..." : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -9165,11 +8959,10 @@ } } }, - "正在安装..." : { + "清除历史记录" : { }, "清除所有已观看视频" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9190,9 +8983,14 @@ } } } + }, + "清除时间段" : { + + }, + "状态" : { + }, "画面" : { - "extractionState" : "stale", "localizations" : { "ja" : { "stringUnit" : { @@ -9209,7 +9007,6 @@ } }, "离线缓存" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9232,7 +9029,6 @@ } }, "稍后再看" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9255,7 +9051,6 @@ } }, "稿件" : { - "extractionState" : "stale", "localizations" : { "ja" : { "stringUnit" : { @@ -9270,9 +9065,14 @@ } } } + }, + "简洁地描述问题" : { + + }, + "类型" : { + }, "经验" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9293,9 +9093,11 @@ } } } + }, + "编辑" : { + }, "要使用动态小尾巴吗?" : { - "extractionState" : "stale", "localizations" : { "zh-Hant" : { "stringUnit" : { @@ -9304,9 +9106,11 @@ } } } + }, + "触感" : { + }, "记录历史记录" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9329,7 +9133,6 @@ } }, "评论" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9352,7 +9155,6 @@ } }, "评论回复" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9375,7 +9177,6 @@ } }, "详情" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9397,11 +9198,10 @@ } } }, - "请不要让Apple Watch熄屏,可以通过保持滚动表冠以使屏幕常亮" : { + "请将恢复密钥保存到安全的位置" : { }, "超大" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9418,7 +9218,6 @@ } }, "超小" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9433,9 +9232,11 @@ } } } + }, + "输入错误" : { + }, "选择图片" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9458,7 +9259,6 @@ } }, "选择文本" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9479,9 +9279,11 @@ } } } + }, + "通知" : { + }, "重新载入" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9502,9 +9304,14 @@ } } } + }, + "错误/异常行为" : { + + }, + "隐私与安全性" : { + }, "顶部" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9519,12 +9326,8 @@ } } } - }, - "顺便了解一些知识来打发时间吧!\n\n- 为什么要下载资源包?\n 喵哩喵哩通过资源包运行主要代码,这也就意味着您无需经常使用iPhone更新App。\n- 获取新功能的方法?\n 在设置->软件更新中可以更新资源包,无论iPhone是否在身边\n- 使用技巧?\n - 保持良好的网络环境,最好不连接iPhone或在设置中关闭iPhone上的无线局域网与蓝牙\n - 遇到问题在用户群内反馈效率最高\n - 登录账号以获取最佳体验\n- 开源!\n 喵哩喵哩为开源项目,您可以在GitHub上找到我们的源代码" : { - }, "颜色" : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -9539,6 +9342,30 @@ } } } + }, + "" : { + + }, + "" : { + + }, + "" : { + + }, + "" : { + + }, + "" : { + + }, + "" : { + + }, + "" : { + + }, + "" : { + } }, "version" : "1.0" diff --git a/MeowBili/DylibDownloadView.swift b/MeowBili/DylibDownloadView.swift deleted file mode 100644 index a368586c6..000000000 --- a/MeowBili/DylibDownloadView.swift +++ /dev/null @@ -1,134 +0,0 @@ -// -// -// DylibDownloadView.swift -// DarockBili -// -// Created by memz233 on 2024/3/2. -// -//===----------------------------------------------------------------------===// -// -// This source file is part of the MeowBili open source project -// -// Copyright (c) 2024 Darock Studio and the MeowBili project authors -// Licensed under GNU General Public License v3 -// -// See https://darock.top/LICENSE.txt for license information -// -//===----------------------------------------------------------------------===// - -import SwiftUI -import Alamofire -import ZipArchive - -struct DylibDownloadView: View { - @Binding var statusSymbol: Bool - @State var downloadProgress = 0.0 - @State var downloadedSize: Int64 = 0 - @State var totalSize: Int64 = 0 - @State var isUnziping = false - var body: some View { - NavigationStack { - List { - if !isUnziping { - Section { - Text("正在下载资源...") - .bold() - } - Section { - VStack { - ProgressView(value: downloadProgress) - HStack { - Spacer() - Text("\(String(format: "%.2f", downloadProgress * 100) + " %")") - Spacer() - } - HStack { - Spacer() - Text("\(String(format: "%.2f", Double(downloadedSize) / 1024 / 1024))MB / \(String(format: "%.2f", Double(totalSize) / 1024 / 1024))MB") - .font(.system(size: 16, weight: .bold)) - .lineLimit(1) - .minimumScaleFactor(0.1) - Spacer() - } - } - } - } else { - Section { - VStack { - Text("正在安装...") - .bold() - ProgressView() - } - } - } - #if os(watchOS) - Section { - Text("请不要让Apple Watch熄屏,可以通过保持滚动表冠以使屏幕常亮") - } - Section { - Text(""" - 顺便了解一些知识来打发时间吧! - - - 为什么要下载资源包? - 喵哩喵哩通过资源包运行主要代码,这也就意味着您无需经常使用iPhone更新App。 - - 获取新功能的方法? - 在设置->软件更新中可以更新资源包,无论iPhone是否在身边 - - 使用技巧? - - 保持良好的网络环境,最好不连接iPhone或在设置中关闭iPhone上的无线局域网与蓝牙 - - 遇到问题在用户群内反馈效率最高 - - 登录账号以获取最佳体验 - - 开源! - 喵哩喵哩为开源项目,您可以在GitHub上找到我们的源代码 - """) - } - #endif - } - } - .onAppear { - let destination: DownloadRequest.Destination = { _, _ in - let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] - let fileURL = documentsURL.appendingPathComponent("maind.zip") - return (fileURL, [.removePreviousFile]) - } - #if targetEnvironment(simulator) - #if os(watchOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/watchsimulator.zip" - #elseif os(iOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/iphonesimulator.zip" - #endif - #else - #if os(watchOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/watchos.zip" - #elseif os(iOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/iphoneos.zip" - #endif - #endif - DispatchQueue(label: "com.darock.DarockBili.resDownload").async { - AF.download(link, to: destination) - .downloadProgress { p in - downloadProgress = p.fractionCompleted - downloadedSize = p.completedUnitCount - totalSize = p.totalUnitCount - } - .response { r in - if r.error == nil, let filePath = r.fileURL?.path { - debugPrint(filePath) - isUnziping = true - DispatchQueue(label: "com.darock.DarockBili.resUnzip", qos: .background).async { - let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] - let fileURL = documentsURL.appendingPathComponent("main.dylib") - if FileManager.default.fileExists(atPath: fileURL.path()) { - try! FileManager.default.removeItem(atPath: fileURL.path()) - } - try! SSZipArchive.unzipFile(atPath: filePath, toDestination: fileURL.path().split(separator: "/").dropLast().joined(separator: "/"), overwrite: true, password: nil) - try! FileManager.default.removeItem(atPath: filePath) - statusSymbol.toggle() - } - } else { - debugPrint(r.error as Any) - } - } - } - } - } -} diff --git a/MeowBili/Extension/CodeExt.swift b/MeowBili/Extension/CodeExt.swift index 6265764e4..99ad9a912 100644 --- a/MeowBili/Extension/CodeExt.swift +++ b/MeowBili/Extension/CodeExt.swift @@ -705,40 +705,3 @@ prefix operator && prefix func && (input: inout T) -> UnsafeMutablePointer { withUnsafeMutablePointer(to: &input) { $0 } } - -public class DKDynamic { - public func testPrint() { - fromHandle { handle in - if let sym = dlsym(handle, "testPrint") { - let f = unsafeBitCast(sym, to: (@convention(c) () -> Void).self) - f() - } else { - print("Cannot get sym") - } - } - } - public func GetDylibVersion() -> String { - if let handle = dlopen(FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("main.dylib").path(), RTLD_NOW) { - if let sym = dlsym(handle, "GetDylibVersion") { - let f = unsafeBitCast(sym, to: (@convention(c) () -> String).self) - return f() - } else { - print("Cannot get sym") - } - dlclose(handle) - } else { - print("Cannot get handle") - } - return "Unknown" - } - - - private func fromHandle(_ closure: (UnsafeMutableRawPointer) -> Void) { - if let handle = dlopen(FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("main.dylib").path(), RTLD_NOW) { - closure(handle) - dlclose(handle) - } else { - print("Cannot get handle") - } - } -} diff --git a/MeowBili/InMain/MainView.swift b/MeowBili/InMain/MainView.swift index ed9c48aec..327830e05 100644 --- a/MeowBili/InMain/MainView.swift +++ b/MeowBili/InMain/MainView.swift @@ -130,7 +130,6 @@ struct MainView: View { @State var isFirstLoaded = false @State var newMajorVer = "" @State var newBuildVer = "" - @State var latestLibVer = "" @State var isShowDisableNewVerTip = false @State var isLoadingNew = false @State var isFailedToLoad = false @@ -142,7 +141,7 @@ struct MainView: View { Section { if debug { Button(action: { - DKDynamic().testPrint() + }, label: { Text("Home.debug") }) @@ -157,14 +156,23 @@ struct MainView: View { let nowMajorVer = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String let nowBuildVer = Bundle.main.infoDictionary?["CFBundleVersion"] as! String if (nowMajorVer < newMajorVer || nowBuildVer < newBuildVer) && updateTipIgnoreVersion != "\(newMajorVer)\(newBuildVer)" { - Text("Home.update.\(newMajorVer).\(newBuildVer)") + VStack { + Text("Home.update.\(newMajorVer).\(newBuildVer)") + if isShowDisableNewVerTip { + Text("Home.update.skip") + .font(.system(size: 12)) + .foregroundColor(.gray) + } + } + .onTapGesture { + if isShowDisableNewVerTip { + updateTipIgnoreVersion = "\(newMajorVer)\(newBuildVer)" + } else { + isShowDisableNewVerTip = true + } + } } } - if latestLibVer != "" && latestLibVer != DKDynamic().GetDylibVersion() { - NavigationLink(destination: { SoftwareUpdateView() }, label: { - Text("有资源包更新可用") - }) - } } #if os(watchOS) if isShowSearchButton { @@ -230,11 +238,6 @@ struct MainView: View { newBuildVer = String(respStr.apiFixed().split(separator: "|")[1]) } } - DarockKit.Network.shared.requestString("https://api.darock.top/bili/libnewver") { respStr, isSuccess in - if isSuccess { - latestLibVer = respStr.apiFixed() - } - } } .sheet(isPresented: $isNetworkFixPresented, content: { NetworkFixView() }) } diff --git a/MeowBili/MeowBiliApp.swift b/MeowBili/MeowBiliApp.swift index e95e3d1a0..95ef48524 100644 --- a/MeowBili/MeowBiliApp.swift +++ b/MeowBili/MeowBiliApp.swift @@ -16,14 +16,53 @@ // //===----------------------------------------------------------------------===// +import Darwin import SwiftUI import Mixpanel import DarockKit -import Alamofire -import SDWebImageSwiftUI +import SwiftyJSON +#if !os(visionOS) +import SDWebImage import SDWebImagePDFCoder import SDWebImageSVGCoder import SDWebImageWebPCoder +#else +import RealityKit +#endif +#if os(watchOS) +import WatchKit +#else +import CoreHaptics +#endif + +//!!!: Debug Setting, Set false Before Release +var debug = false + +var debugControlStdout = "stdo\n" + +var pShowTipText = "" +var pShowTipSymbol = "" +var pTipBoxOffset: CGFloat = 80 + +var isShowMemoryInScreen = false + +var isInOfflineMode = false + +#if os(watchOS) +var isInLowBatteryMode = false +#endif + +// BUVID +var globalBuvid3 = "" +var globalBuvid4 = "" + +#if !os(watchOS) +var globalHapticEngine: CHHapticEngine? +#endif + +#if os(visionOS) +var globalWindowSize = Size3D() +#endif // swiftlint:disable no_c_style_comment /* @@ -91,53 +130,388 @@ struct DarockBili_Watch_AppApp: App { #else @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate #endif - @State var shouldDownload = { - let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] - let fileURL = documentsURL.appendingPathComponent("main.dylib") - return !FileManager.default.fileExists(atPath: fileURL.path()) - }() - var body: some Scene { + @Environment(\.scenePhase) var scenePhase + // Screen Time + @AppStorage("isSleepNotificationOn") var isSleepNotificationOn = false + @AppStorage("notifyHour") var notifyHour = 0 + @AppStorage("notifyMinute") var notifyMinute = 0 + @AppStorage("IsScreenTimeEnabled") var isScreenTimeEnabled = true + @State var screenTimeCaculateTimer: Timer? + @State var showTipText = "" + @State var showTipSymbol = "" + @State var tipBoxOffset: CGFloat = 80 + @State var isLowBatteryMode = false + // Debug Controls + @State var isShowingDebugControls = false + @State var systemResourceRefreshTimer: Timer? + @State var memoryUsage: Float = 0.0 + @State var isShowMemoryUsage = false + @State var currentHour = 0 + @State var currentMinute = 0 + // Handoff + @State var handoffVideoDetails = [String: String]() + @State var shouldPushVideoView = false + // FileLocker + @State var fileLockerPwd = UserDefaults.standard.string(forKey: "FileLockerPassword") ?? "" + @State var fileLockerRecoverCode = UserDefaults.standard.string(forKey: "FileLockerRecoverCode") ?? "" + @State var fileLockerRetryCount = 0 + @State var fileLockerInput = "" + @State var recoveryCodeInput = "" + // Navigators + @State var isUrlOpenVideoPresented = false + @State var urlOpenVideoDetails = [String: String]() + #if os(watchOS) + @State var isMemoryWarningPresented = false + #else + @State var shouldShowAppName = false + #endif + var body: some SwiftUI.Scene { WindowGroup { - if !shouldDownload { - if let handle = dlopen(FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("main.dylib").path(), RTLD_NOW) { - Group { - if let sym = dlsym(handle, "GetAppMainView") { - let f = unsafeBitCast(sym, to: (@convention(c) () -> UnsafeMutableRawPointer).self) - let ptr = f() - Unmanaged.fromOpaque(ptr).takeRetainedValue().view + if fileLockerPwd != "" { + List { + Section { + Text(fileLockerRetryCount == 0 ? "文件保险箱已启用" : "输入错误") + .font(.title3) + .bold() + .listRowBackground(Color.clear) + } + Section { + TextField("密码", text: $fileLockerInput) + .submitLabel(.continue) + .onSubmit { + if fileLockerInput == fileLockerPwd { + fileLockerPwd = "" + } else { + fileLockerInput = "" + fileLockerRetryCount++ + } + } + } + if fileLockerRetryCount >= 3 { + Section { + TextField("使用恢复密钥", text: $recoveryCodeInput) + .submitLabel(.continue) + .onSubmit { + if recoveryCodeInput == fileLockerRecoverCode { + fileLockerPwd = "" + } else { + recoveryCodeInput = "" + fileLockerRetryCount++ + } + } + } + } + } + } else { + ZStack { + #if !os(visionOS) + #if os(watchOS) + ContentView() + VStack { + Spacer() + if #available(watchOS 10, *) { + HStack { + Image(systemName: showTipSymbol) + Text(showTipText) + } + .font(.system(size: 14, weight: .bold)) + .frame(width: 110, height: 40) + .lineLimit(1) + .minimumScaleFactor(0.1) + .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 8, style: .continuous)) + .offset(y: tipBoxOffset) + .animation(.easeOut(duration: 0.4), value: tipBoxOffset) } else { - Text("Cannot get sym") + HStack { + Image(systemName: showTipSymbol) + Text(showTipText) + } + .font(.system(size: 14, weight: .bold)) + .foregroundColor(.black) + .frame(width: 110, height: 40) + .lineLimit(1) + .minimumScaleFactor(0.1) + .background { + Color.white + .ignoresSafeArea() + .frame(width: 120, height: 40) + .cornerRadius(8) + .foregroundColor(Color(hex: 0xF5F5F5)) + .opacity(0.95) + } + .offset(y: tipBoxOffset) + .animation(.easeOut(duration: 0.4), value: tipBoxOffset) } } - .onAppear { - dlclose(handle) + #else + NavigationStack { + ZStack { + // Hide NavigationLinks behind + NavigationLink("", isActive: $isUrlOpenVideoPresented, destination: { VideoDetailView(videoDetails: urlOpenVideoDetails) }) + ContentView() + .onOpenURL { url in + let dec = url.absoluteString.urlDecoded() + let spd = dec.split(separator: "/").dropFirst() + debugPrint(spd) + switch spd[1] { + case "withvideodetail": + let kvs = dec.split(separator: "/", maxSplits: 1).dropFirst()[2].split(separator: "&") // e.g.: ["BV=xxx", "Title=xxx"] + urlOpenVideoDetails.removeAll() + for kv in kvs { + let kav = kv.split(separator: "=") + urlOpenVideoDetails.updateValue(String(kav[1]), forKey: String(kav[0])) + } + isUrlOpenVideoPresented = true + case "openbvid": + let bvid = spd[2] + urlOpenVideoDetails = ["Pic": "", "Title": "Loading...", "BV": String(bvid), "UP": "Loading...", "View": "1", "Danmaku": "1"] + isUrlOpenVideoPresented = true + default: + break + } + } + } } - } else { - VStack { - Text("Cannot get handle") + if shouldShowAppName { + VStack { + Spacer() + .frame(height: 12) + ZStack { + Capsule() + .fill(Color.accentColor) + .frame(width: 60, height: 20) + HStack { + Text("喵哩喵哩") + .foregroundStyle(Color.white) + .font(.system(size: 12, weight: .medium)) + } + } + Spacer() + } + .ignoresSafeArea() + } + #endif + #else + GeometryReader3D { proxy3D in + ContentView() .onAppear { - print(FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("main.dylib").path()) - print(FileManager.default.fileExists(atPath: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("main.dylib").path())) + Task { + // Delay first - rdar://so?77970699 + // rdar://so?76698516 + try await Task.sleep(nanoseconds: 1_000_000_000) + globalWindowSize = proxy3D.size + } } - Button(action: { - shouldDownload = true - }, label: { - Text("尝试重新下载资源包") - .foregroundStyle(Color.blue) - }) + } + #endif + } + #if os(watchOS) + .sheet(isPresented: $isMemoryWarningPresented, content: { MemoryWarningView() }) + #endif + .onAppear { + #if os(watchOS) + isInLowBatteryMode = UserDefaults.standard.bool(forKey: "IsInLowBatteryMode") + #endif + + Timer.scheduledTimer(withTimeInterval: 0.05, repeats: true) { _ in + showTipText = pShowTipText + showTipSymbol = pShowTipSymbol + UserDefaults.standard.set(isLowBatteryMode, forKey: "IsInLowBatteryMode") + Timer.scheduledTimer(withTimeInterval: 0.2, repeats: false) { timer in + tipBoxOffset = pTipBoxOffset + timer.invalidate() + } + } + + #if os(watchOS) + Timer.scheduledTimer(withTimeInterval: 5.0, repeats: true) { timer in + if getMemory() > 240.0 { + isMemoryWarningPresented = true + timer.invalidate() + } + } + #endif + + Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in + if isShowMemoryInScreen { + isShowMemoryUsage = true + Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { _ in + memoryUsage = getMemory() + } + timer.invalidate() + } + } + let timer = Timer(timeInterval: 1, repeats: true) { _ in + currentHour = getCurrentTime().hour + currentMinute = getCurrentTime().minute + } + let sleepTimeCheck = Timer(timeInterval: 60, repeats: true) { _ in + if currentHour == notifyHour && currentMinute == notifyMinute && isSleepNotificationOn { + #if !os(visionOS) && !os(watchOS) + AlertKitAPI.present(title: String(localized: "Sleep.notification"), icon: .heart, style: .iOS17AppleMusic, haptic: .warning) + #else + tipWithText(String(localized: "Sleep.notification"), symbol: "bed.double.fill") + #endif + } + } + RunLoop.current.add(timer, forMode: .default) + timer.fire() + RunLoop.current.add(sleepTimeCheck, forMode: .default) + sleepTimeCheck.fire() + } + .overlay { + VStack { + HStack { + if isLowBatteryMode { + Image(systemName: "circle") + .font(.system(size: 17, weight: .heavy)) + .foregroundColor(.accentColor) + .offset(y: 10) + } + } + Spacer() + } + .ignoresSafeArea() + if isShowMemoryUsage { + VStack { + HStack { + Spacer() + Text("Memory.indicator.\(String(format: "%.2f", memoryUsage))") + .font(.system(size: 10, weight: .medium)) + .offset(y: 26) + } + Spacer() + } + .ignoresSafeArea() + } + if debug { + HStack { + VStack { + Button(action: { + isShowingDebugControls.toggle() + }, label: { + Text(isShowingDebugControls ? "Close Debug Controls" : "Show Debug Controls") + .font(.system(size: 12)) + .foregroundColor(.blue) + }) + .buttonStyle(.plain) + .offset(x: 15, y: 5) + if isShowingDebugControls { + VStack { + HStack { + Text("Memory Usage: \(memoryUsage) MB") + Spacer() + } + .allowsHitTesting(false) + } + .font(.system(size: 10)) + + .onAppear { + Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in + systemResourceRefreshTimer = timer + memoryUsage = getMemory() + } + } + .onDisappear { + systemResourceRefreshTimer?.invalidate() + } + } + Spacer() + } + .padding(.horizontal, 3) + .padding(.vertical, 1) + Spacer() + } + .ignoresSafeArea() + } + } + .onContinueUserActivity("com.darock.DarockBili.video-play") { activity in + if let videoDetails = activity.userInfo as? [String: String] { + handoffVideoDetails = videoDetails + shouldPushVideoView = true } } - } else { - DylibDownloadView(statusSymbol: $shouldDownload) } } + .onChange(of: scenePhase) { value in + switch value { + case .background: + break + case .inactive: + #if os(iOS) + shouldShowAppName = false + #endif + case .active: + #if !os(visionOS) + SDImageCodersManager.shared.addCoder(SDImageWebPCoder.shared) + SDImageCodersManager.shared.addCoder(SDImageSVGCoder.shared) + SDImageCodersManager.shared.addCoder(SDImagePDFCoder.shared) + SDImageCache.shared.config.maxMemoryCost = 1024 * 1024 * 10 + SDImageCache.shared.config.shouldCacheImagesInMemory = false + SDImageCache.shared.config.shouldUseWeakMemoryCache = true + SDImageCache.shared.clearMemory() + #endif + + updateBuvid() + + #if os(watchOS) + WKInterfaceDevice.current().isBatteryMonitoringEnabled = true + #else + if CHHapticEngine.capabilitiesForHardware().supportsHaptics { + do { + globalHapticEngine = try CHHapticEngine() + try globalHapticEngine?.start() + } catch { + print("创建引擎时出现错误: \(error.localizedDescription)") + } + } + + shouldShowAppName = true + #endif + + if isScreenTimeEnabled { + if screenTimeCaculateTimer == nil { + Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in + screenTimeCaculateTimer = timer + let df = DateFormatter() + df.dateFormat = "yyyy-MM-dd" + let dateStr = df.string(from: Date.now) + UserDefaults.standard.set(UserDefaults.standard.integer(forKey: "ScreenTime\(dateStr)") + 1, forKey: "ScreenTime\(dateStr)") + } + } + } + @unknown default: + break + } + } + } +} + +#if os(watchOS) || os(visionOS) +public func tipWithText(_ text: String, symbol: String = "", time: Double = 3.0) { + pShowTipText = text + pShowTipSymbol = symbol + pTipBoxOffset = 7 + Timer.scheduledTimer(withTimeInterval: time, repeats: false) { timer in + pTipBoxOffset = 80 + timer.invalidate() } } +#endif #if !os(watchOS) class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool { - + Mixpanel.initialize(token: "37d4aaecc64cae16353c2fe7dbb0513c", trackAutomaticEvents: false) + // ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Wow you see a token there, I'm not forget to hide it because you are no able to + // do anything important by this token >_- + if (UserDefaults.standard.object(forKey: "IsAllowMixpanel") as? Bool) ?? true { + Mixpanel.mainInstance().track(event: "Open App") + if let uid = UserDefaults.standard.string(forKey: "DedeUserId") { + Mixpanel.mainInstance().registerSuperPropertiesOnce(["DedeUserId": uid]) + } + } return true } @@ -146,9 +520,62 @@ class AppDelegate: NSObject, UIApplicationDelegate { //AlertKitAPI.present(title: "低内存警告", subtitle: "喵哩喵哩收到了低内存警告", icon: .error, style: .iOS17AppleMusic, haptic: .warning) } } + +func signalErrorRecord(_ errorNum: Int32, _ errorSignal: String) { + var symbols = "" + for symbol in Thread.callStackSymbols { + symbols += symbol + "\n" + } + let dateN = Date.now + let df = DateFormatter() + df.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSS Z" + let dateStr = df.string(from: dateN) + let fullString = """ + ------------------------------------- + Translated Report (Full Report Below) + ------------------------------------- + + Date/Time: \(dateStr) + Version: \(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String) Build \(Bundle.main.infoDictionary?["CFBundleVersion"] as! String) + OS Version: \(UIDevice.current.systemName) \(UIDevice.current.systemVersion) + + Exception Type: \(errorSignal) + Termination Reason: \(errorSignal) \(errorNum) + + Main Symbols + + \(backtraceMainThread()) + + + Current Thread Symbols: + + \(backtraceCurrentThread()) + + Swift Thread Symbols: + + \(symbols) + + EOF + """ + let manager = FileManager.default + let urlForDocument = manager.urls(for: .documentDirectory, in: .userDomainMask) + try! fullString.write(to: URL(string: (urlForDocument[0] as URL).absoluteString + "\(dateStr.replacingOccurrences(of: " ", with: "_").replacingOccurrences(of: "/", with: "-").replacingOccurrences(of: ":", with: "__")).ddf")!, atomically: true, encoding: .utf8) + UserDefaults.standard.set("\(dateStr).ddf", forKey: "NewSignalError") +} #else class AppDelegate: NSObject, WKApplicationDelegate { func applicationDidFinishLaunching() { + Mixpanel.initialize(token: "37d4aaecc64cae16353c2fe7dbb0513c") + // ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Wow you see a token there, I'm not forget to hide it because you are no able to + // do anything important by this token >_- + if (UserDefaults.standard.object(forKey: "IsAllowMixpanel") as? Bool) ?? true { + Mixpanel.mainInstance().track(event: "Open App") + if let uid = UserDefaults.standard.string(forKey: "DedeUserId") { + Mixpanel.mainInstance().registerSuperPropertiesOnce(["DedeUserId": uid]) + } + } + SDImageCodersManager.shared.addCoder(SDImageWebPCoder.shared) SDImageCodersManager.shared.addCoder(SDImageSVGCoder.shared) SDImageCodersManager.shared.addCoder(SDImagePDFCoder.shared) @@ -160,9 +587,11 @@ class AppDelegate: NSObject, WKApplicationDelegate { } #endif -final class Wrapper { - let view: AnyView - init(view: AnyView) { - self.view = view +public func updateBuvid() { + DarockKit.Network.shared.requestJSON("https://api.bilibili.com/x/frontend/finger/spi") { respJson, isSuccess in + if isSuccess { + globalBuvid3 = respJson["data"]["b_3"].string ?? globalBuvid3 + globalBuvid4 = respJson["data"]["b_4"].string ?? globalBuvid4 + } } } diff --git a/MeowBili/Others/AboutView.swift b/MeowBili/Others/AboutView.swift index ffedfc805..2b3d52938 100644 --- a/MeowBili/Others/AboutView.swift +++ b/MeowBili/Others/AboutView.swift @@ -72,8 +72,6 @@ struct AboutApp: View { Group { Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String) Build \(Bundle.main.infoDictionary?["CFBundleVersion"] as! String)") .font(.system(size: 18)) - Text("资源包版本 v\(DKDynamic().GetDylibVersion())") - .font(.system(size: 18)) Text("\(String(try! String(contentsOf: Bundle.main.url(forResource: "CurrentChannel", withExtension: "drkdatac")!).split(separator: "\n")[0])) 频道") .font(.system(size: 18)) Group { @@ -192,7 +190,6 @@ struct AboutApp: View { .font(.title3) Group { Text("v\(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String) Build \(Bundle.main.infoDictionary?["CFBundleVersion"] as! String)") - Text("资源包版本 v\(DKDynamic().GetDylibVersion())") Text("\(String(try! String(contentsOf: Bundle.main.url(forResource: "CurrentChannel", withExtension: "drkdatac")!).split(separator: "\n")[0])) 频道") if debug { Text(CodingTime.getCodingTime()) @@ -200,7 +197,7 @@ struct AboutApp: View { Text("\(CodingTime.getCodingTime().components(separatedBy: " ")[0] + " " + CodingTime.getCodingTime().components(separatedBy: " ")[1] + " " + CodingTime.getCodingTime().components(separatedBy: " ")[2])") } } - .font(.system(size: 13)) + .font(.caption) .monospaced() .foregroundStyle(.secondary) .onTapGesture(count: 9) { diff --git a/MeowBili/Others/CCodes/OCCodeExt.m b/MeowBili/Others/CCodes/OCCodeExt.m index ca4586185..43a686305 100644 --- a/MeowBili/Others/CCodes/OCCodeExt.m +++ b/MeowBili/Others/CCodes/OCCodeExt.m @@ -18,7 +18,6 @@ #import #import -#import #import "OCCodeExt.h" @implementation OCCodeExt: NSObject diff --git a/MeowBili/Others/SettingsView.swift b/MeowBili/Others/SettingsView.swift index 4760afd7a..3a8a478eb 100644 --- a/MeowBili/Others/SettingsView.swift +++ b/MeowBili/Others/SettingsView.swift @@ -20,8 +20,6 @@ import Charts import SwiftUI import SwiftDate import DarockKit -import Alamofire -import ZipArchive import AuthenticationServices #if os(watchOS) import WatchKit @@ -152,19 +150,6 @@ struct SettingsView: View { }) } Section { - NavigationLink(destination: { SoftwareUpdateView() }, label: { - HStack { - ZStack { - Color.gray - .frame(width: 26, height: 26) - .clipShape(RoundedRectangle(cornerRadius: 5)) - Image(systemName: "arrow.clockwise") - .font(.system(size: 16)) - .foregroundColor(.white) - } - Text("Settings.update") - } - }) NavigationLink(destination: { AboutView() }, label: { HStack { ZStack { @@ -868,38 +853,30 @@ struct PrivacySettingsView: View { } } +#if os(watchOS) struct SoftwareUpdateView: View { @State var shouldUpdate = false - @State var shouldUpdateLib = false @State var isLoading = true @State var isFailed = false @State var latestVer = "" @State var latestBuild = "" @State var releaseNote = "" - @State var latestLibVer = "" - @State var libReleaseNote = "" - @State var isDownloadingRes = false - @State var downloadProgress = 0.0 - @State var downloadedSize: Int64 = 0 - @State var totalSize: Int64 = 0 - @State var isCanInstall = { - let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] - let fileURL = documentsURL.appendingPathComponent("mainnew.dylib") - return FileManager.default.fileExists(atPath: fileURL.path()) - }() - @State var isFinishedInstall = false var body: some View { - List { - if !isLoading { - Section { - if shouldUpdateLib { + ScrollView { + VStack { + if !isLoading { + if shouldUpdate { HStack { + Spacer() + .frame(width: 10) Image("AppIconImage") .resizable() .frame(width: 40, height: 40) .cornerRadius(8) + Spacer() + .frame(width: 10) VStack { - Text("资源包 v\(latestLibVer)") + Text("v\(latestVer) Build \(latestBuild)") .font(.system(size: 14, weight: .medium)) HStack { Text("Darock-studio") @@ -909,161 +886,40 @@ struct SoftwareUpdateView: View { } } } - Group { - Divider() - Text(libReleaseNote) - } - .listRowBackground(Color.clear) - if !isCanInstall { - if !isDownloadingRes { - Button(action: { - isDownloadingRes = true - let destination: DownloadRequest.Destination = { _, _ in - let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] - let fileURL = documentsURL.appendingPathComponent("mainnew.zip") - return (fileURL, [.removePreviousFile, .createIntermediateDirectories]) - } -#if targetEnvironment(simulator) -#if os(watchOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/watchsimulator.zip" -#elseif os(iOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/iphonesimulator.zip" -#endif -#else -#if os(watchOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/watchos.zip" -#elseif os(iOS) - let link = "https://cd.darock.top:32767/meowbili/res/dylib/iphoneos.zip" -#endif -#endif - AF.download(link, to: destination) - .downloadProgress { p in - downloadProgress = p.fractionCompleted - downloadedSize = p.completedUnitCount - totalSize = p.totalUnitCount - } - .response { r in - if r.error == nil, let filePath = r.fileURL?.path { - debugPrint(filePath) - isCanInstall = true - } else { - debugPrint(r.error as Any) - } - } - }, label: { - Text("下载并安装") - }) - } else { - VStack { - ProgressView(value: downloadProgress) - HStack { - Spacer() - Text("\(String(format: "%.2f", downloadProgress * 100) + " %")") - Spacer() - } - HStack { - Spacer() - Text("\(String(format: "%.2f", Double(downloadedSize) / 1024 / 1024))MB / \(String(format: "%.2f", Double(totalSize) / 1024 / 1024))MB") - .font(.system(size: 16)) - .lineLimit(1) - .minimumScaleFactor(0.1) - Spacer() - } - } - .listRowBackground(Color.clear) - } - } else { - NavigationLink(destination: { - if !isFinishedInstall { - ZStack { - Color.black - .ignoresSafeArea() - VStack { - Image("AppIconImage") - .resizable() - .frame(width: 60, height: 60) - .clipShape(Circle()) - ProgressView() - .padding(3) - } - } - .navigationBarHidden(true) - .navigationBarBackButtonHidden() - .onAppear { - DispatchQueue(label: "com.darock.DarockBili.updateInstall", qos: .background).async { - let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] - let zipPath = documentsURL.appendingPathComponent("mainnew.zip").path() - let libPath = documentsURL.appendingPathComponent("main.dylib").path() - if FileManager.default.fileExists(atPath: libPath) { - try! FileManager.default.removeItem(atPath: libPath) - } - try! SSZipArchive.unzipFile(atPath: zipPath, toDestination: zipPath.split(separator: "/").dropLast().joined(separator: "/"), overwrite: true, password: nil) - try! FileManager.default.removeItem(atPath: zipPath) - isFinishedInstall = true - } - } - } else { - List { - Section { - Text("已完成更新") - Text("需要重启喵哩喵哩以应用") - } - Section { - Button(action: { - exit(0) - }, label: { - Text("退出") - }) - } - } + Divider() + Text(releaseNote) + if (Bundle.main.infoDictionary?["CFBundleIdentifier"] as! String) != "com.darock.DarockBili.watchkitapp" { + Button(action: { + let session = ASWebAuthenticationSession(url: URL(string: "https://cd.darock.top:32767/meowbili/install.html")!, callbackURLScheme: "mlhd") { _, _ in + return } + session.prefersEphemeralWebBrowserSession = true + session.start() }, label: { - Text("安装") + Text("Update.download-and-install") }) - } - } else if !isFailed { - Text("喵哩喵哩资源包已是最新版本") - } - } - Section { - if shouldUpdate { - VStack { - HStack { - Image("AppIconImage") - .resizable() - .frame(width: 40, height: 40) - .cornerRadius(8) - VStack { - Text("v\(latestVer) Build \(latestBuild)") - .font(.system(size: 14, weight: .medium)) - HStack { - Text("Darock-studio") - .font(.system(size: 13)) - .foregroundColor(.gray) - Spacer() - } - } - } - Divider() - Text(releaseNote) + } else { + Spacer() + .frame(height: 10) Text("Update.install-by-testflight") .bold() } } else if isFailed { Text("Update.error") } else { - Text("喵哩喵哩 App 已是最新版本") + Text("Update.latest") + } + } else { + HStack { + Text("Update.checking") + .lineLimit(1) + .multilineTextAlignment(.leading) + .frame(width: 130) + Spacer() + .frame(maxWidth: .infinity) + ProgressView() } } - } else { - HStack { - Text("Update.checking") - .lineLimit(1) - .multilineTextAlignment(.leading) - Spacer() - ProgressView() - } - .listRowBackground(Color.clear) } } .onAppear { @@ -1079,23 +935,6 @@ struct SoftwareUpdateView: View { DarockKit.Network.shared.requestString("https://api.darock.top/bili/newver/note") { respStr, isSuccess in if isSuccess { releaseNote = respStr.apiFixed() - } else { - isFailed = true - } - } - } else { - isFailed = true - } - } - DarockKit.Network.shared.requestString("https://api.darock.top/bili/libnewver") { respStr, isSuccess in - if isSuccess { - latestLibVer = respStr.apiFixed() - if DKDynamic().GetDylibVersion() != latestLibVer { - shouldUpdateLib = true - } - DarockKit.Network.shared.requestString("https://api.darock.top/bili/libnewver/note") { respStr, isSuccess in - if isSuccess { - libReleaseNote = respStr.apiFixed() isLoading = false } else { isFailed = true @@ -1109,7 +948,6 @@ struct SoftwareUpdateView: View { } } -#if os(watchOS) struct GestureSettingsView: View { @AppStorage("IsVideoPlayerGestureEnabled") var isVideoPlayerGestureEnabled = true var body: some View { diff --git a/README.md b/README.md index 4230b2501..30da20a70 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@ ![GitHub Repo stars](https://img.shields.io/github/stars/Darock-Studio/Darock-Bili?style=flat)  ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/Darock-Studio/Darock-Bili)  ![GitHub repo size](https://img.shields.io/github/repo-size/Darock-Studio/Darock-Bili)  +![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/Darock-Studio/Darock-Bili)  ![Uptime Robot status](https://img.shields.io/uptimerobot/status/m794152937-528042e5aee699af3224e7a6?label=Darock%20Main%20API%20Status)  ![GitHub tag](https://img.shields.io/github/v/tag/Darock-Studio/Darock-Bili?label=Latest%20Tag)  ![GitHub Release Date](https://img.shields.io/github/release-date-pre/Darock-Studio/Darock-Bili?label=Latest%20Release%20Date)  ![GitHub last commit (branch)](https://img.shields.io/github/last-commit/Darock-Studio/Darock-Bili/main?label=Main%20Branch%20Last%20Commit)  +![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/Darock-Studio/Darock-Bili/ios.yml) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8415/badge)](https://www.bestpractices.dev/projects/8415) -![counter](https://count.getloli.com/get/@MeowBiliGitHubReadme?theme=asoul) -

diff --git a/ci_scripts/ci_post_xcodebuild.sh b/ci_scripts/ci_post_xcodebuild.sh new file mode 100755 index 000000000..56fa85f45 --- /dev/null +++ b/ci_scripts/ci_post_xcodebuild.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [[ "$CI_WORKFLOW" == "Canary Deploy" ]]; then + TESTFLIGHT_DIR_PATH=../TestFlight + mkdir $TESTFLIGHT_DIR_PATH + echo -e "CI 自动生成信息,24小时内的main分支的提交:\n" > $TESTFLIGHT_DIR_PATH/WhatToTest.zh-Hans.txt + git fetch -a --deepen 40 && git log --since="24 hours ago" main --pretty=format:"%s" >> $TESTFLIGHT_DIR_PATH/WhatToTest.zh-Hans.txt +elif [[ "$CI_WORKFLOW" == "Public Release" ]]; then + TESTFLIGHT_DIR_PATH=../TestFlight + mkdir $TESTFLIGHT_DIR_PATH + echo -e "当前语义化版本:$CI_TAG\n\nRelease Notes: https://github.com/Darock-Studio/Darock-Bili/releases/tag/$CI_TAG\n\n若要使用watchOS App,请打开“在Apple Watch上显示App”开关" > $TESTFLIGHT_DIR_PATH/WhatToTest.zh-Hans.txt +fi diff --git a/ci_scripts/ci_pre_xcodebuild.sh b/ci_scripts/ci_pre_xcodebuild.sh index 82c659dc0..d165f6702 100755 --- a/ci_scripts/ci_pre_xcodebuild.sh +++ b/ci_scripts/ci_pre_xcodebuild.sh @@ -1,3 +1,16 @@ #!/bin/bash +if [ "$CI_WORKFLOW" = "Canary Deploy" ]; then + NEW_TEXT="Canary" +elif [ "$CI_WORKFLOW" = "Dev Deploy" ]; then + NEW_TEXT="Dev" +elif [ "$CI_WORKFLOW" = "Public Release" ]; then + NEW_TEXT="Stable" +else + # 默认值,如果 CI_WORKFLOW 不匹配上述条件 + NEW_TEXT="Unknown" +fi + +sed -i '' "s|.*|${NEW_TEXT}|" ../CurrentChannel.drkdatac + brew install swiftlint