From b30631281c9c594950e567354d02ccceb954a70c Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 13:54:06 +0100 Subject: [PATCH 01/20] Ignore xcode project files, and do not track them in git --- .gitignore | 3 + Kiwix.xcodeproj/project.pbxproj | 1526 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/swiftpm/Package.resolved | 41 - ...7C59A401-F1E8-48BA-8542-425634ADC0DB.plist | 22 - .../Info.plist | 40 - .../xcshareddata/xcschemes/Kiwix.xcscheme | 104 -- .../xcshareddata/xcschemes/WikiMed.xcscheme | 78 - 9 files changed, 3 insertions(+), 1826 deletions(-) delete mode 100644 Kiwix.xcodeproj/project.pbxproj delete mode 100644 Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme diff --git a/.gitignore b/.gitignore index d35428b6..6e617470 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,6 @@ fastlane/test_output .DS_Store xcuserdata Libraries + +# ignore xcode project files, they are now generated by XcodeGen +*.xcodeproj \ No newline at end of file diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj deleted file mode 100644 index d335a795..00000000 --- a/Kiwix.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1526 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 8E43964C2B02E4C6007F0BC4 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */; }; - 8E43964D2B02E4C6007F0BC4 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */; }; - 97008ABD2974A5BF0076E60C /* OPDSParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97008ABC2974A5BF0076E60C /* OPDSParserTests.swift */; }; - 9709C0982A8E4C5700E4564C /* Commands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9709C0972A8E4C5700E4564C /* Commands.swift */; }; - 97121EBE28849F0000371AEB /* ZimFileMissingIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97121EBC28849F0000371AEB /* ZimFileMissingIndicator.swift */; }; - 97176AD22A4FBD710093E3B0 /* BrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97176AD12A4FBD710093E3B0 /* BrowserViewModel.swift */; }; - 972096E72AE421C300B378B0 /* Attribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972096E62AE421C300B378B0 /* Attribute.swift */; }; - 9721BBB72841C16D005C910D /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97FB4B0A27B819A90055F86E /* Message.swift */; }; - 9721BBBB28427A93005C910D /* Bookmarks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9721BBB928427A93005C910D /* Bookmarks.swift */; }; - 9724FC3028D5F5BE001B7DD2 /* BookmarkContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9724FC2E28D5F5BE001B7DD2 /* BookmarkContextMenu.swift */; }; - 972727AA2A89122F00BCAF75 /* App_macOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727A92A89122F00BCAF75 /* App_macOS.swift */; }; - 972727AE2A897FAA00BCAF75 /* GridSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727AD2A897FAA00BCAF75 /* GridSection.swift */; }; - 972727B12A898B9700BCAF75 /* NavigationButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727B02A898B9700BCAF75 /* NavigationButtons.swift */; }; - 972727B72A898BF900BCAF75 /* OutlineButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727B62A898BF900BCAF75 /* OutlineButton.swift */; }; - 972727B92A898C1A00BCAF75 /* BookmarkButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727B82A898C1A00BCAF75 /* BookmarkButton.swift */; }; - 972727BB2A89930600BCAF75 /* ExternalLinkHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727BA2A89930600BCAF75 /* ExternalLinkHandler.swift */; }; - 972727BD2A8A518D00BCAF75 /* SafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727BC2A8A518D00BCAF75 /* SafariView.swift */; }; - 972727BF2A8A52DC00BCAF75 /* AlertHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727BE2A8A52DC00BCAF75 /* AlertHandler.swift */; }; - 972DE4B42814A4F6004FD9B9 /* DataModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 9735D0B82775363900C7D495 /* DataModel.xcdatamodeld */; }; - 972DE4B52814A502004FD9B9 /* Entities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972DE4722814A116004FD9B9 /* Entities.swift */; }; - 972DE4B62814A502004FD9B9 /* Enum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9735D0BF27777E3300C7D495 /* Enum.swift */; }; - 972DE4B92814A56A004FD9B9 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9735D0BB2775594700C7D495 /* Database.swift */; }; - 972DE4BA2814A590004FD9B9 /* ZimFileMetaData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5AC2456793600F6F6FF /* ZimFileMetaData.mm */; }; - 972DE4BB2814A5A4004FD9B9 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A2FC4277EAA2500BD4320 /* Errors.swift */; }; - 972DE4BC2814A5BE004FD9B9 /* OPDSParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5A32456793500F6F6FF /* OPDSParser.swift */; }; - 972DE4BD2814A5BE004FD9B9 /* OPDSParser.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5A52456793500F6F6FF /* OPDSParser.mm */; }; - 972DE4C42814AAAE004FD9B9 /* Library.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972DE4C12814A961004FD9B9 /* Library.swift */; }; - 973206532AA25D07003A1A8F /* ViewModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973206522AA25D07003A1A8F /* ViewModifiers.swift */; }; - 973206552AA28FF7003A1A8F /* TabsManagerButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973206542AA28FF7003A1A8F /* TabsManagerButton.swift */; }; - 97341C6E2852248500BC273E /* DownloadTaskCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97341C6C2852248500BC273E /* DownloadTaskCell.swift */; }; - 973A0DE4281D80E300B41E71 /* ZimFileDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DE2281D80E300B41E71 /* ZimFileDetail.swift */; }; - 973A0DE7281DC8F400B41E71 /* DownloadService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DE5281DC8F400B41E71 /* DownloadService.swift */; }; - 973A0DE8281DD7EB00B41E71 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A7E224567A5A00F6F6FF /* Log.swift */; }; - 973A0DEB281DDBB600B41E71 /* ZimFilesDownloads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DE9281DDBB600B41E71 /* ZimFilesDownloads.swift */; }; - 973A0DF1282E981200B41E71 /* ZimFileRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DEF282E981200B41E71 /* ZimFileRow.swift */; }; - 973A0DFD283100C300B41E71 /* ZimFilesOpened.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DFB283100C300B41E71 /* ZimFilesOpened.swift */; }; - 973A0E032831057200B41E71 /* URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B3BACD2736CE3500A23F49 /* URL.swift */; }; - 9744068728CE263800916BD4 /* DirectoryMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5CF2456796A00F6F6FF /* DirectoryMonitor.swift */; }; - 9744068A28CF65AE00916BD4 /* LibraryOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9744068828CF65AE00916BD4 /* LibraryOperations.swift */; }; - 9745AB5A28E9257400067FF6 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9745AB5828E9257400067FF6 /* Settings.swift */; }; - 97486D06284A36790096E4DD /* ArticleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D05284A36790096E4DD /* ArticleCell.swift */; }; - 97486D08284A42B90096E4DD /* SearchResultRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D07284A42B90096E4DD /* SearchResultRow.swift */; }; - 97486D0B284B96690096E4DD /* CellBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D09284B96690096E4DD /* CellBackground.swift */; }; - 97486D0E284C0EBC0096E4DD /* Welcome.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D0C284C0EBC0096E4DD /* Welcome.swift */; }; - 974C33A02853D4AC00DF6F4C /* About.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974C339E2853D4AC00DF6F4C /* About.swift */; }; - 974C33A9285589E900DF6F4C /* Patches.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974C33A7285589E900DF6F4C /* Patches.swift */; }; - 974E7EE62930201500BDF59C /* ZimFileService.mm in Sources */ = {isa = PBXBuildFile; fileRef = 974E7EE32930201500BDF59C /* ZimFileService.mm */; }; - 974E7EE92930201500BDF59C /* ZimFileService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974E7EE52930201500BDF59C /* ZimFileService.swift */; }; - 975088B328763B6900273181 /* SheetContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975088B228763B6900273181 /* SheetContent.swift */; }; - 975088BB287BBDFE00273181 /* LanguageSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975088B9287BBDFE00273181 /* LanguageSelector.swift */; }; - 975088BE287DA10800273181 /* LibraryLastRefreshTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975088BC287DA10800273181 /* LibraryLastRefreshTime.swift */; }; - 975346C42AC30CFD000DECB6 /* OrderedCollections in Frameworks */ = {isa = PBXBuildFile; productRef = 975346C32AC30CFD000DECB6 /* OrderedCollections */; }; - 9753D949285B55F100A626CC /* DefaultKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753D947285B55F100A626CC /* DefaultKeys.swift */; }; - 9753D94B285B56C900A626CC /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = 9753D94A285B56C900A626CC /* Defaults */; }; - 97659CAC28DF817D002E6CE4 /* SearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976A65B22659489F009A97C6 /* SearchResult.swift */; }; - 97659CAD28DF817D002E6CE4 /* SearchResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 97B3998C2467561900BC6F5B /* SearchResult.m */; }; - 97677B572A8FA80000F523AB /* FileImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97677B562A8FA80000F523AB /* FileImport.swift */; }; - 9767E7862A72A21300C5082D /* App_iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767E7852A72A21300C5082D /* App_iOS.swift */; }; - 9767E78C2A75420400C5082D /* TabLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767E78B2A75420400C5082D /* TabLabel.swift */; }; - 9767E7902A756CEE00C5082D /* NavigationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767E78F2A756CEE00C5082D /* NavigationViewModel.swift */; }; - 976BAEBA284903EA0049404F /* Fuzi in Frameworks */ = {isa = PBXBuildFile; productRef = 976BAEB9284903EA0049404F /* Fuzi */; }; - 976BAEBC2849056B0049404F /* SearchOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 97B3998924673FE000BC6F5B /* SearchOperation.mm */; }; - 976BAEBD2849056B0049404F /* SearchOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B3998F2467626A00BC6F5B /* SearchOperation.swift */; }; - 976BAEBE284905760049404F /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C13787284572AC00386C04 /* SearchViewModel.swift */; }; - 976D90DB281584BF00CC7D29 /* FlavorTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A2FCD277FB03F00BD4320 /* FlavorTag.swift */; }; - 976D90DC281586B400CC7D29 /* ZimFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A2FD72780024600BD4320 /* ZimFileCell.swift */; }; - 976D90E428159BFA00CC7D29 /* Favicon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B0737527825E3D007C7DF3 /* Favicon.swift */; }; - 976D90E92815D63A00CC7D29 /* ZimFilesNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976D90E72815D63A00CC7D29 /* ZimFilesNew.swift */; }; - 976F5EC62A97909100938490 /* BrowserTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976F5EC52A97909100938490 /* BrowserTab.swift */; }; - 977DD4462AA570450001D6CC /* ArticleShortcutButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD4452AA570450001D6CC /* ArticleShortcutButtons.swift */; }; - 977DD4492AA617680001D6CC /* SplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD4482AA617680001D6CC /* SplitViewController.swift */; }; - 977DD44B2AA617A40001D6CC /* SidebarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD44A2AA617A40001D6CC /* SidebarViewController.swift */; }; - 977DD44D2AA617DA0001D6CC /* CompactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD44C2AA617DA0001D6CC /* CompactViewController.swift */; }; - 97909270286BF0BB002B7AA5 /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9790926E286BF0BB002B7AA5 /* Formatter.swift */; }; - 9790CA5A28A05EBB00D39FC6 /* ZimFilesCategories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9790CA5828A05EBB00D39FC6 /* ZimFilesCategories.swift */; }; - 979D3A7C284159BF00E396B8 /* injection.js in Resources */ = {isa = PBXBuildFile; fileRef = 9735B88B279D9A74005F0D1A /* injection.js */; }; - 97B44897210FBC2C0004B056 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B44896210FBC2C0004B056 /* AppDelegate.swift */; }; - 97B44899210FBC2C0004B056 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B44898210FBC2C0004B056 /* ViewController.swift */; }; - 97B4489C210FBC2C0004B056 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97B4489A210FBC2C0004B056 /* Main.storyboard */; }; - 97B4489E210FBC2E0004B056 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97B4489D210FBC2E0004B056 /* Assets.xcassets */; }; - 97B448A1210FBC2E0004B056 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97B4489F210FBC2E0004B056 /* LaunchScreen.storyboard */; }; - 97BD6C9D2886E06B004A8532 /* HTMLParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97BD6C9B2886E06B004A8532 /* HTMLParser.swift */; }; - 97DA90D82975B0C100738365 /* LibraryRefreshViewModelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DA90D72975B0C100738365 /* LibraryRefreshViewModelTest.swift */; }; - 97DE2B9C2839D39100C63D9B /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97255D8B273608C3002B995B /* WebView.swift */; }; - 97DE2B9F2839D7A200C63D9B /* WebKitHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A73A2456796B00F6F6FF /* WebKitHandler.swift */; }; - 97DE2BA02839D7AA00C63D9B /* FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97FD2F5E251EA07B0034927C /* FeatureFlags.swift */; }; - 97DE2BA3283A8E5C00C63D9B /* LibraryViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DE2BA1283A8E5C00C63D9B /* LibraryViewModel.swift */; }; - 97DE2BA6283A944100C63D9B /* GridCommon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DE2BA4283A944100C63D9B /* GridCommon.swift */; }; - 97DE2BAD283B133700C63D9B /* wikipedia_dark.css in Resources */ = {isa = PBXBuildFile; fileRef = 970885D0271339A300C5795C /* wikipedia_dark.css */; }; - 97E88F4D2AE407350037F0E5 /* CoreKiwix.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97E88F4C2AE407320037F0E5 /* CoreKiwix.xcframework */; settings = {ATTRIBUTES = (Required, ); }; }; - 97F3333028AFC1A2007FF53C /* SearchResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97F3332E28AFC1A2007FF53C /* SearchResults.swift */; }; - 97FB4ECE28B4E221003FB524 /* SwiftUIBackports in Frameworks */ = {isa = PBXBuildFile; productRef = 97FB4ECD28B4E221003FB524 /* SwiftUIBackports */; }; - 980179512B0DF42100E8E1E2 /* Brand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980179502B0DF42100E8E1E2 /* Brand.swift */; }; - 980179542B0E402C00E8E1E2 /* kiwix.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */; }; - 983A3F562B129F6B000E7A51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 983A3F552B129F6B000E7A51 /* Assets.xcassets */; }; - 983D22672B16ABB6005EBAF1 /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 983D22662B16ABB6005EBAF1 /* LoadingView.swift */; }; - 983ED7192B08AFE700409078 /* Kiwix-Bridging-Header.h in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5D02456796A00F6F6FF /* Kiwix-Bridging-Header.h */; platformFilter = ios; }; - 988208062B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207E92B2CF57A00D6B1AE /* Localizable.strings */; }; - 988208072B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207EC2B2CF57A00D6B1AE /* Localizable.strings */; }; - 988208082B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207EF2B2CF57A00D6B1AE /* Localizable.strings */; }; - 988208092B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207F22B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080A2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207F52B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080B2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207F82B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080D2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207FE2B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080E2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988208012B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080F2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988208042B2CF57A00D6B1AE /* Localizable.strings */; }; - 98B5D3252B2F36680047CC13 /* DefaultLanguages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98B5D3242B2F36680047CC13 /* DefaultLanguages.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 97008ABE2974A5BF0076E60C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 97A2AB801C1B80FF00052E74 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 972DE4A52814A3D8004FD9B9; - remoteInfo = Kiwix; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 97B448AB2110A5480004B056 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; - 97008AB42974A5A70076E60C /* WikiMed.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WikiMed.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97008ABA2974A5BF0076E60C /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 97008ABC2974A5BF0076E60C /* OPDSParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OPDSParserTests.swift; sourceTree = ""; }; - 9707541A23C2D3AB0076B74E /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; - 970885D0271339A300C5795C /* wikipedia_dark.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = wikipedia_dark.css; sourceTree = ""; }; - 9709C0972A8E4C5700E4564C /* Commands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Commands.swift; sourceTree = ""; }; - 97121EBC28849F0000371AEB /* ZimFileMissingIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileMissingIndicator.swift; sourceTree = ""; }; - 9713F7782AE416E5007DD9EC /* CoreKiwix.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = CoreKiwix.modulemap; sourceTree = ""; }; - 97176AD12A4FBD710093E3B0 /* BrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserViewModel.swift; sourceTree = ""; }; - 972096E62AE421C300B378B0 /* Attribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Attribute.swift; sourceTree = ""; }; - 9721BBB928427A93005C910D /* Bookmarks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bookmarks.swift; sourceTree = ""; }; - 9724FC2E28D5F5BE001B7DD2 /* BookmarkContextMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkContextMenu.swift; sourceTree = ""; }; - 97255D8B273608C3002B995B /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; }; - 972727A92A89122F00BCAF75 /* App_macOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App_macOS.swift; sourceTree = ""; }; - 972727AD2A897FAA00BCAF75 /* GridSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridSection.swift; sourceTree = ""; }; - 972727B02A898B9700BCAF75 /* NavigationButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationButtons.swift; sourceTree = ""; }; - 972727B62A898BF900BCAF75 /* OutlineButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutlineButton.swift; sourceTree = ""; }; - 972727B82A898C1A00BCAF75 /* BookmarkButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkButton.swift; sourceTree = ""; }; - 972727BA2A89930600BCAF75 /* ExternalLinkHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalLinkHandler.swift; sourceTree = ""; }; - 972727BC2A8A518D00BCAF75 /* SafariView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariView.swift; sourceTree = ""; }; - 972727BE2A8A52DC00BCAF75 /* AlertHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertHandler.swift; sourceTree = ""; }; - 972DE4722814A116004FD9B9 /* Entities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Entities.swift; sourceTree = ""; }; - 972DE4A62814A3D8004FD9B9 /* Kiwix.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Kiwix.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 972DE4C12814A961004FD9B9 /* Library.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Library.swift; sourceTree = ""; }; - 973206522AA25D07003A1A8F /* ViewModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModifiers.swift; sourceTree = ""; }; - 973206542AA28FF7003A1A8F /* TabsManagerButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabsManagerButton.swift; sourceTree = ""; }; - 97341C6C2852248500BC273E /* DownloadTaskCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadTaskCell.swift; sourceTree = ""; }; - 9735B88B279D9A74005F0D1A /* injection.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = injection.js; sourceTree = ""; }; - 9735D0B92775363900C7D495 /* DataModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DataModel.xcdatamodel; sourceTree = ""; }; - 9735D0BB2775594700C7D495 /* Database.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = ""; }; - 9735D0BF27777E3300C7D495 /* Enum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Enum.swift; sourceTree = ""; }; - 973A0DE2281D80E300B41E71 /* ZimFileDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileDetail.swift; sourceTree = ""; }; - 973A0DE5281DC8F400B41E71 /* DownloadService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadService.swift; sourceTree = ""; }; - 973A0DE9281DDBB600B41E71 /* ZimFilesDownloads.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesDownloads.swift; sourceTree = ""; }; - 973A0DEF282E981200B41E71 /* ZimFileRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileRow.swift; sourceTree = ""; }; - 973A0DFB283100C300B41E71 /* ZimFilesOpened.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesOpened.swift; sourceTree = ""; }; - 973A2FC4277EAA2500BD4320 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - 973A2FCD277FB03F00BD4320 /* FlavorTag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlavorTag.swift; sourceTree = ""; }; - 973A2FD72780024600BD4320 /* ZimFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileCell.swift; sourceTree = ""; }; - 9744068828CF65AE00916BD4 /* LibraryOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryOperations.swift; sourceTree = ""; }; - 9745AB5828E9257400067FF6 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; - 97486D05284A36790096E4DD /* ArticleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleCell.swift; sourceTree = ""; }; - 97486D07284A42B90096E4DD /* SearchResultRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultRow.swift; sourceTree = ""; }; - 97486D09284B96690096E4DD /* CellBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellBackground.swift; sourceTree = ""; }; - 97486D0C284C0EBC0096E4DD /* Welcome.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Welcome.swift; sourceTree = ""; }; - 974C339E2853D4AC00DF6F4C /* About.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = About.swift; sourceTree = ""; }; - 974C33A7285589E900DF6F4C /* Patches.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Patches.swift; sourceTree = ""; }; - 974E7EE32930201500BDF59C /* ZimFileService.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ZimFileService.mm; sourceTree = ""; }; - 974E7EE42930201500BDF59C /* ZimFileService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZimFileService.h; sourceTree = ""; }; - 974E7EE52930201500BDF59C /* ZimFileService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZimFileService.swift; sourceTree = ""; }; - 975088B228763B6900273181 /* SheetContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SheetContent.swift; sourceTree = ""; }; - 975088B9287BBDFE00273181 /* LanguageSelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageSelector.swift; sourceTree = ""; }; - 975088BC287DA10800273181 /* LibraryLastRefreshTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryLastRefreshTime.swift; sourceTree = ""; }; - 9753D947285B55F100A626CC /* DefaultKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultKeys.swift; sourceTree = ""; }; - 975FDB061F608F4100A10E8C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - 97677B562A8FA80000F523AB /* FileImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileImport.swift; sourceTree = ""; }; - 9767E7852A72A21300C5082D /* App_iOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App_iOS.swift; sourceTree = ""; }; - 9767E78B2A75420400C5082D /* TabLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabLabel.swift; sourceTree = ""; }; - 9767E78F2A756CEE00C5082D /* NavigationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationViewModel.swift; sourceTree = ""; }; - 976A65B22659489F009A97C6 /* SearchResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResult.swift; sourceTree = ""; }; - 976D90E72815D63A00CC7D29 /* ZimFilesNew.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesNew.swift; sourceTree = ""; }; - 976F5EC52A97909100938490 /* BrowserTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserTab.swift; sourceTree = ""; }; - 9779A5A32456793500F6F6FF /* OPDSParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OPDSParser.swift; sourceTree = ""; }; - 9779A5A42456793500F6F6FF /* OPDSParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPDSParser.h; sourceTree = ""; }; - 9779A5A52456793500F6F6FF /* OPDSParser.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OPDSParser.mm; sourceTree = ""; }; - 9779A5AC2456793600F6F6FF /* ZimFileMetaData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ZimFileMetaData.mm; sourceTree = ""; }; - 9779A5AD2456793600F6F6FF /* ZimFileMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZimFileMetaData.h; sourceTree = ""; }; - 9779A5CF2456796A00F6F6FF /* DirectoryMonitor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DirectoryMonitor.swift; sourceTree = ""; }; - 9779A5D02456796A00F6F6FF /* Kiwix-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Kiwix-Bridging-Header.h"; sourceTree = ""; }; - 9779A73A2456796B00F6F6FF /* WebKitHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebKitHandler.swift; sourceTree = ""; }; - 9779A7E224567A5A00F6F6FF /* Log.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; - 977DD4452AA570450001D6CC /* ArticleShortcutButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleShortcutButtons.swift; sourceTree = ""; }; - 977DD4482AA617680001D6CC /* SplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitViewController.swift; sourceTree = ""; }; - 977DD44A2AA617A40001D6CC /* SidebarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarViewController.swift; sourceTree = ""; }; - 977DD44C2AA617DA0001D6CC /* CompactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactViewController.swift; sourceTree = ""; }; - 9790926E286BF0BB002B7AA5 /* Formatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Formatter.swift; sourceTree = ""; }; - 9790CA5828A05EBB00D39FC6 /* ZimFilesCategories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesCategories.swift; sourceTree = ""; }; - 97B0737527825E3D007C7DF3 /* Favicon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Favicon.swift; sourceTree = ""; }; - 97B3998824673FE000BC6F5B /* SearchOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchOperation.h; sourceTree = ""; }; - 97B3998924673FE000BC6F5B /* SearchOperation.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SearchOperation.mm; sourceTree = ""; }; - 97B3998B2467561900BC6F5B /* SearchResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchResult.h; sourceTree = ""; }; - 97B3998C2467561900BC6F5B /* SearchResult.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SearchResult.m; sourceTree = ""; }; - 97B3998F2467626A00BC6F5B /* SearchOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOperation.swift; sourceTree = ""; }; - 97B3BACD2736CE3500A23F49 /* URL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URL.swift; sourceTree = ""; }; - 97B44896210FBC2C0004B056 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 97B44898210FBC2C0004B056 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 97B4489B210FBC2C0004B056 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97B4489D210FBC2E0004B056 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97B448A0210FBC2E0004B056 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97B448A2210FBC2E0004B056 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 97B707042974637200562392 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 97BD6C9B2886E06B004A8532 /* HTMLParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTMLParser.swift; sourceTree = ""; }; - 97C13787284572AC00386C04 /* SearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = ""; }; - 97C575F3202CB0E800E37502 /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; }; - 97DA90D72975B0C100738365 /* LibraryRefreshViewModelTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryRefreshViewModelTest.swift; sourceTree = ""; }; - 97DE2BA1283A8E5C00C63D9B /* LibraryViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryViewModel.swift; sourceTree = ""; }; - 97DE2BA4283A944100C63D9B /* GridCommon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridCommon.swift; sourceTree = ""; }; - 97E88F4C2AE407320037F0E5 /* CoreKiwix.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = CoreKiwix.xcframework; sourceTree = SOURCE_ROOT; }; - 97E94B22271EF250005B0295 /* Kiwix.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Kiwix.entitlements; sourceTree = ""; }; - 97F3332E28AFC1A2007FF53C /* SearchResults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResults.swift; sourceTree = ""; }; - 97F425C127151A0D00D0F738 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; - 97F6CC5020BD960F005CDBD2 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; - 97FB4B0A27B819A90055F86E /* Message.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - 97FD2F5E251EA07B0034927C /* FeatureFlags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlags.swift; sourceTree = ""; }; - 980179502B0DF42100E8E1E2 /* Brand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Brand.swift; sourceTree = ""; }; - 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = kiwix.xcconfig; sourceTree = ""; }; - 983A3F552B129F6B000E7A51 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 983D22662B16ABB6005EBAF1 /* LoadingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = ""; }; - 988207EA2B2CF57A00D6B1AE /* skr-arab */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "skr-arab"; path = Localizable.strings; sourceTree = ""; }; - 988207ED2B2CF57A00D6B1AE /* zh-hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-hant"; path = Localizable.strings; sourceTree = ""; }; - 988207F02B2CF57A00D6B1AE /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = Localizable.strings; sourceTree = ""; }; - 988207F32B2CF57A00D6B1AE /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Localizable.strings; sourceTree = ""; }; - 988207F62B2CF57A00D6B1AE /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = Localizable.strings; sourceTree = ""; }; - 988207F92B2CF57A00D6B1AE /* lb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lb; path = Localizable.strings; sourceTree = ""; }; - 988207FF2B2CF57A00D6B1AE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Localizable.strings; sourceTree = ""; }; - 988208022B2CF57A00D6B1AE /* mk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = mk; path = Localizable.strings; sourceTree = ""; }; - 988208052B2CF57A00D6B1AE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Localizable.strings; sourceTree = ""; }; - 98B5D3242B2F36680047CC13 /* DefaultLanguages.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultLanguages.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97008AB72974A5BF0076E60C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 972DE4A32814A3D8004FD9B9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 97E88F4D2AE407350037F0E5 /* CoreKiwix.xcframework in Frameworks */, - 975346C42AC30CFD000DECB6 /* OrderedCollections in Frameworks */, - 97FB4ECE28B4E221003FB524 /* SwiftUIBackports in Frameworks */, - 9753D94B285B56C900A626CC /* Defaults in Frameworks */, - 976BAEBA284903EA0049404F /* Fuzi in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97B44891210FBC2C0004B056 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3B93EAF9B5C5AA23046BDEAC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 97E88F4C2AE407320037F0E5 /* CoreKiwix.xcframework */, - 9707541A23C2D3AB0076B74E /* SwiftUI.framework */, - 97F6CC5020BD960F005CDBD2 /* MapKit.framework */, - 975FDB061F608F4100A10E8C /* WebKit.framework */, - 97C575F3202CB0E800E37502 /* NotificationCenter.framework */, - 97F425C127151A0D00D0F738 /* QuickLook.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 97008ABB2974A5BF0076E60C /* Tests */ = { - isa = PBXGroup; - children = ( - 97008ABC2974A5BF0076E60C /* OPDSParserTests.swift */, - 97DA90D72975B0C100738365 /* LibraryRefreshViewModelTest.swift */, - ); - path = Tests; - sourceTree = ""; - }; - 9706555A2473682C00A51319 /* Utilities */ = { - isa = PBXGroup; - children = ( - 97FD2F5E251EA07B0034927C /* FeatureFlags.swift */, - 9779A7E224567A5A00F6F6FF /* Log.swift */, - 97B3BACD2736CE3500A23F49 /* URL.swift */, - 9779A73A2456796B00F6F6FF /* WebKitHandler.swift */, - 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */, - ); - path = Utilities; - sourceTree = ""; - }; - 970EC39E23BCE7F5008DCA27 /* Model */ = { - isa = PBXGroup; - children = ( - 9779A5AB2456793600F6F6FF /* Entities */, - 972DE4BF2814A5E3004FD9B9 /* OPDSParser */, - 9706555A2473682C00A51319 /* Utilities */, - 974E7EE22930201500BDF59C /* ZimFileService */, - 9735D0B82775363900C7D495 /* DataModel.xcdatamodeld */, - 973A0DE5281DC8F400B41E71 /* DownloadService.swift */, - 980179502B0DF42100E8E1E2 /* Brand.swift */, - ); - path = Model; - sourceTree = ""; - }; - 972727A82A883FB600BCAF75 /* ViewModel */ = { - isa = PBXGroup; - children = ( - 9767E78F2A756CEE00C5082D /* NavigationViewModel.swift */, - 97176AD12A4FBD710093E3B0 /* BrowserViewModel.swift */, - 97C13787284572AC00386C04 /* SearchViewModel.swift */, - 97DE2BA1283A8E5C00C63D9B /* LibraryViewModel.swift */, - ); - path = ViewModel; - sourceTree = ""; - }; - 972727AF2A898B7400BCAF75 /* Buttons */ = { - isa = PBXGroup; - children = ( - 972727B02A898B9700BCAF75 /* NavigationButtons.swift */, - 972727B62A898BF900BCAF75 /* OutlineButton.swift */, - 972727B82A898C1A00BCAF75 /* BookmarkButton.swift */, - 977DD4452AA570450001D6CC /* ArticleShortcutButtons.swift */, - 973206542AA28FF7003A1A8F /* TabsManagerButton.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 972DE4BF2814A5E3004FD9B9 /* OPDSParser */ = { - isa = PBXGroup; - children = ( - 9779A5A42456793500F6F6FF /* OPDSParser.h */, - 9779A5A52456793500F6F6FF /* OPDSParser.mm */, - 9779A5A32456793500F6F6FF /* OPDSParser.swift */, - ); - path = OPDSParser; - sourceTree = ""; - }; - 9735D0B72775362000C7D495 /* Model */ = { - isa = PBXGroup; - children = ( - 97B3998724673FCA00BC6F5B /* SearchOperation */, - 9735D0BB2775594700C7D495 /* Database.swift */, - 9753D947285B55F100A626CC /* DefaultKeys.swift */, - 9779A5CF2456796A00F6F6FF /* DirectoryMonitor.swift */, - 9735D0BF27777E3300C7D495 /* Enum.swift */, - 9790926E286BF0BB002B7AA5 /* Formatter.swift */, - 97BD6C9B2886E06B004A8532 /* HTMLParser.swift */, - 9744068828CF65AE00916BD4 /* LibraryOperations.swift */, - ); - path = Model; - sourceTree = ""; - }; - 973A0DF2282FED6F00B41E71 /* ViewModifiers */ = { - isa = PBXGroup; - children = ( - 972727BE2A8A52DC00BCAF75 /* AlertHandler.swift */, - 9724FC2E28D5F5BE001B7DD2 /* BookmarkContextMenu.swift */, - 97486D09284B96690096E4DD /* CellBackground.swift */, - 972727BA2A89930600BCAF75 /* ExternalLinkHandler.swift */, - 97677B562A8FA80000F523AB /* FileImport.swift */, - 97DE2BA4283A944100C63D9B /* GridCommon.swift */, - 973206522AA25D07003A1A8F /* ViewModifiers.swift */, - ); - path = ViewModifiers; - sourceTree = ""; - }; - 9745AB5628E9235100067FF6 /* Settings */ = { - isa = PBXGroup; - children = ( - 9745AB5828E9257400067FF6 /* Settings.swift */, - 975088B9287BBDFE00273181 /* LanguageSelector.swift */, - 974C339E2853D4AC00DF6F4C /* About.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 974E7EE22930201500BDF59C /* ZimFileService */ = { - isa = PBXGroup; - children = ( - 974E7EE42930201500BDF59C /* ZimFileService.h */, - 974E7EE32930201500BDF59C /* ZimFileService.mm */, - 974E7EE52930201500BDF59C /* ZimFileService.swift */, - ); - path = ZimFileService; - sourceTree = ""; - }; - 975088BF287EEE2900273181 /* BuildingBlocks */ = { - isa = PBXGroup; - children = ( - 983D22662B16ABB6005EBAF1 /* LoadingView.swift */, - 97486D05284A36790096E4DD /* ArticleCell.swift */, - 972096E62AE421C300B378B0 /* Attribute.swift */, - 97341C6C2852248500BC273E /* DownloadTaskCell.swift */, - 97B0737527825E3D007C7DF3 /* Favicon.swift */, - 973A2FCD277FB03F00BD4320 /* FlavorTag.swift */, - 972727AD2A897FAA00BCAF75 /* GridSection.swift */, - 975088BC287DA10800273181 /* LibraryLastRefreshTime.swift */, - 97FB4B0A27B819A90055F86E /* Message.swift */, - 972727BC2A8A518D00BCAF75 /* SafariView.swift */, - 97486D07284A42B90096E4DD /* SearchResultRow.swift */, - 975088B228763B6900273181 /* SheetContent.swift */, - 9767E78B2A75420400C5082D /* TabLabel.swift */, - 97255D8B273608C3002B995B /* WebView.swift */, - 973A2FD72780024600BD4320 /* ZimFileCell.swift */, - 97121EBC28849F0000371AEB /* ZimFileMissingIndicator.swift */, - 973A0DEF282E981200B41E71 /* ZimFileRow.swift */, - ); - path = BuildingBlocks; - sourceTree = ""; - }; - 9779A5AB2456793600F6F6FF /* Entities */ = { - isa = PBXGroup; - children = ( - 97BF1F8E27CE5EEF00A94E06 /* SearchResult */, - 97B7070629748CAA00562392 /* ZimFileMetaData */, - 973A2FC4277EAA2500BD4320 /* Errors.swift */, - 972DE4722814A116004FD9B9 /* Entities.swift */, - ); - path = Entities; - sourceTree = ""; - }; - 97A092782A54D088009C039E /* Library */ = { - isa = PBXGroup; - children = ( - 972DE4C12814A961004FD9B9 /* Library.swift */, - 973A0DFB283100C300B41E71 /* ZimFilesOpened.swift */, - 9790CA5828A05EBB00D39FC6 /* ZimFilesCategories.swift */, - 973A0DE9281DDBB600B41E71 /* ZimFilesDownloads.swift */, - 976D90E72815D63A00CC7D29 /* ZimFilesNew.swift */, - 973A0DE2281D80E300B41E71 /* ZimFileDetail.swift */, - ); - path = Library; - sourceTree = ""; - }; - 97A2AB7F1C1B80FF00052E74 = { - isa = PBXGroup; - children = ( - 970EC39E23BCE7F5008DCA27 /* Model */, - 972727A82A883FB600BCAF75 /* ViewModel */, - 97E4E69C28B8FCC70012227D /* Views */, - 97B172F22A48F39200039108 /* App */, - 97E94B18271EF24D005B0295 /* SwiftUI */, - 97E94B26271EF359005B0295 /* Support */, - 97B44895210FBC2C0004B056 /* WikiMed */, - 97008ABB2974A5BF0076E60C /* Tests */, - 3B93EAF9B5C5AA23046BDEAC /* Frameworks */, - 972DE4A62814A3D8004FD9B9 /* Kiwix.app */, - 97008AB42974A5A70076E60C /* WikiMed.app */, - 97008ABA2974A5BF0076E60C /* Tests.xctest */, - ); - sourceTree = ""; - wrapsLines = 0; - }; - 97B172F22A48F39200039108 /* App */ = { - isa = PBXGroup; - children = ( - 972727A92A89122F00BCAF75 /* App_macOS.swift */, - 9767E7852A72A21300C5082D /* App_iOS.swift */, - 977DD4482AA617680001D6CC /* SplitViewController.swift */, - 977DD44A2AA617A40001D6CC /* SidebarViewController.swift */, - 977DD44C2AA617DA0001D6CC /* CompactViewController.swift */, - ); - path = App; - sourceTree = ""; - }; - 97B3998724673FCA00BC6F5B /* SearchOperation */ = { - isa = PBXGroup; - children = ( - 97B3998824673FE000BC6F5B /* SearchOperation.h */, - 97B3998924673FE000BC6F5B /* SearchOperation.mm */, - 97B3998F2467626A00BC6F5B /* SearchOperation.swift */, - ); - path = SearchOperation; - sourceTree = ""; - }; - 97B44895210FBC2C0004B056 /* WikiMed */ = { - isa = PBXGroup; - children = ( - 97B44896210FBC2C0004B056 /* AppDelegate.swift */, - 97B44898210FBC2C0004B056 /* ViewController.swift */, - 97B4489A210FBC2C0004B056 /* Main.storyboard */, - 97B4489D210FBC2E0004B056 /* Assets.xcassets */, - 97B4489F210FBC2E0004B056 /* LaunchScreen.storyboard */, - 97B448A2210FBC2E0004B056 /* Info.plist */, - ); - path = WikiMed; - sourceTree = ""; - }; - 97B7070629748CAA00562392 /* ZimFileMetaData */ = { - isa = PBXGroup; - children = ( - 9779A5AD2456793600F6F6FF /* ZimFileMetaData.h */, - 9779A5AC2456793600F6F6FF /* ZimFileMetaData.mm */, - ); - path = ZimFileMetaData; - sourceTree = ""; - }; - 97BF1F8E27CE5EEF00A94E06 /* SearchResult */ = { - isa = PBXGroup; - children = ( - 97B3998B2467561900BC6F5B /* SearchResult.h */, - 97B3998C2467561900BC6F5B /* SearchResult.m */, - 976A65B22659489F009A97C6 /* SearchResult.swift */, - ); - name = SearchResult; - sourceTree = ""; - }; - 97E4E69C28B8FCC70012227D /* Views */ = { - isa = PBXGroup; - children = ( - 972727AF2A898B7400BCAF75 /* Buttons */, - 973A0DF2282FED6F00B41E71 /* ViewModifiers */, - 975088BF287EEE2900273181 /* BuildingBlocks */, - 97A092782A54D088009C039E /* Library */, - 9745AB5628E9235100067FF6 /* Settings */, - 9721BBB928427A93005C910D /* Bookmarks.swift */, - 976F5EC52A97909100938490 /* BrowserTab.swift */, - 97F3332E28AFC1A2007FF53C /* SearchResults.swift */, - 97486D0C284C0EBC0096E4DD /* Welcome.swift */, - 9709C0972A8E4C5700E4564C /* Commands.swift */, - ); - path = Views; - sourceTree = ""; - }; - 97E94B18271EF24D005B0295 /* SwiftUI */ = { - isa = PBXGroup; - children = ( - 9735D0B72775362000C7D495 /* Model */, - 974C33A7285589E900DF6F4C /* Patches.swift */, - ); - path = SwiftUI; - sourceTree = ""; - }; - 97E94B26271EF359005B0295 /* Support */ = { - isa = PBXGroup; - children = ( - 98B5D3242B2F36680047CC13 /* DefaultLanguages.swift */, - 988207FD2B2CF57A00D6B1AE /* de.lproj */, - 988208032B2CF57A00D6B1AE /* en.lproj */, - 988207EE2B2CF57A00D6B1AE /* he.lproj */, - 988207F42B2CF57A00D6B1AE /* hi.lproj */, - 988207F12B2CF57A00D6B1AE /* it.lproj */, - 988207F72B2CF57A00D6B1AE /* lb.lproj */, - 988208002B2CF57A00D6B1AE /* mk.lproj */, - 988207E82B2CF57A00D6B1AE /* skr-arab.lproj */, - 988207EB2B2CF57A00D6B1AE /* zh-hant.lproj */, - 983A3F552B129F6B000E7A51 /* Assets.xcassets */, - 9713F7782AE416E5007DD9EC /* CoreKiwix.modulemap */, - 97B707042974637200562392 /* Info.plist */, - 9735B88B279D9A74005F0D1A /* injection.js */, - 97E94B22271EF250005B0295 /* Kiwix.entitlements */, - 9779A5D02456796A00F6F6FF /* Kiwix-Bridging-Header.h */, - 970885D0271339A300C5795C /* wikipedia_dark.css */, - 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */, - ); - path = Support; - sourceTree = ""; - }; - 988207E82B2CF57A00D6B1AE /* skr-arab.lproj */ = { - isa = PBXGroup; - children = ( - 988207E92B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = "skr-arab.lproj"; - sourceTree = ""; - }; - 988207EB2B2CF57A00D6B1AE /* zh-hant.lproj */ = { - isa = PBXGroup; - children = ( - 988207EC2B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = "zh-hant.lproj"; - sourceTree = ""; - }; - 988207EE2B2CF57A00D6B1AE /* he.lproj */ = { - isa = PBXGroup; - children = ( - 988207EF2B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = he.lproj; - sourceTree = ""; - }; - 988207F12B2CF57A00D6B1AE /* it.lproj */ = { - isa = PBXGroup; - children = ( - 988207F22B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = it.lproj; - sourceTree = ""; - }; - 988207F42B2CF57A00D6B1AE /* hi.lproj */ = { - isa = PBXGroup; - children = ( - 988207F52B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = hi.lproj; - sourceTree = ""; - }; - 988207F72B2CF57A00D6B1AE /* lb.lproj */ = { - isa = PBXGroup; - children = ( - 988207F82B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = lb.lproj; - sourceTree = ""; - }; - 988207FD2B2CF57A00D6B1AE /* de.lproj */ = { - isa = PBXGroup; - children = ( - 988207FE2B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = de.lproj; - sourceTree = ""; - }; - 988208002B2CF57A00D6B1AE /* mk.lproj */ = { - isa = PBXGroup; - children = ( - 988208012B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = mk.lproj; - sourceTree = ""; - }; - 988208032B2CF57A00D6B1AE /* en.lproj */ = { - isa = PBXGroup; - children = ( - 988208042B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = en.lproj; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 97008AB92974A5BF0076E60C /* Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97008AC22974A5BF0076E60C /* Build configuration list for PBXNativeTarget "Tests" */; - buildPhases = ( - 97008AB62974A5BF0076E60C /* Sources */, - 97008AB72974A5BF0076E60C /* Frameworks */, - 97008AB82974A5BF0076E60C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 97008ABF2974A5BF0076E60C /* PBXTargetDependency */, - ); - name = Tests; - productName = Tests; - productReference = 97008ABA2974A5BF0076E60C /* Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 972DE4A52814A3D8004FD9B9 /* Kiwix */ = { - isa = PBXNativeTarget; - buildConfigurationList = 972DE4B32814A3D9004FD9B9 /* Build configuration list for PBXNativeTarget "Kiwix" */; - buildPhases = ( - 97E88F502AE409630037F0E5 /* Run Script */, - 972096E52AE41ED000B378B0 /* Run Script */, - 972DE4A22814A3D8004FD9B9 /* Sources */, - 972DE4A32814A3D8004FD9B9 /* Frameworks */, - 972DE4A42814A3D8004FD9B9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Kiwix; - packageProductDependencies = ( - 976BAEB9284903EA0049404F /* Fuzi */, - 9753D94A285B56C900A626CC /* Defaults */, - 97FB4ECD28B4E221003FB524 /* SwiftUIBackports */, - 975346C32AC30CFD000DECB6 /* OrderedCollections */, - ); - productName = iOS_SwiftUI; - productReference = 972DE4A62814A3D8004FD9B9 /* Kiwix.app */; - productType = "com.apple.product-type.application"; - }; - 97B44893210FBC2C0004B056 /* WikiMed */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97B448A3210FBC2E0004B056 /* Build configuration list for PBXNativeTarget "WikiMed" */; - buildPhases = ( - 97B44890210FBC2C0004B056 /* Sources */, - 97B44891210FBC2C0004B056 /* Frameworks */, - 97B44892210FBC2C0004B056 /* Resources */, - 97B448AB2110A5480004B056 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WikiMed; - productName = WikiMed; - productReference = 97008AB42974A5A70076E60C /* WikiMed.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97A2AB801C1B80FF00052E74 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastSwiftUpdateCheck = 1420; - LastUpgradeCheck = 1500; - ORGANIZATIONNAME = Kiwix; - TargetAttributes = { - 97008AB92974A5BF0076E60C = { - CreatedOnToolsVersion = 14.2; - TestTargetID = 972DE4A52814A3D8004FD9B9; - }; - 972DE4A52814A3D8004FD9B9 = { - CreatedOnToolsVersion = 13.3; - }; - 97B44893210FBC2C0004B056 = { - CreatedOnToolsVersion = 9.4.1; - DevelopmentTeam = L7HWM3SP3L; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 97A2AB831C1B80FF00052E74 /* Build configuration list for PBXProject "Kiwix" */; - compatibilityVersion = "Xcode 13.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "skr-arab", - "skr-Arab", - "zh-hant", - "zh-Hant", - he, - it, - hi, - lb, - de, - mk, - ); - mainGroup = 97A2AB7F1C1B80FF00052E74; - packageReferences = ( - 9744657E26F7981500072DC2 /* XCRemoteSwiftPackageReference "Fuzi" */, - 97654724273214530070163D /* XCRemoteSwiftPackageReference "Defaults" */, - 97FB4ECC28B4E221003FB524 /* XCRemoteSwiftPackageReference "SwiftUIBackports" */, - 975346C22AC30CFD000DECB6 /* XCRemoteSwiftPackageReference "swift-collections" */, - ); - productRefGroup = 97A2AB7F1C1B80FF00052E74; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 972DE4A52814A3D8004FD9B9 /* Kiwix */, - 97B44893210FBC2C0004B056 /* WikiMed */, - 97008AB92974A5BF0076E60C /* Tests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 97008AB82974A5BF0076E60C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 972DE4A42814A3D8004FD9B9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 980179542B0E402C00E8E1E2 /* kiwix.xcconfig in Resources */, - 988208062B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080E2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080B2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 988208072B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 988208092B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080A2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 979D3A7C284159BF00E396B8 /* injection.js in Resources */, - 9882080F2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080D2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 988208082B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 983A3F562B129F6B000E7A51 /* Assets.xcassets in Resources */, - 97DE2BAD283B133700C63D9B /* wikipedia_dark.css in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97B44892210FBC2C0004B056 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97B448A1210FBC2E0004B056 /* LaunchScreen.storyboard in Resources */, - 97B4489E210FBC2E0004B056 /* Assets.xcassets in Resources */, - 97B4489C210FBC2C0004B056 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 972096E52AE41ED000B378B0 /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# SwiftLint\n\nif [[ \"$(uname -m)\" == arm64 ]]; then\n export PATH=\"/opt/homebrew/bin:$PATH\"\nfi\n\nif which swiftlint > /dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; - 97E88F502AE409630037F0E5 /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Copy Clang module map to xcframework for Swift C++ Interoperability \n\ncp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64/Headers/module.modulemap\ncp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap\ncp Support/CoreKiwix.modulemap CoreKiwix.xcframework/macos-arm64_x86_64/Headers/module.modulemap\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 97008AB62974A5BF0076E60C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97DA90D82975B0C100738365 /* LibraryRefreshViewModelTest.swift in Sources */, - 97008ABD2974A5BF0076E60C /* OPDSParserTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 972DE4A22814A3D8004FD9B9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 983ED7192B08AFE700409078 /* Kiwix-Bridging-Header.h in Sources */, - 972DE4BB2814A5A4004FD9B9 /* Errors.swift in Sources */, - 8E43964C2B02E4C6007F0BC4 /* String+Extension.swift in Sources */, - 9790CA5A28A05EBB00D39FC6 /* ZimFilesCategories.swift in Sources */, - 97486D08284A42B90096E4DD /* SearchResultRow.swift in Sources */, - 9753D949285B55F100A626CC /* DefaultKeys.swift in Sources */, - 973A0DE4281D80E300B41E71 /* ZimFileDetail.swift in Sources */, - 974E7EE62930201500BDF59C /* ZimFileService.mm in Sources */, - 972727BD2A8A518D00BCAF75 /* SafariView.swift in Sources */, - 976BAEBC2849056B0049404F /* SearchOperation.mm in Sources */, - 97909270286BF0BB002B7AA5 /* Formatter.swift in Sources */, - 9745AB5A28E9257400067FF6 /* Settings.swift in Sources */, - 973206532AA25D07003A1A8F /* ViewModifiers.swift in Sources */, - 97DE2B9C2839D39100C63D9B /* WebView.swift in Sources */, - 973A0DEB281DDBB600B41E71 /* ZimFilesDownloads.swift in Sources */, - 975088BE287DA10800273181 /* LibraryLastRefreshTime.swift in Sources */, - 977DD44B2AA617A40001D6CC /* SidebarViewController.swift in Sources */, - 97486D06284A36790096E4DD /* ArticleCell.swift in Sources */, - 9767E7902A756CEE00C5082D /* NavigationViewModel.swift in Sources */, - 973A0E032831057200B41E71 /* URL.swift in Sources */, - 977DD4462AA570450001D6CC /* ArticleShortcutButtons.swift in Sources */, - 973A0DE8281DD7EB00B41E71 /* Log.swift in Sources */, - 972DE4BC2814A5BE004FD9B9 /* OPDSParser.swift in Sources */, - 974C33A02853D4AC00DF6F4C /* About.swift in Sources */, - 97DE2B9F2839D7A200C63D9B /* WebKitHandler.swift in Sources */, - 97486D0E284C0EBC0096E4DD /* Welcome.swift in Sources */, - 976D90E92815D63A00CC7D29 /* ZimFilesNew.swift in Sources */, - 97659CAC28DF817D002E6CE4 /* SearchResult.swift in Sources */, - 9767E78C2A75420400C5082D /* TabLabel.swift in Sources */, - 972727B92A898C1A00BCAF75 /* BookmarkButton.swift in Sources */, - 972727B72A898BF900BCAF75 /* OutlineButton.swift in Sources */, - 977DD4492AA617680001D6CC /* SplitViewController.swift in Sources */, - 975088B328763B6900273181 /* SheetContent.swift in Sources */, - 97176AD22A4FBD710093E3B0 /* BrowserViewModel.swift in Sources */, - 972DE4B92814A56A004FD9B9 /* Database.swift in Sources */, - 97659CAD28DF817D002E6CE4 /* SearchResult.m in Sources */, - 97F3333028AFC1A2007FF53C /* SearchResults.swift in Sources */, - 972727AE2A897FAA00BCAF75 /* GridSection.swift in Sources */, - 9709C0982A8E4C5700E4564C /* Commands.swift in Sources */, - 972727BF2A8A52DC00BCAF75 /* AlertHandler.swift in Sources */, - 972096E72AE421C300B378B0 /* Attribute.swift in Sources */, - 97341C6E2852248500BC273E /* DownloadTaskCell.swift in Sources */, - 973206552AA28FF7003A1A8F /* TabsManagerButton.swift in Sources */, - 976D90DC281586B400CC7D29 /* ZimFileCell.swift in Sources */, - 97121EBE28849F0000371AEB /* ZimFileMissingIndicator.swift in Sources */, - 977DD44D2AA617DA0001D6CC /* CompactViewController.swift in Sources */, - 975088BB287BBDFE00273181 /* LanguageSelector.swift in Sources */, - 9767E7862A72A21300C5082D /* App_iOS.swift in Sources */, - 972DE4BA2814A590004FD9B9 /* ZimFileMetaData.mm in Sources */, - 97486D0B284B96690096E4DD /* CellBackground.swift in Sources */, - 972DE4B42814A4F6004FD9B9 /* DataModel.xcdatamodeld in Sources */, - 976BAEBD2849056B0049404F /* SearchOperation.swift in Sources */, - 976D90E428159BFA00CC7D29 /* Favicon.swift in Sources */, - 983D22672B16ABB6005EBAF1 /* LoadingView.swift in Sources */, - 976D90DB281584BF00CC7D29 /* FlavorTag.swift in Sources */, - 972DE4BD2814A5BE004FD9B9 /* OPDSParser.mm in Sources */, - 972DE4B52814A502004FD9B9 /* Entities.swift in Sources */, - 9721BBBB28427A93005C910D /* Bookmarks.swift in Sources */, - 974E7EE92930201500BDF59C /* ZimFileService.swift in Sources */, - 973A0DFD283100C300B41E71 /* ZimFilesOpened.swift in Sources */, - 9744068A28CF65AE00916BD4 /* LibraryOperations.swift in Sources */, - 98B5D3252B2F36680047CC13 /* DefaultLanguages.swift in Sources */, - 972DE4B62814A502004FD9B9 /* Enum.swift in Sources */, - 9744068728CE263800916BD4 /* DirectoryMonitor.swift in Sources */, - 974C33A9285589E900DF6F4C /* Patches.swift in Sources */, - 973A0DF1282E981200B41E71 /* ZimFileRow.swift in Sources */, - 97DE2BA6283A944100C63D9B /* GridCommon.swift in Sources */, - 972727BB2A89930600BCAF75 /* ExternalLinkHandler.swift in Sources */, - 972DE4C42814AAAE004FD9B9 /* Library.swift in Sources */, - 972727B12A898B9700BCAF75 /* NavigationButtons.swift in Sources */, - 976F5EC62A97909100938490 /* BrowserTab.swift in Sources */, - 9724FC3028D5F5BE001B7DD2 /* BookmarkContextMenu.swift in Sources */, - 976BAEBE284905760049404F /* SearchViewModel.swift in Sources */, - 973A0DE7281DC8F400B41E71 /* DownloadService.swift in Sources */, - 9721BBB72841C16D005C910D /* Message.swift in Sources */, - 97BD6C9D2886E06B004A8532 /* HTMLParser.swift in Sources */, - 980179512B0DF42100E8E1E2 /* Brand.swift in Sources */, - 97677B572A8FA80000F523AB /* FileImport.swift in Sources */, - 972727AA2A89122F00BCAF75 /* App_macOS.swift in Sources */, - 97DE2BA3283A8E5C00C63D9B /* LibraryViewModel.swift in Sources */, - 97DE2BA02839D7AA00C63D9B /* FeatureFlags.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97B44890210FBC2C0004B056 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97B44899210FBC2C0004B056 /* ViewController.swift in Sources */, - 8E43964D2B02E4C6007F0BC4 /* String+Extension.swift in Sources */, - 97B44897210FBC2C0004B056 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 97008ABF2974A5BF0076E60C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 972DE4A52814A3D8004FD9B9 /* Kiwix */; - targetProxy = 97008ABE2974A5BF0076E60C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 97B4489A210FBC2C0004B056 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97B4489B210FBC2C0004B056 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97B4489F210FBC2E0004B056 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97B448A0210FBC2E0004B056 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - 988207E92B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207EA2B2CF57A00D6B1AE /* skr-arab */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207EC2B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207ED2B2CF57A00D6B1AE /* zh-hant */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207EF2B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F02B2CF57A00D6B1AE /* he */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207F22B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F32B2CF57A00D6B1AE /* it */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207F52B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F62B2CF57A00D6B1AE /* hi */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207F82B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F92B2CF57A00D6B1AE /* lb */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207FE2B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207FF2B2CF57A00D6B1AE /* de */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988208012B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988208022B2CF57A00D6B1AE /* mk */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988208042B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988208052B2CF57A00D6B1AE /* en */, - ); - name = Localizable.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 97008AC02974A5BF0076E60C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - GENERATE_INFOPLIST_FILE = YES; - MACOSX_DEPLOYMENT_TARGET = 13.1; - MARKETING_VERSION = 1.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.Tests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix"; - }; - name = Debug; - }; - 97008AC12974A5BF0076E60C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - GENERATE_INFOPLIST_FILE = YES; - MACOSX_DEPLOYMENT_TARGET = 13.1; - MARKETING_VERSION = 1.0; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.Tests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix"; - }; - name = Release; - }; - 972DE4B12814A3D9004FD9B9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Support/Kiwix.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 120; - DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = L7HWM3SP3L; - "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Support/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Kiwix; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.reference"; - INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES; - INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Kiwix needs permission to saves images to your photos app."; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 3.3; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = self.Kiwix; - PRODUCT_NAME = Kiwix; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 972DE4B22814A3D9004FD9B9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Support/Kiwix.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 120; - DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = L7HWM3SP3L; - "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Support/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Kiwix; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.reference"; - INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES; - INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Kiwix needs permission to saves images to your photos app."; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchKiwix.storyboard; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 3.3; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = self.Kiwix; - PRODUCT_NAME = Kiwix; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 97A2ABB11C1B810000052E74 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - EXCLUDED_ARCHS = ""; - GCC_C_LANGUAGE_STANDARD = c11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_SWIFT_FLAGS = ""; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_OBJC_INTEROP_MODE = objcxx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97A2ABB21C1B810000052E74 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXCLUDED_ARCHS = ""; - GCC_C_LANGUAGE_STANDARD = c11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_OBJC_INTEROP_MODE = objcxx; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97B448A4210FBC2E0004B056 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = WikiMed/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.wikimed; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97B448A5210FBC2E0004B056 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = WikiMed/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.wikimed; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 97008AC22974A5BF0076E60C /* Build configuration list for PBXNativeTarget "Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97008AC02974A5BF0076E60C /* Debug */, - 97008AC12974A5BF0076E60C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 972DE4B32814A3D9004FD9B9 /* Build configuration list for PBXNativeTarget "Kiwix" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 972DE4B12814A3D9004FD9B9 /* Debug */, - 972DE4B22814A3D9004FD9B9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97A2AB831C1B80FF00052E74 /* Build configuration list for PBXProject "Kiwix" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97A2ABB11C1B810000052E74 /* Debug */, - 97A2ABB21C1B810000052E74 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97B448A3210FBC2E0004B056 /* Build configuration list for PBXNativeTarget "WikiMed" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97B448A4210FBC2E0004B056 /* Debug */, - 97B448A5210FBC2E0004B056 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - -/* Begin XCRemoteSwiftPackageReference section */ - 9744657E26F7981500072DC2 /* XCRemoteSwiftPackageReference "Fuzi" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/cezheng/Fuzi"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 3.0.0; - }; - }; - 975346C22AC30CFD000DECB6 /* XCRemoteSwiftPackageReference "swift-collections" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/apple/swift-collections.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 1.0.4; - }; - }; - 97654724273214530070163D /* XCRemoteSwiftPackageReference "Defaults" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/sindresorhus/Defaults"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 6.0.0; - }; - }; - 97FB4ECC28B4E221003FB524 /* XCRemoteSwiftPackageReference "SwiftUIBackports" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/shaps80/SwiftUIBackports.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 1.0.0; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - -/* Begin XCSwiftPackageProductDependency section */ - 975346C32AC30CFD000DECB6 /* OrderedCollections */ = { - isa = XCSwiftPackageProductDependency; - package = 975346C22AC30CFD000DECB6 /* XCRemoteSwiftPackageReference "swift-collections" */; - productName = OrderedCollections; - }; - 9753D94A285B56C900A626CC /* Defaults */ = { - isa = XCSwiftPackageProductDependency; - package = 97654724273214530070163D /* XCRemoteSwiftPackageReference "Defaults" */; - productName = Defaults; - }; - 976BAEB9284903EA0049404F /* Fuzi */ = { - isa = XCSwiftPackageProductDependency; - package = 9744657E26F7981500072DC2 /* XCRemoteSwiftPackageReference "Fuzi" */; - productName = Fuzi; - }; - 97FB4ECD28B4E221003FB524 /* SwiftUIBackports */ = { - isa = XCSwiftPackageProductDependency; - package = 97FB4ECC28B4E221003FB524 /* XCRemoteSwiftPackageReference "SwiftUIBackports" */; - productName = SwiftUIBackports; - }; -/* End XCSwiftPackageProductDependency section */ - -/* Begin XCVersionGroup section */ - 9735D0B82775363900C7D495 /* DataModel.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - 9735D0B92775363900C7D495 /* DataModel.xcdatamodel */, - ); - currentVersion = 9735D0B92775363900C7D495 /* DataModel.xcdatamodel */; - name = DataModel.xcdatamodeld; - path = ../SwiftUI/Model/DataModel.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; -/* End XCVersionGroup section */ - }; - rootObject = 97A2AB801C1B80FF00052E74 /* Project object */; -} diff --git a/Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 74c6c773..00000000 --- a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,41 +0,0 @@ -{ - "pins" : [ - { - "identity" : "defaults", - "kind" : "remoteSourceControl", - "location" : "https://github.com/sindresorhus/Defaults", - "state" : { - "revision" : "981ccb0a01c54abbe3c12ccb8226108527bbf115", - "version" : "6.3.0" - } - }, - { - "identity" : "fuzi", - "kind" : "remoteSourceControl", - "location" : "https://github.com/cezheng/Fuzi", - "state" : { - "revision" : "f08c8323da21e985f3772610753bcfc652c2103f", - "version" : "3.1.3" - } - }, - { - "identity" : "swift-collections", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-collections.git", - "state" : { - "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2", - "version" : "1.0.4" - } - }, - { - "identity" : "swiftuibackports", - "kind" : "remoteSourceControl", - "location" : "https://github.com/shaps80/SwiftUIBackports.git", - "state" : { - "revision" : "4cab730480277c5ae6ac3ea8ee02b4845dee4903", - "version" : "1.6.3" - } - } - ], - "version" : 2 -} diff --git a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist b/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist deleted file mode 100644 index 8f2c9a7d..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - classNames - - iOSUITests - - testLaunchPerformance() - - com.apple.dt.XCTMetric_ApplicationLaunch-AppLaunch.duration - - baselineAverage - 1.8055 - baselineIntegrationDisplayName - Local Baseline - - - - - - diff --git a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist b/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist deleted file mode 100644 index 92e2206e..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist +++ /dev/null @@ -1,40 +0,0 @@ - - - - - runDestinationsByUUID - - 7C59A401-F1E8-48BA-8542-425634ADC0DB - - localComputer - - busSpeedInMHz - 400 - cpuCount - 1 - cpuKind - Unknown CPU - cpuSpeedInMHz - 3800 - logicalCPUCoresPerPackage - 24 - modelCode - MacPro7,1 - physicalCPUCoresPerPackage - 12 - platformIdentifier - com.apple.platform.macosx - - targetArchitecture - x86_64 - targetDevice - - modelCode - iPad8,9 - platformIdentifier - com.apple.platform.iphonesimulator - - - - - diff --git a/Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme b/Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme deleted file mode 100644 index d285e395..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme b/Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme deleted file mode 100644 index dc9fec02..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From a589b9a0615682ea367eec456f32def532dc15f5 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 13:54:49 +0100 Subject: [PATCH 02/20] Add Brewfile --- Brewfile | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Brewfile diff --git a/Brewfile b/Brewfile new file mode 100644 index 00000000..21c35517 --- /dev/null +++ b/Brewfile @@ -0,0 +1,8 @@ +brew "pre-commit" +brew "xcodegen" +brew "curl" + +at_exit do + system "pre-commit install" + system "curl -L -o - https://download.kiwix.org/release/libkiwix/libkiwix_xcframework-13.0.0-1.tar.gz | tar -x --strip-components 2" +end \ No newline at end of file From 28d45e3ea1df1bcabab04e0a631df0da81329bfa Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 14:00:34 +0100 Subject: [PATCH 03/20] Add Brewfile --- Brewfile | 9 +++ Brewfile.lock.json | 145 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 Brewfile create mode 100644 Brewfile.lock.json diff --git a/Brewfile b/Brewfile new file mode 100644 index 00000000..68676c03 --- /dev/null +++ b/Brewfile @@ -0,0 +1,9 @@ +brew "pre-commit" +brew "xcodegen" +brew "curl" + +at_exit do + system "pre-commit install" + system "curl -L -o - https://download.kiwix.org/release/libkiwix/libkiwix_xcframework-13.0.0-1.tar.gz | tar -x --strip-components 2" + system "xcodegen" +end \ No newline at end of file diff --git a/Brewfile.lock.json b/Brewfile.lock.json new file mode 100644 index 00000000..8ede2d41 --- /dev/null +++ b/Brewfile.lock.json @@ -0,0 +1,145 @@ +{ + "entries": { + "brew": { + "pre-commit": { + "version": "3.6.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:2bc88b06e4238db4b55e1af64cb7fef785ccec3b88bc8dd2c5814ebc8f55b0a1", + "sha256": "2bc88b06e4238db4b55e1af64cb7fef785ccec3b88bc8dd2c5814ebc8f55b0a1" + }, + "arm64_ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:dc76862c28b49b83d7a15b484a5186cd6d20a03d60d3b0f9d3afba5d863526a7", + "sha256": "dc76862c28b49b83d7a15b484a5186cd6d20a03d60d3b0f9d3afba5d863526a7" + }, + "arm64_monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:eb7abe34c1d15f3a96b258fbedcdbde6c24e89927e1b35610358db9e70204a44", + "sha256": "eb7abe34c1d15f3a96b258fbedcdbde6c24e89927e1b35610358db9e70204a44" + }, + "sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:2e285ca1bbf5f86e53240c97041e1133d286e05256c5ca9658bb86ed5087b789", + "sha256": "2e285ca1bbf5f86e53240c97041e1133d286e05256c5ca9658bb86ed5087b789" + }, + "ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:07dd83234a749a5307c506a5442ff2f818084aea2d1436e11797fb493447f0ca", + "sha256": "07dd83234a749a5307c506a5442ff2f818084aea2d1436e11797fb493447f0ca" + }, + "monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:2b23e12b4fc2226d97830982b103f1b5be54707c1ebd638616cf0d614b9a2dd9", + "sha256": "2b23e12b4fc2226d97830982b103f1b5be54707c1ebd638616cf0d614b9a2dd9" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:1984c2637a432088c3d98ad10e9219afa6612387718a16cb076927ee39dc0ea5", + "sha256": "1984c2637a432088c3d98ad10e9219afa6612387718a16cb076927ee39dc0ea5" + } + } + } + }, + "xcodegen": { + "version": "2.38.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:422fb8dfbc7e2ed59125d22b4687bb54a1ab3f0ddef044a3875b624121f9be47", + "sha256": "422fb8dfbc7e2ed59125d22b4687bb54a1ab3f0ddef044a3875b624121f9be47" + }, + "arm64_ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:5b2d9dfdf8bc9912ecef48ecc4a03cfb4ba68f35f03c4ab4fc9e893b077f8796", + "sha256": "5b2d9dfdf8bc9912ecef48ecc4a03cfb4ba68f35f03c4ab4fc9e893b077f8796" + }, + "arm64_monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:7a239feca86c46f78ae91d631858d957cb2e7e63ea7230b30f3d618097774bff", + "sha256": "7a239feca86c46f78ae91d631858d957cb2e7e63ea7230b30f3d618097774bff" + }, + "sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:346164300a7e835f8516c70b25793702bab2437d7e9fb606b5394ab757dab4f5", + "sha256": "346164300a7e835f8516c70b25793702bab2437d7e9fb606b5394ab757dab4f5" + }, + "ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:2bca799f6fee1e679a3f826a9a977449a23f81f02896b22a525056f6cd4a07dd", + "sha256": "2bca799f6fee1e679a3f826a9a977449a23f81f02896b22a525056f6cd4a07dd" + }, + "monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:3e306a4b9ad078c77b61d93090c224304c7dac35ca119808db87792edb983be8", + "sha256": "3e306a4b9ad078c77b61d93090c224304c7dac35ca119808db87792edb983be8" + } + } + } + }, + "curl": { + "version": "8.5.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_sonoma": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:f522b5617f23fc5254ca7af46f966ab4126f1e6bb807ef6b0a5d9a189401628c", + "sha256": "f522b5617f23fc5254ca7af46f966ab4126f1e6bb807ef6b0a5d9a189401628c" + }, + "arm64_ventura": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:bf6727235d2f3de1aaac9cd78a73de007c50370fbe8a617fa6274b5b0c11e17d", + "sha256": "bf6727235d2f3de1aaac9cd78a73de007c50370fbe8a617fa6274b5b0c11e17d" + }, + "arm64_monterey": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:30624bc555daa8181e3bceb3abe88fc83be0ccfdf4481e2333599fbeb45b7922", + "sha256": "30624bc555daa8181e3bceb3abe88fc83be0ccfdf4481e2333599fbeb45b7922" + }, + "sonoma": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:47c7c2bacab6e130e55fd34a0053062ad775801a4ed6b8f8d970226b89aaaef3", + "sha256": "47c7c2bacab6e130e55fd34a0053062ad775801a4ed6b8f8d970226b89aaaef3" + }, + "ventura": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:b38db0ec20251e89fcd2f71074a3ad3e9aa2bedafe9b9d4d7c368a8fbfea2e67", + "sha256": "b38db0ec20251e89fcd2f71074a3ad3e9aa2bedafe9b9d4d7c368a8fbfea2e67" + }, + "monterey": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:4d68cb21a249d7cf410bf46ee419bb5159a8847507ecd29e4163db2feed0e1e3", + "sha256": "4d68cb21a249d7cf410bf46ee419bb5159a8847507ecd29e4163db2feed0e1e3" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:6b2cd50eae98f85e4ba55b4379e2351ec4408d3c547a6bed782f1eb62a797ad4", + "sha256": "6b2cd50eae98f85e4ba55b4379e2351ec4408d3c547a6bed782f1eb62a797ad4" + } + } + } + } + } + }, + "system": { + "macos": { + "ventura": { + "HOMEBREW_VERSION": "4.2.1", + "HOMEBREW_PREFIX": "/opt/homebrew", + "Homebrew/homebrew-core": "api", + "CLT": "15.0.0.0.1.1694021235", + "Xcode": "15.1", + "macOS": "13.6.1" + } + } + } +} From bb7bd9e4c72f838d157d44413a939ae3eaa71451 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 14:04:08 +0100 Subject: [PATCH 04/20] Add xcodegen project file --- project.yml | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 project.yml diff --git a/project.yml b/project.yml new file mode 100644 index 00000000..e5d99108 --- /dev/null +++ b/project.yml @@ -0,0 +1,143 @@ +name: Kiwix +options: + xcodeVersion: 13.0 + deploymentTarget: + iOS: 15.0 + macOS: 12.0 + generateEmptyDirectories: true + useTabs: false + groupSortPosition: top + +settings: + base: + DEVELOPMENT_TEAM: L7HWM3SP3L + GENERATE_INFOPLIST_FILE: YES + CURRENT_PROJECT_VERSION: 120 + ENABLE_USER_SCRIPT_SANDBOXING: NO + ENABLE_MODULE_VERIFIER: YES + MODULE_VERIFIER_SUPPORTED_LANGUAGES: "objective-c objective-c++" + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: YES + ENABLE_PREVIEWS: YES + INFOPLIST_FILE: Support/Info.plist + INFOPLIST_KEY_LSApplicationCategoryType: public.app-category.reference + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + INFOPLIST_KEY_NSPhotoLibraryUsageDescription: "Kiwix needs permission to saves images to your photos app." + INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace: YES + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: YES + SWIFT_OBJC_INTEROP_MODE: objcxx + SWIFT_OBJC_BRIDGING_HEADER: $(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h + GCC_C_LANGUAGE_STANDARD: c11 + CLANG_CXX_LANGUAGE_STANDARD: c++14 + ENABLE_HARDENED_RUNTIME[sdk=macosx*]: YES + APP_STORE_ID: $(APP_STORE_ID) + INFOPLIST_KEY_UILaunchScreen_Generation: YES + INFOPLIST_KEY_UILaunchStoryboardName: LaunchKiwix.storyboard + + configs: + debug: + DEAD_CODE_STRIPPING: YES + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS: "gnu11 gnu14++" + release: + DEAD_CODE_STRIPPING: YES + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS: "gnu11 gnu14++" + VALIDATE_PRODUCT: YES + +packages: + Fuzi: + url: https://github.com/cezheng/Fuzi + majorVersion: 3.0.0 + Defaults: + url: https://github.com/sindresorhus/Defaults + majorVersion: 6.0.0 + SwiftUIBackports: + url: https://github.com/shaps80/SwiftUIBackports.git + majorVersion: 1.0.0 + OrderedCollections: + url: https://github.com/apple/swift-collections.git + majorVersion: 1.0.4 + +targets: + Kiwix: + settings: + base: + MARKETING_VERSION: "3.3" + PRODUCT_BUNDLE_IDENTIFIER: self.Kiwix + INFOPLIST_KEY_CFBundleDisplayName: Kiwix + type: application + supportedDestinations: [iOS, macOS] + # info: + # path: Support/Info.plist + # CFBundleName: Kiwix + sources: + - path: App + - path: Support/Kiwix-Bridging-Header.h + destinationFilters: [iOS] + - path: Model + - path: Support + excludes: + - "Launch.storyboard" + - "**/*.zim" + - "DWDS.xcassets" + - "**/qqq.lproj" + - path: SwiftUI + - path: ViewModel + - path: Views + preBuildScripts: + - script: | + # Copy Clang module map to xcframework for Swift C++ Interoperability + cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64/Headers/module.modulemap + cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap + cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/macos-arm64_x86_64/Headers/module.modulemap + name: "Copy CoreKiwix module maps" + basedOnDependencyAnalysis: false + configFiles: + Debug: Support/kiwix.xcconfig + Release: Support/kiwix.xcconfig + entitlements: + path: Support/Kiwix.entitlements + properties: + com.apple.security.app-sandbox: true + com.apple.security.files.downloads.read-write: true + com.apple.security.files.user-selected.read-only: true + com.apple.security.network.client: true + dependencies: + - framework: CoreKiwix.xcframework + embed: false + codeSign: true + - sdk: SwiftUI.framework + - sdk: MapKit.framework + - sdk: WebKit.framework + - sdk: NotificationCenter.framework + - sdk: QuickLook.framework + - package: Fuzi + - package: Defaults + - package: SwiftUIBackports + - package: OrderedCollections + UnitTests: + type: bundle.unit-test + platform: macOS + settings: + PRODUCT_BUNDLE_IDENTIFIER: org.kiwix.Tests + TEST_HOST: $(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix + BUNDLE_LOADER: $(TEST_HOST) + DEVELOPMENT_TEAM: L7HWM3SP3L + sources: + - path: Tests + dependencies: + - target: Kiwix + + +schemes: + Kiwix: + build: + targets: + Kiwix: all + test: + targets: + - UnitTests + commandLineArguments: + testing: true + + \ No newline at end of file From 82efca53d9ce4364894559b0fa714c937cc337dc Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 19:35:10 +0100 Subject: [PATCH 05/20] Update readme --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index abb454db..ac94d81f 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,16 @@ To compile Kiwix you rely on the following compilation tools: * An [Apple Developer account](https://developer.apple.com) (doesn't require membership) * Latest Apple Developers Tools ([Xcode](https://developer.apple.com/xcode/)) * Its command-line utilities (`xcode-select --install`) -* `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) +* Brew dependencies, (see `Brewfile`, which also downloads our `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) ### Steps To compile Kiwix, follow these steps: - -* Put `CoreKiwix/xcframework` at the root of this folder -* Open project with Xcode `open Kiwix.xcodeproj/project.xcworkspace/` +* From the commandline on the root of this project run: `brew bundle`, this will download and install all the dependencies you need to get started * Change the Bundle Identifier (in *Signing & Capabilities*) * Select appropriate Signing Certificate/Profile. -### Getting `CoreKiwix.xcframework` +### Switch to another version of the `CoreKiwix.xcframework` `CoreKiwix.xcframework` is published with all supported platforms and CPU architectures: From 812422fb75216e924b728e32bc31507c9aaee396 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 19:35:40 +0100 Subject: [PATCH 06/20] Update CI build step --- .github/actions/xcbuild/action.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/actions/xcbuild/action.yml b/.github/actions/xcbuild/action.yml index 363a54ea..712e97a0 100644 --- a/.github/actions/xcbuild/action.yml +++ b/.github/actions/xcbuild/action.yml @@ -97,11 +97,9 @@ runs: KEYCHAIN: ${{ inputs.KEYCHAIN }} KEYCHAIN_PASSWORD: ${{ inputs.KEYCHAIN_PASSWORD }} - - name: Download CoreKiwix.xcframework - env: - XCF_URL: https://download.kiwix.org/release/libkiwix/libkiwix_xcframework-${{ inputs.libkiwix-version }}.tar.gz + - name: Download dependencies shell: bash - run: curl -L -o - $XCF_URL | tar -x --strip-components 2 + run: brew bundle - name: Prepare Xcode shell: bash From fa78b1c297833a59b71a7f897a067ca613b5db4d Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 09:44:10 +0100 Subject: [PATCH 07/20] Add pre-commit config --- .pre-commit-config.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..d8032f5c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,12 @@ +# docs: https://pre-commit.com +default_install_hook_types: [post-merge, post-checkout, post-rewrite] +repos: + - repo: local + hooks: + - id: xcodegen + name: Generate project files for XCode + description: "Generate project file for XCode" + entry: xcodegen + language: system + always_run: true + stages: [post-checkout, post-merge, post-rewrite] From 6b436471bc96bf80f558797c0313c6d4d2340b15 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 12:36:22 +0100 Subject: [PATCH 08/20] Update readme and project files --- .github/actions/xcbuild/action.yml | 2 +- .pre-commit-config.yaml | 4 +-- README.md | 46 ++++++++++++++++++------------ project.yml | 8 ++---- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/.github/actions/xcbuild/action.yml b/.github/actions/xcbuild/action.yml index 712e97a0..1327b5be 100644 --- a/.github/actions/xcbuild/action.yml +++ b/.github/actions/xcbuild/action.yml @@ -1,4 +1,4 @@ -name: Build with XCode +name: Build with Xcode description: Run xcodebuild for Kiwix inputs: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d8032f5c..6f03ae95 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,8 +4,8 @@ repos: - repo: local hooks: - id: xcodegen - name: Generate project files for XCode - description: "Generate project file for XCode" + name: Generate project files for Xcode + description: "Generate project file for Xcode" entry: xcodegen language: system always_run: true diff --git a/README.md b/README.md index ac94d81f..7482b74e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This is the home for Kiwix apps for Apple iOS and macOS. [![CI Build Status](https://github.com/kiwix/apple/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kiwix/apple/actions/workflows/ci.yml?query=branch%3Amain) [![CD Build Status](https://github.com/kiwix/apple/actions/workflows/cd.yml/badge.svg?branch=main)](https://github.com/kiwix/apple/actions/workflows/cd?query=branch%3Amain) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -Drawing= +Drawing= ## Download @@ -18,7 +18,31 @@ downloadable for older versions of macOS and iOS on the Mac App Store. ## Develop -Kiwix developers usually work with latest macOS and Xcode. Check our [Continuous Integration Workflow](https://github.com/kiwix/apple/blob/main/.github/workflows/ci.yml) to find out which XCode version we use on Github Actions. +Kiwix developers usually work with latest macOS and Xcode. Check our [Continuous Integration Workflow](https://github.com/kiwix/apple/blob/main/.github/workflows/ci.yml) to find out which Xcode version we use on Github Actions. + +### Get started + +To get started, you will need the following: + +* An [Apple Developer account](https://developer.apple.com) (doesn't require membership) +* [Xcode](https://developer.apple.com/xcode/) installed +* Its command-line utilities (`xcode-select --install`) +* [Homebrew](https://brew.sh) installed + +### Steps + 1) clone this repository + 2) from the project folder **run the following command: `brew bundle`** + +### Xcode settings + +To compile and run Kiwix from Xcode locally, you will need to: +* Change the Bundle Identifier (in *Signing & Capabilities*) +* Select appropriate Signing Certificate/Profile. + +### Dependencies installed for you +Our `Brewfile` will install all the necessary dependencies for you: +- our latest `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) +- [XcodeGen](https://github.com/yonaskolb/XcodeGen) which will create the project files for you ### CPU Architectures @@ -26,22 +50,6 @@ Kiwix compiles on both macOS architectures x86_64 and arm64 (Apple silicon). Kiwix for iOS and macOS can run, in both cases, on x86_64 or arm64. -### Dependencies - -To compile Kiwix you rely on the following compilation tools: - -* An [Apple Developer account](https://developer.apple.com) (doesn't require membership) -* Latest Apple Developers Tools ([Xcode](https://developer.apple.com/xcode/)) -* Its command-line utilities (`xcode-select --install`) -* Brew dependencies, (see `Brewfile`, which also downloads our `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) - -### Steps - -To compile Kiwix, follow these steps: -* From the commandline on the root of this project run: `brew bundle`, this will download and install all the dependencies you need to get started -* Change the Bundle Identifier (in *Signing & Capabilities*) -* Select appropriate Signing Certificate/Profile. - ### Switch to another version of the `CoreKiwix.xcframework` `CoreKiwix.xcframework` is published with all supported platforms and CPU architectures: @@ -49,6 +57,8 @@ To compile Kiwix, follow these steps: - [latest release](https://download.kiwix.org/release/libkiwix/libkiwix_xcframework.tar.gz) - [latest nightly](https://download.kiwix.org/nightly/libkiwix_xcframework.tar.gz): using `main` branch of both `libkiwix` and `libzim`. +In order to use another version of CoreKiwix, than the one pre-installed, you can simply replace the CoreKiwix.xcframework folder at the root of the project with the version downloaded, and unpacked. + #### Compiling `CoreKiwix.xcframework` You may want to compile it yourself, to use different branches of said projects for instance. diff --git a/project.yml b/project.yml index e5d99108..d729ff7e 100644 --- a/project.yml +++ b/project.yml @@ -1,7 +1,7 @@ name: Kiwix options: - xcodeVersion: 13.0 - deploymentTarget: + xcodeVersion: 15.0 + deploymentTarget: # the three latest major versions should be supported iOS: 15.0 macOS: 12.0 generateEmptyDirectories: true @@ -67,9 +67,6 @@ targets: INFOPLIST_KEY_CFBundleDisplayName: Kiwix type: application supportedDestinations: [iOS, macOS] - # info: - # path: Support/Info.plist - # CFBundleName: Kiwix sources: - path: App - path: Support/Kiwix-Bridging-Header.h @@ -79,7 +76,6 @@ targets: excludes: - "Launch.storyboard" - "**/*.zim" - - "DWDS.xcassets" - "**/qqq.lproj" - path: SwiftUI - path: ViewModel From 3a2d09ab13a1f2202b64dfc05f28279c4d9bb75e Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 13:12:29 +0100 Subject: [PATCH 09/20] Include xcodegen section in Readme --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 7482b74e..d1cafe35 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,15 @@ Our `Brewfile` will install all the necessary dependencies for you: - our latest `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) - [XcodeGen](https://github.com/yonaskolb/XcodeGen) which will create the project files for you +### How XcodeGen is working? +Xcode project files are not directly contained within this repository, instead they are generated for you automatically (as git hooks on post-merge, post-checkout, post-rewrite - see the `.pre-commit-config.yaml`). + +This means, that you can work in Xcode as usual, but you don't need to worry about the project file changes anymore. + +Contributors: please note, **changes to the Xcode project folder will not be tracked by git**. + +If you wish to change any settings as part of your contribution, please **edit the `project.yml` file instead.** + ### CPU Architectures Kiwix compiles on both macOS architectures x86_64 and arm64 (Apple silicon). From f2deeefa2680795427c093606589ca1a34a5fc07 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 13:15:00 +0100 Subject: [PATCH 10/20] Add XcodeGen doc reference --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d1cafe35..2433c4c4 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,8 @@ Contributors: please note, **changes to the Xcode project folder will not be tra If you wish to change any settings as part of your contribution, please **edit the `project.yml` file instead.** +Please refer to the [XcodeGen documentation](https://github.com/yonaskolb/XcodeGen) for further details. + ### CPU Architectures Kiwix compiles on both macOS architectures x86_64 and arm64 (Apple silicon). From a25863f7c58189ceb6e31a18965e5bef2f7c74b7 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 13:54:06 +0100 Subject: [PATCH 11/20] Ignore xcode project files, and do not track them in git --- .gitignore | 3 + Kiwix.xcodeproj/project.pbxproj | 1522 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/swiftpm/Package.resolved | 41 - ...7C59A401-F1E8-48BA-8542-425634ADC0DB.plist | 22 - .../Info.plist | 40 - .../xcshareddata/xcschemes/Kiwix.xcscheme | 104 -- .../xcshareddata/xcschemes/WikiMed.xcscheme | 78 - 9 files changed, 3 insertions(+), 1822 deletions(-) delete mode 100644 Kiwix.xcodeproj/project.pbxproj delete mode 100644 Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme delete mode 100644 Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme diff --git a/.gitignore b/.gitignore index d35428b6..6e617470 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,6 @@ fastlane/test_output .DS_Store xcuserdata Libraries + +# ignore xcode project files, they are now generated by XcodeGen +*.xcodeproj \ No newline at end of file diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj deleted file mode 100644 index f75bfdf4..00000000 --- a/Kiwix.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1522 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 8E43964C2B02E4C6007F0BC4 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */; }; - 8E43964D2B02E4C6007F0BC4 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */; }; - 97008ABD2974A5BF0076E60C /* OPDSParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97008ABC2974A5BF0076E60C /* OPDSParserTests.swift */; }; - 9709C0982A8E4C5700E4564C /* Commands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9709C0972A8E4C5700E4564C /* Commands.swift */; }; - 97121EBE28849F0000371AEB /* ZimFileMissingIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97121EBC28849F0000371AEB /* ZimFileMissingIndicator.swift */; }; - 97176AD22A4FBD710093E3B0 /* BrowserViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97176AD12A4FBD710093E3B0 /* BrowserViewModel.swift */; }; - 972096E72AE421C300B378B0 /* Attribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972096E62AE421C300B378B0 /* Attribute.swift */; }; - 9721BBB72841C16D005C910D /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97FB4B0A27B819A90055F86E /* Message.swift */; }; - 9721BBBB28427A93005C910D /* Bookmarks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9721BBB928427A93005C910D /* Bookmarks.swift */; }; - 9724FC3028D5F5BE001B7DD2 /* BookmarkContextMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9724FC2E28D5F5BE001B7DD2 /* BookmarkContextMenu.swift */; }; - 972727AA2A89122F00BCAF75 /* App_macOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727A92A89122F00BCAF75 /* App_macOS.swift */; }; - 972727AE2A897FAA00BCAF75 /* GridSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727AD2A897FAA00BCAF75 /* GridSection.swift */; }; - 972727B12A898B9700BCAF75 /* NavigationButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727B02A898B9700BCAF75 /* NavigationButtons.swift */; }; - 972727B72A898BF900BCAF75 /* OutlineButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727B62A898BF900BCAF75 /* OutlineButton.swift */; }; - 972727B92A898C1A00BCAF75 /* BookmarkButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727B82A898C1A00BCAF75 /* BookmarkButton.swift */; }; - 972727BB2A89930600BCAF75 /* ExternalLinkHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727BA2A89930600BCAF75 /* ExternalLinkHandler.swift */; }; - 972727BD2A8A518D00BCAF75 /* SafariView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727BC2A8A518D00BCAF75 /* SafariView.swift */; }; - 972727BF2A8A52DC00BCAF75 /* AlertHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972727BE2A8A52DC00BCAF75 /* AlertHandler.swift */; }; - 972DE4B42814A4F6004FD9B9 /* DataModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 9735D0B82775363900C7D495 /* DataModel.xcdatamodeld */; }; - 972DE4B52814A502004FD9B9 /* Entities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972DE4722814A116004FD9B9 /* Entities.swift */; }; - 972DE4B62814A502004FD9B9 /* Enum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9735D0BF27777E3300C7D495 /* Enum.swift */; }; - 972DE4B92814A56A004FD9B9 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9735D0BB2775594700C7D495 /* Database.swift */; }; - 972DE4BA2814A590004FD9B9 /* ZimFileMetaData.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5AC2456793600F6F6FF /* ZimFileMetaData.mm */; }; - 972DE4BB2814A5A4004FD9B9 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A2FC4277EAA2500BD4320 /* Errors.swift */; }; - 972DE4BC2814A5BE004FD9B9 /* OPDSParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5A32456793500F6F6FF /* OPDSParser.swift */; }; - 972DE4BD2814A5BE004FD9B9 /* OPDSParser.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5A52456793500F6F6FF /* OPDSParser.mm */; }; - 972DE4C42814AAAE004FD9B9 /* Library.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972DE4C12814A961004FD9B9 /* Library.swift */; }; - 973206532AA25D07003A1A8F /* ViewModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973206522AA25D07003A1A8F /* ViewModifiers.swift */; }; - 973206552AA28FF7003A1A8F /* TabsManagerButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973206542AA28FF7003A1A8F /* TabsManagerButton.swift */; }; - 97341C6E2852248500BC273E /* DownloadTaskCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97341C6C2852248500BC273E /* DownloadTaskCell.swift */; }; - 973A0DE4281D80E300B41E71 /* ZimFileDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DE2281D80E300B41E71 /* ZimFileDetail.swift */; }; - 973A0DE7281DC8F400B41E71 /* DownloadService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DE5281DC8F400B41E71 /* DownloadService.swift */; }; - 973A0DE8281DD7EB00B41E71 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A7E224567A5A00F6F6FF /* Log.swift */; }; - 973A0DEB281DDBB600B41E71 /* ZimFilesDownloads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DE9281DDBB600B41E71 /* ZimFilesDownloads.swift */; }; - 973A0DF1282E981200B41E71 /* ZimFileRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DEF282E981200B41E71 /* ZimFileRow.swift */; }; - 973A0DFD283100C300B41E71 /* ZimFilesOpened.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A0DFB283100C300B41E71 /* ZimFilesOpened.swift */; }; - 973A0E032831057200B41E71 /* URL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B3BACD2736CE3500A23F49 /* URL.swift */; }; - 9744068728CE263800916BD4 /* DirectoryMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5CF2456796A00F6F6FF /* DirectoryMonitor.swift */; }; - 9744068A28CF65AE00916BD4 /* LibraryOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9744068828CF65AE00916BD4 /* LibraryOperations.swift */; }; - 9745AB5A28E9257400067FF6 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9745AB5828E9257400067FF6 /* Settings.swift */; }; - 97486D06284A36790096E4DD /* ArticleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D05284A36790096E4DD /* ArticleCell.swift */; }; - 97486D08284A42B90096E4DD /* SearchResultRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D07284A42B90096E4DD /* SearchResultRow.swift */; }; - 97486D0B284B96690096E4DD /* CellBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D09284B96690096E4DD /* CellBackground.swift */; }; - 97486D0E284C0EBC0096E4DD /* Welcome.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97486D0C284C0EBC0096E4DD /* Welcome.swift */; }; - 974C33A02853D4AC00DF6F4C /* About.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974C339E2853D4AC00DF6F4C /* About.swift */; }; - 974C33A9285589E900DF6F4C /* Patches.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974C33A7285589E900DF6F4C /* Patches.swift */; }; - 974E7EE62930201500BDF59C /* ZimFileService.mm in Sources */ = {isa = PBXBuildFile; fileRef = 974E7EE32930201500BDF59C /* ZimFileService.mm */; }; - 974E7EE92930201500BDF59C /* ZimFileService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974E7EE52930201500BDF59C /* ZimFileService.swift */; }; - 975088B328763B6900273181 /* SheetContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975088B228763B6900273181 /* SheetContent.swift */; }; - 975088BB287BBDFE00273181 /* LanguageSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975088B9287BBDFE00273181 /* LanguageSelector.swift */; }; - 975088BE287DA10800273181 /* LibraryLastRefreshTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 975088BC287DA10800273181 /* LibraryLastRefreshTime.swift */; }; - 975346C42AC30CFD000DECB6 /* OrderedCollections in Frameworks */ = {isa = PBXBuildFile; productRef = 975346C32AC30CFD000DECB6 /* OrderedCollections */; }; - 9753D949285B55F100A626CC /* DefaultKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753D947285B55F100A626CC /* DefaultKeys.swift */; }; - 9753D94B285B56C900A626CC /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = 9753D94A285B56C900A626CC /* Defaults */; }; - 97659CAC28DF817D002E6CE4 /* SearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976A65B22659489F009A97C6 /* SearchResult.swift */; }; - 97659CAD28DF817D002E6CE4 /* SearchResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 97B3998C2467561900BC6F5B /* SearchResult.m */; }; - 97677B572A8FA80000F523AB /* FileImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97677B562A8FA80000F523AB /* FileImport.swift */; }; - 9767E7862A72A21300C5082D /* App_iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767E7852A72A21300C5082D /* App_iOS.swift */; }; - 9767E78C2A75420400C5082D /* TabLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767E78B2A75420400C5082D /* TabLabel.swift */; }; - 9767E7902A756CEE00C5082D /* NavigationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9767E78F2A756CEE00C5082D /* NavigationViewModel.swift */; }; - 976BAEBA284903EA0049404F /* Fuzi in Frameworks */ = {isa = PBXBuildFile; productRef = 976BAEB9284903EA0049404F /* Fuzi */; }; - 976BAEBC2849056B0049404F /* SearchOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 97B3998924673FE000BC6F5B /* SearchOperation.mm */; }; - 976BAEBD2849056B0049404F /* SearchOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B3998F2467626A00BC6F5B /* SearchOperation.swift */; }; - 976BAEBE284905760049404F /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C13787284572AC00386C04 /* SearchViewModel.swift */; }; - 976D90DB281584BF00CC7D29 /* FlavorTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A2FCD277FB03F00BD4320 /* FlavorTag.swift */; }; - 976D90DC281586B400CC7D29 /* ZimFileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 973A2FD72780024600BD4320 /* ZimFileCell.swift */; }; - 976D90E428159BFA00CC7D29 /* Favicon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B0737527825E3D007C7DF3 /* Favicon.swift */; }; - 976D90E92815D63A00CC7D29 /* ZimFilesNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976D90E72815D63A00CC7D29 /* ZimFilesNew.swift */; }; - 976F5EC62A97909100938490 /* BrowserTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 976F5EC52A97909100938490 /* BrowserTab.swift */; }; - 977DD4462AA570450001D6CC /* ArticleShortcutButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD4452AA570450001D6CC /* ArticleShortcutButtons.swift */; }; - 977DD4492AA617680001D6CC /* SplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD4482AA617680001D6CC /* SplitViewController.swift */; }; - 977DD44B2AA617A40001D6CC /* SidebarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD44A2AA617A40001D6CC /* SidebarViewController.swift */; }; - 977DD44D2AA617DA0001D6CC /* CompactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 977DD44C2AA617DA0001D6CC /* CompactViewController.swift */; }; - 97909270286BF0BB002B7AA5 /* Formatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9790926E286BF0BB002B7AA5 /* Formatter.swift */; }; - 9790CA5A28A05EBB00D39FC6 /* ZimFilesCategories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9790CA5828A05EBB00D39FC6 /* ZimFilesCategories.swift */; }; - 979D3A7C284159BF00E396B8 /* injection.js in Resources */ = {isa = PBXBuildFile; fileRef = 9735B88B279D9A74005F0D1A /* injection.js */; }; - 97B44897210FBC2C0004B056 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B44896210FBC2C0004B056 /* AppDelegate.swift */; }; - 97B44899210FBC2C0004B056 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97B44898210FBC2C0004B056 /* ViewController.swift */; }; - 97B4489C210FBC2C0004B056 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97B4489A210FBC2C0004B056 /* Main.storyboard */; }; - 97B4489E210FBC2E0004B056 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97B4489D210FBC2E0004B056 /* Assets.xcassets */; }; - 97B448A1210FBC2E0004B056 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97B4489F210FBC2E0004B056 /* LaunchScreen.storyboard */; }; - 97BD6C9D2886E06B004A8532 /* HTMLParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97BD6C9B2886E06B004A8532 /* HTMLParser.swift */; }; - 97DA90D82975B0C100738365 /* LibraryRefreshViewModelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DA90D72975B0C100738365 /* LibraryRefreshViewModelTest.swift */; }; - 97DE2B9C2839D39100C63D9B /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97255D8B273608C3002B995B /* WebView.swift */; }; - 97DE2B9F2839D7A200C63D9B /* WebKitHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9779A73A2456796B00F6F6FF /* WebKitHandler.swift */; }; - 97DE2BA02839D7AA00C63D9B /* FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97FD2F5E251EA07B0034927C /* FeatureFlags.swift */; }; - 97DE2BA3283A8E5C00C63D9B /* LibraryViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DE2BA1283A8E5C00C63D9B /* LibraryViewModel.swift */; }; - 97DE2BA6283A944100C63D9B /* GridCommon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97DE2BA4283A944100C63D9B /* GridCommon.swift */; }; - 97DE2BAD283B133700C63D9B /* wikipedia_dark.css in Resources */ = {isa = PBXBuildFile; fileRef = 970885D0271339A300C5795C /* wikipedia_dark.css */; }; - 97E88F4D2AE407350037F0E5 /* CoreKiwix.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97E88F4C2AE407320037F0E5 /* CoreKiwix.xcframework */; settings = {ATTRIBUTES = (Required, ); }; }; - 97F3333028AFC1A2007FF53C /* SearchResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97F3332E28AFC1A2007FF53C /* SearchResults.swift */; }; - 97FB4ECE28B4E221003FB524 /* SwiftUIBackports in Frameworks */ = {isa = PBXBuildFile; productRef = 97FB4ECD28B4E221003FB524 /* SwiftUIBackports */; }; - 980179512B0DF42100E8E1E2 /* Brand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 980179502B0DF42100E8E1E2 /* Brand.swift */; }; - 980179542B0E402C00E8E1E2 /* kiwix.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */; }; - 983A3F562B129F6B000E7A51 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 983A3F552B129F6B000E7A51 /* Assets.xcassets */; }; - 983D22672B16ABB6005EBAF1 /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 983D22662B16ABB6005EBAF1 /* LoadingView.swift */; }; - 983ED7192B08AFE700409078 /* Kiwix-Bridging-Header.h in Sources */ = {isa = PBXBuildFile; fileRef = 9779A5D02456796A00F6F6FF /* Kiwix-Bridging-Header.h */; platformFilter = ios; }; - 988208062B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207E92B2CF57A00D6B1AE /* Localizable.strings */; }; - 988208072B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207EC2B2CF57A00D6B1AE /* Localizable.strings */; }; - 988208082B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207EF2B2CF57A00D6B1AE /* Localizable.strings */; }; - 988208092B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207F22B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080A2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207F52B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080B2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207F82B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080D2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988207FE2B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080E2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988208012B2CF57A00D6B1AE /* Localizable.strings */; }; - 9882080F2B2CF57A00D6B1AE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 988208042B2CF57A00D6B1AE /* Localizable.strings */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 97008ABE2974A5BF0076E60C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 97A2AB801C1B80FF00052E74 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 972DE4A52814A3D8004FD9B9; - remoteInfo = Kiwix; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 97B448AB2110A5480004B056 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; - 97008AB42974A5A70076E60C /* WikiMed.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WikiMed.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97008ABA2974A5BF0076E60C /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 97008ABC2974A5BF0076E60C /* OPDSParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OPDSParserTests.swift; sourceTree = ""; }; - 9707541A23C2D3AB0076B74E /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; - 970885D0271339A300C5795C /* wikipedia_dark.css */ = {isa = PBXFileReference; lastKnownFileType = text.css; path = wikipedia_dark.css; sourceTree = ""; }; - 9709C0972A8E4C5700E4564C /* Commands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Commands.swift; sourceTree = ""; }; - 97121EBC28849F0000371AEB /* ZimFileMissingIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileMissingIndicator.swift; sourceTree = ""; }; - 9713F7782AE416E5007DD9EC /* CoreKiwix.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = CoreKiwix.modulemap; sourceTree = ""; }; - 97176AD12A4FBD710093E3B0 /* BrowserViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserViewModel.swift; sourceTree = ""; }; - 972096E62AE421C300B378B0 /* Attribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Attribute.swift; sourceTree = ""; }; - 9721BBB928427A93005C910D /* Bookmarks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bookmarks.swift; sourceTree = ""; }; - 9724FC2E28D5F5BE001B7DD2 /* BookmarkContextMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkContextMenu.swift; sourceTree = ""; }; - 97255D8B273608C3002B995B /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; }; - 972727A92A89122F00BCAF75 /* App_macOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App_macOS.swift; sourceTree = ""; }; - 972727AD2A897FAA00BCAF75 /* GridSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridSection.swift; sourceTree = ""; }; - 972727B02A898B9700BCAF75 /* NavigationButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationButtons.swift; sourceTree = ""; }; - 972727B62A898BF900BCAF75 /* OutlineButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutlineButton.swift; sourceTree = ""; }; - 972727B82A898C1A00BCAF75 /* BookmarkButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarkButton.swift; sourceTree = ""; }; - 972727BA2A89930600BCAF75 /* ExternalLinkHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalLinkHandler.swift; sourceTree = ""; }; - 972727BC2A8A518D00BCAF75 /* SafariView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariView.swift; sourceTree = ""; }; - 972727BE2A8A52DC00BCAF75 /* AlertHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertHandler.swift; sourceTree = ""; }; - 972DE4722814A116004FD9B9 /* Entities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Entities.swift; sourceTree = ""; }; - 972DE4A62814A3D8004FD9B9 /* Kiwix.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Kiwix.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 972DE4C12814A961004FD9B9 /* Library.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Library.swift; sourceTree = ""; }; - 973206522AA25D07003A1A8F /* ViewModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModifiers.swift; sourceTree = ""; }; - 973206542AA28FF7003A1A8F /* TabsManagerButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabsManagerButton.swift; sourceTree = ""; }; - 97341C6C2852248500BC273E /* DownloadTaskCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadTaskCell.swift; sourceTree = ""; }; - 9735B88B279D9A74005F0D1A /* injection.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = injection.js; sourceTree = ""; }; - 9735D0B92775363900C7D495 /* DataModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DataModel.xcdatamodel; sourceTree = ""; }; - 9735D0BB2775594700C7D495 /* Database.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = ""; }; - 9735D0BF27777E3300C7D495 /* Enum.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Enum.swift; sourceTree = ""; }; - 973A0DE2281D80E300B41E71 /* ZimFileDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileDetail.swift; sourceTree = ""; }; - 973A0DE5281DC8F400B41E71 /* DownloadService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadService.swift; sourceTree = ""; }; - 973A0DE9281DDBB600B41E71 /* ZimFilesDownloads.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesDownloads.swift; sourceTree = ""; }; - 973A0DEF282E981200B41E71 /* ZimFileRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileRow.swift; sourceTree = ""; }; - 973A0DFB283100C300B41E71 /* ZimFilesOpened.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesOpened.swift; sourceTree = ""; }; - 973A2FC4277EAA2500BD4320 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - 973A2FCD277FB03F00BD4320 /* FlavorTag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlavorTag.swift; sourceTree = ""; }; - 973A2FD72780024600BD4320 /* ZimFileCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFileCell.swift; sourceTree = ""; }; - 9744068828CF65AE00916BD4 /* LibraryOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryOperations.swift; sourceTree = ""; }; - 9745AB5828E9257400067FF6 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; - 97486D05284A36790096E4DD /* ArticleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleCell.swift; sourceTree = ""; }; - 97486D07284A42B90096E4DD /* SearchResultRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultRow.swift; sourceTree = ""; }; - 97486D09284B96690096E4DD /* CellBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellBackground.swift; sourceTree = ""; }; - 97486D0C284C0EBC0096E4DD /* Welcome.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Welcome.swift; sourceTree = ""; }; - 974C339E2853D4AC00DF6F4C /* About.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = About.swift; sourceTree = ""; }; - 974C33A7285589E900DF6F4C /* Patches.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Patches.swift; sourceTree = ""; }; - 974E7EE32930201500BDF59C /* ZimFileService.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ZimFileService.mm; sourceTree = ""; }; - 974E7EE42930201500BDF59C /* ZimFileService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZimFileService.h; sourceTree = ""; }; - 974E7EE52930201500BDF59C /* ZimFileService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZimFileService.swift; sourceTree = ""; }; - 975088B228763B6900273181 /* SheetContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SheetContent.swift; sourceTree = ""; }; - 975088B9287BBDFE00273181 /* LanguageSelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageSelector.swift; sourceTree = ""; }; - 975088BC287DA10800273181 /* LibraryLastRefreshTime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryLastRefreshTime.swift; sourceTree = ""; }; - 9753D947285B55F100A626CC /* DefaultKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultKeys.swift; sourceTree = ""; }; - 975FDB061F608F4100A10E8C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - 97677B562A8FA80000F523AB /* FileImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileImport.swift; sourceTree = ""; }; - 9767E7852A72A21300C5082D /* App_iOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App_iOS.swift; sourceTree = ""; }; - 9767E78B2A75420400C5082D /* TabLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabLabel.swift; sourceTree = ""; }; - 9767E78F2A756CEE00C5082D /* NavigationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationViewModel.swift; sourceTree = ""; }; - 976A65B22659489F009A97C6 /* SearchResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResult.swift; sourceTree = ""; }; - 976D90E72815D63A00CC7D29 /* ZimFilesNew.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesNew.swift; sourceTree = ""; }; - 976F5EC52A97909100938490 /* BrowserTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserTab.swift; sourceTree = ""; }; - 9779A5A32456793500F6F6FF /* OPDSParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OPDSParser.swift; sourceTree = ""; }; - 9779A5A42456793500F6F6FF /* OPDSParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPDSParser.h; sourceTree = ""; }; - 9779A5A52456793500F6F6FF /* OPDSParser.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OPDSParser.mm; sourceTree = ""; }; - 9779A5AC2456793600F6F6FF /* ZimFileMetaData.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ZimFileMetaData.mm; sourceTree = ""; }; - 9779A5AD2456793600F6F6FF /* ZimFileMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZimFileMetaData.h; sourceTree = ""; }; - 9779A5CF2456796A00F6F6FF /* DirectoryMonitor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DirectoryMonitor.swift; sourceTree = ""; }; - 9779A5D02456796A00F6F6FF /* Kiwix-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Kiwix-Bridging-Header.h"; sourceTree = ""; }; - 9779A73A2456796B00F6F6FF /* WebKitHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebKitHandler.swift; sourceTree = ""; }; - 9779A7E224567A5A00F6F6FF /* Log.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; - 977DD4452AA570450001D6CC /* ArticleShortcutButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleShortcutButtons.swift; sourceTree = ""; }; - 977DD4482AA617680001D6CC /* SplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitViewController.swift; sourceTree = ""; }; - 977DD44A2AA617A40001D6CC /* SidebarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarViewController.swift; sourceTree = ""; }; - 977DD44C2AA617DA0001D6CC /* CompactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactViewController.swift; sourceTree = ""; }; - 9790926E286BF0BB002B7AA5 /* Formatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Formatter.swift; sourceTree = ""; }; - 9790CA5828A05EBB00D39FC6 /* ZimFilesCategories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZimFilesCategories.swift; sourceTree = ""; }; - 97B0737527825E3D007C7DF3 /* Favicon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Favicon.swift; sourceTree = ""; }; - 97B3998824673FE000BC6F5B /* SearchOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchOperation.h; sourceTree = ""; }; - 97B3998924673FE000BC6F5B /* SearchOperation.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SearchOperation.mm; sourceTree = ""; }; - 97B3998B2467561900BC6F5B /* SearchResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchResult.h; sourceTree = ""; }; - 97B3998C2467561900BC6F5B /* SearchResult.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SearchResult.m; sourceTree = ""; }; - 97B3998F2467626A00BC6F5B /* SearchOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOperation.swift; sourceTree = ""; }; - 97B3BACD2736CE3500A23F49 /* URL.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URL.swift; sourceTree = ""; }; - 97B44896210FBC2C0004B056 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 97B44898210FBC2C0004B056 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 97B4489B210FBC2C0004B056 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97B4489D210FBC2E0004B056 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97B448A0210FBC2E0004B056 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97B448A2210FBC2E0004B056 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 97B707042974637200562392 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 97BD6C9B2886E06B004A8532 /* HTMLParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTMLParser.swift; sourceTree = ""; }; - 97C13787284572AC00386C04 /* SearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = ""; }; - 97C575F3202CB0E800E37502 /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; }; - 97DA90D72975B0C100738365 /* LibraryRefreshViewModelTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryRefreshViewModelTest.swift; sourceTree = ""; }; - 97DE2BA1283A8E5C00C63D9B /* LibraryViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryViewModel.swift; sourceTree = ""; }; - 97DE2BA4283A944100C63D9B /* GridCommon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridCommon.swift; sourceTree = ""; }; - 97E88F4C2AE407320037F0E5 /* CoreKiwix.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = CoreKiwix.xcframework; sourceTree = SOURCE_ROOT; }; - 97E94B22271EF250005B0295 /* Kiwix.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Kiwix.entitlements; sourceTree = ""; }; - 97F3332E28AFC1A2007FF53C /* SearchResults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResults.swift; sourceTree = ""; }; - 97F425C127151A0D00D0F738 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; - 97F6CC5020BD960F005CDBD2 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; - 97FB4B0A27B819A90055F86E /* Message.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - 97FD2F5E251EA07B0034927C /* FeatureFlags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlags.swift; sourceTree = ""; }; - 980179502B0DF42100E8E1E2 /* Brand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Brand.swift; sourceTree = ""; }; - 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = kiwix.xcconfig; sourceTree = ""; }; - 983A3F552B129F6B000E7A51 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 983D22662B16ABB6005EBAF1 /* LoadingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = ""; }; - 988207EA2B2CF57A00D6B1AE /* skr-arab */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "skr-arab"; path = Localizable.strings; sourceTree = ""; }; - 988207ED2B2CF57A00D6B1AE /* zh-hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-hant"; path = Localizable.strings; sourceTree = ""; }; - 988207F02B2CF57A00D6B1AE /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = Localizable.strings; sourceTree = ""; }; - 988207F32B2CF57A00D6B1AE /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Localizable.strings; sourceTree = ""; }; - 988207F62B2CF57A00D6B1AE /* hi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hi; path = Localizable.strings; sourceTree = ""; }; - 988207F92B2CF57A00D6B1AE /* lb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lb; path = Localizable.strings; sourceTree = ""; }; - 988207FF2B2CF57A00D6B1AE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Localizable.strings; sourceTree = ""; }; - 988208022B2CF57A00D6B1AE /* mk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = mk; path = Localizable.strings; sourceTree = ""; }; - 988208052B2CF57A00D6B1AE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Localizable.strings; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97008AB72974A5BF0076E60C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 972DE4A32814A3D8004FD9B9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 97E88F4D2AE407350037F0E5 /* CoreKiwix.xcframework in Frameworks */, - 975346C42AC30CFD000DECB6 /* OrderedCollections in Frameworks */, - 97FB4ECE28B4E221003FB524 /* SwiftUIBackports in Frameworks */, - 9753D94B285B56C900A626CC /* Defaults in Frameworks */, - 976BAEBA284903EA0049404F /* Fuzi in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97B44891210FBC2C0004B056 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3B93EAF9B5C5AA23046BDEAC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 97E88F4C2AE407320037F0E5 /* CoreKiwix.xcframework */, - 9707541A23C2D3AB0076B74E /* SwiftUI.framework */, - 97F6CC5020BD960F005CDBD2 /* MapKit.framework */, - 975FDB061F608F4100A10E8C /* WebKit.framework */, - 97C575F3202CB0E800E37502 /* NotificationCenter.framework */, - 97F425C127151A0D00D0F738 /* QuickLook.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 97008ABB2974A5BF0076E60C /* Tests */ = { - isa = PBXGroup; - children = ( - 97008ABC2974A5BF0076E60C /* OPDSParserTests.swift */, - 97DA90D72975B0C100738365 /* LibraryRefreshViewModelTest.swift */, - ); - path = Tests; - sourceTree = ""; - }; - 9706555A2473682C00A51319 /* Utilities */ = { - isa = PBXGroup; - children = ( - 97FD2F5E251EA07B0034927C /* FeatureFlags.swift */, - 9779A7E224567A5A00F6F6FF /* Log.swift */, - 97B3BACD2736CE3500A23F49 /* URL.swift */, - 9779A73A2456796B00F6F6FF /* WebKitHandler.swift */, - 8E43964B2B02E4C6007F0BC4 /* String+Extension.swift */, - ); - path = Utilities; - sourceTree = ""; - }; - 970EC39E23BCE7F5008DCA27 /* Model */ = { - isa = PBXGroup; - children = ( - 9779A5AB2456793600F6F6FF /* Entities */, - 972DE4BF2814A5E3004FD9B9 /* OPDSParser */, - 9706555A2473682C00A51319 /* Utilities */, - 974E7EE22930201500BDF59C /* ZimFileService */, - 9735D0B82775363900C7D495 /* DataModel.xcdatamodeld */, - 973A0DE5281DC8F400B41E71 /* DownloadService.swift */, - 980179502B0DF42100E8E1E2 /* Brand.swift */, - ); - path = Model; - sourceTree = ""; - }; - 972727A82A883FB600BCAF75 /* ViewModel */ = { - isa = PBXGroup; - children = ( - 9767E78F2A756CEE00C5082D /* NavigationViewModel.swift */, - 97176AD12A4FBD710093E3B0 /* BrowserViewModel.swift */, - 97C13787284572AC00386C04 /* SearchViewModel.swift */, - 97DE2BA1283A8E5C00C63D9B /* LibraryViewModel.swift */, - ); - path = ViewModel; - sourceTree = ""; - }; - 972727AF2A898B7400BCAF75 /* Buttons */ = { - isa = PBXGroup; - children = ( - 972727B02A898B9700BCAF75 /* NavigationButtons.swift */, - 972727B62A898BF900BCAF75 /* OutlineButton.swift */, - 972727B82A898C1A00BCAF75 /* BookmarkButton.swift */, - 977DD4452AA570450001D6CC /* ArticleShortcutButtons.swift */, - 973206542AA28FF7003A1A8F /* TabsManagerButton.swift */, - ); - path = Buttons; - sourceTree = ""; - }; - 972DE4BF2814A5E3004FD9B9 /* OPDSParser */ = { - isa = PBXGroup; - children = ( - 9779A5A42456793500F6F6FF /* OPDSParser.h */, - 9779A5A52456793500F6F6FF /* OPDSParser.mm */, - 9779A5A32456793500F6F6FF /* OPDSParser.swift */, - ); - path = OPDSParser; - sourceTree = ""; - }; - 9735D0B72775362000C7D495 /* Model */ = { - isa = PBXGroup; - children = ( - 97B3998724673FCA00BC6F5B /* SearchOperation */, - 9735D0BB2775594700C7D495 /* Database.swift */, - 9753D947285B55F100A626CC /* DefaultKeys.swift */, - 9779A5CF2456796A00F6F6FF /* DirectoryMonitor.swift */, - 9735D0BF27777E3300C7D495 /* Enum.swift */, - 9790926E286BF0BB002B7AA5 /* Formatter.swift */, - 97BD6C9B2886E06B004A8532 /* HTMLParser.swift */, - 9744068828CF65AE00916BD4 /* LibraryOperations.swift */, - ); - path = Model; - sourceTree = ""; - }; - 973A0DF2282FED6F00B41E71 /* ViewModifiers */ = { - isa = PBXGroup; - children = ( - 972727BE2A8A52DC00BCAF75 /* AlertHandler.swift */, - 9724FC2E28D5F5BE001B7DD2 /* BookmarkContextMenu.swift */, - 97486D09284B96690096E4DD /* CellBackground.swift */, - 972727BA2A89930600BCAF75 /* ExternalLinkHandler.swift */, - 97677B562A8FA80000F523AB /* FileImport.swift */, - 97DE2BA4283A944100C63D9B /* GridCommon.swift */, - 973206522AA25D07003A1A8F /* ViewModifiers.swift */, - ); - path = ViewModifiers; - sourceTree = ""; - }; - 9745AB5628E9235100067FF6 /* Settings */ = { - isa = PBXGroup; - children = ( - 9745AB5828E9257400067FF6 /* Settings.swift */, - 975088B9287BBDFE00273181 /* LanguageSelector.swift */, - 974C339E2853D4AC00DF6F4C /* About.swift */, - ); - path = Settings; - sourceTree = ""; - }; - 974E7EE22930201500BDF59C /* ZimFileService */ = { - isa = PBXGroup; - children = ( - 974E7EE42930201500BDF59C /* ZimFileService.h */, - 974E7EE32930201500BDF59C /* ZimFileService.mm */, - 974E7EE52930201500BDF59C /* ZimFileService.swift */, - ); - path = ZimFileService; - sourceTree = ""; - }; - 975088BF287EEE2900273181 /* BuildingBlocks */ = { - isa = PBXGroup; - children = ( - 983D22662B16ABB6005EBAF1 /* LoadingView.swift */, - 97486D05284A36790096E4DD /* ArticleCell.swift */, - 972096E62AE421C300B378B0 /* Attribute.swift */, - 97341C6C2852248500BC273E /* DownloadTaskCell.swift */, - 97B0737527825E3D007C7DF3 /* Favicon.swift */, - 973A2FCD277FB03F00BD4320 /* FlavorTag.swift */, - 972727AD2A897FAA00BCAF75 /* GridSection.swift */, - 975088BC287DA10800273181 /* LibraryLastRefreshTime.swift */, - 97FB4B0A27B819A90055F86E /* Message.swift */, - 972727BC2A8A518D00BCAF75 /* SafariView.swift */, - 97486D07284A42B90096E4DD /* SearchResultRow.swift */, - 975088B228763B6900273181 /* SheetContent.swift */, - 9767E78B2A75420400C5082D /* TabLabel.swift */, - 97255D8B273608C3002B995B /* WebView.swift */, - 973A2FD72780024600BD4320 /* ZimFileCell.swift */, - 97121EBC28849F0000371AEB /* ZimFileMissingIndicator.swift */, - 973A0DEF282E981200B41E71 /* ZimFileRow.swift */, - ); - path = BuildingBlocks; - sourceTree = ""; - }; - 9779A5AB2456793600F6F6FF /* Entities */ = { - isa = PBXGroup; - children = ( - 97BF1F8E27CE5EEF00A94E06 /* SearchResult */, - 97B7070629748CAA00562392 /* ZimFileMetaData */, - 973A2FC4277EAA2500BD4320 /* Errors.swift */, - 972DE4722814A116004FD9B9 /* Entities.swift */, - ); - path = Entities; - sourceTree = ""; - }; - 97A092782A54D088009C039E /* Library */ = { - isa = PBXGroup; - children = ( - 972DE4C12814A961004FD9B9 /* Library.swift */, - 973A0DFB283100C300B41E71 /* ZimFilesOpened.swift */, - 9790CA5828A05EBB00D39FC6 /* ZimFilesCategories.swift */, - 973A0DE9281DDBB600B41E71 /* ZimFilesDownloads.swift */, - 976D90E72815D63A00CC7D29 /* ZimFilesNew.swift */, - 973A0DE2281D80E300B41E71 /* ZimFileDetail.swift */, - ); - path = Library; - sourceTree = ""; - }; - 97A2AB7F1C1B80FF00052E74 = { - isa = PBXGroup; - children = ( - 970EC39E23BCE7F5008DCA27 /* Model */, - 972727A82A883FB600BCAF75 /* ViewModel */, - 97E4E69C28B8FCC70012227D /* Views */, - 97B172F22A48F39200039108 /* App */, - 97E94B18271EF24D005B0295 /* SwiftUI */, - 97E94B26271EF359005B0295 /* Support */, - 97B44895210FBC2C0004B056 /* WikiMed */, - 97008ABB2974A5BF0076E60C /* Tests */, - 3B93EAF9B5C5AA23046BDEAC /* Frameworks */, - 972DE4A62814A3D8004FD9B9 /* Kiwix.app */, - 97008AB42974A5A70076E60C /* WikiMed.app */, - 97008ABA2974A5BF0076E60C /* Tests.xctest */, - ); - sourceTree = ""; - wrapsLines = 0; - }; - 97B172F22A48F39200039108 /* App */ = { - isa = PBXGroup; - children = ( - 972727A92A89122F00BCAF75 /* App_macOS.swift */, - 9767E7852A72A21300C5082D /* App_iOS.swift */, - 977DD4482AA617680001D6CC /* SplitViewController.swift */, - 977DD44A2AA617A40001D6CC /* SidebarViewController.swift */, - 977DD44C2AA617DA0001D6CC /* CompactViewController.swift */, - ); - path = App; - sourceTree = ""; - }; - 97B3998724673FCA00BC6F5B /* SearchOperation */ = { - isa = PBXGroup; - children = ( - 97B3998824673FE000BC6F5B /* SearchOperation.h */, - 97B3998924673FE000BC6F5B /* SearchOperation.mm */, - 97B3998F2467626A00BC6F5B /* SearchOperation.swift */, - ); - path = SearchOperation; - sourceTree = ""; - }; - 97B44895210FBC2C0004B056 /* WikiMed */ = { - isa = PBXGroup; - children = ( - 97B44896210FBC2C0004B056 /* AppDelegate.swift */, - 97B44898210FBC2C0004B056 /* ViewController.swift */, - 97B4489A210FBC2C0004B056 /* Main.storyboard */, - 97B4489D210FBC2E0004B056 /* Assets.xcassets */, - 97B4489F210FBC2E0004B056 /* LaunchScreen.storyboard */, - 97B448A2210FBC2E0004B056 /* Info.plist */, - ); - path = WikiMed; - sourceTree = ""; - }; - 97B7070629748CAA00562392 /* ZimFileMetaData */ = { - isa = PBXGroup; - children = ( - 9779A5AD2456793600F6F6FF /* ZimFileMetaData.h */, - 9779A5AC2456793600F6F6FF /* ZimFileMetaData.mm */, - ); - path = ZimFileMetaData; - sourceTree = ""; - }; - 97BF1F8E27CE5EEF00A94E06 /* SearchResult */ = { - isa = PBXGroup; - children = ( - 97B3998B2467561900BC6F5B /* SearchResult.h */, - 97B3998C2467561900BC6F5B /* SearchResult.m */, - 976A65B22659489F009A97C6 /* SearchResult.swift */, - ); - name = SearchResult; - sourceTree = ""; - }; - 97E4E69C28B8FCC70012227D /* Views */ = { - isa = PBXGroup; - children = ( - 972727AF2A898B7400BCAF75 /* Buttons */, - 973A0DF2282FED6F00B41E71 /* ViewModifiers */, - 975088BF287EEE2900273181 /* BuildingBlocks */, - 97A092782A54D088009C039E /* Library */, - 9745AB5628E9235100067FF6 /* Settings */, - 9721BBB928427A93005C910D /* Bookmarks.swift */, - 976F5EC52A97909100938490 /* BrowserTab.swift */, - 97F3332E28AFC1A2007FF53C /* SearchResults.swift */, - 97486D0C284C0EBC0096E4DD /* Welcome.swift */, - 9709C0972A8E4C5700E4564C /* Commands.swift */, - ); - path = Views; - sourceTree = ""; - }; - 97E94B18271EF24D005B0295 /* SwiftUI */ = { - isa = PBXGroup; - children = ( - 9735D0B72775362000C7D495 /* Model */, - 974C33A7285589E900DF6F4C /* Patches.swift */, - ); - path = SwiftUI; - sourceTree = ""; - }; - 97E94B26271EF359005B0295 /* Support */ = { - isa = PBXGroup; - children = ( - 988207FD2B2CF57A00D6B1AE /* de.lproj */, - 988208032B2CF57A00D6B1AE /* en.lproj */, - 988207EE2B2CF57A00D6B1AE /* he.lproj */, - 988207F42B2CF57A00D6B1AE /* hi.lproj */, - 988207F12B2CF57A00D6B1AE /* it.lproj */, - 988207F72B2CF57A00D6B1AE /* lb.lproj */, - 988208002B2CF57A00D6B1AE /* mk.lproj */, - 988207E82B2CF57A00D6B1AE /* skr-arab.lproj */, - 988207EB2B2CF57A00D6B1AE /* zh-hant.lproj */, - 983A3F552B129F6B000E7A51 /* Assets.xcassets */, - 9713F7782AE416E5007DD9EC /* CoreKiwix.modulemap */, - 97B707042974637200562392 /* Info.plist */, - 9735B88B279D9A74005F0D1A /* injection.js */, - 97E94B22271EF250005B0295 /* Kiwix.entitlements */, - 9779A5D02456796A00F6F6FF /* Kiwix-Bridging-Header.h */, - 970885D0271339A300C5795C /* wikipedia_dark.css */, - 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */, - ); - path = Support; - sourceTree = ""; - }; - 988207E82B2CF57A00D6B1AE /* skr-arab.lproj */ = { - isa = PBXGroup; - children = ( - 988207E92B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = "skr-arab.lproj"; - sourceTree = ""; - }; - 988207EB2B2CF57A00D6B1AE /* zh-hant.lproj */ = { - isa = PBXGroup; - children = ( - 988207EC2B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = "zh-hant.lproj"; - sourceTree = ""; - }; - 988207EE2B2CF57A00D6B1AE /* he.lproj */ = { - isa = PBXGroup; - children = ( - 988207EF2B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = he.lproj; - sourceTree = ""; - }; - 988207F12B2CF57A00D6B1AE /* it.lproj */ = { - isa = PBXGroup; - children = ( - 988207F22B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = it.lproj; - sourceTree = ""; - }; - 988207F42B2CF57A00D6B1AE /* hi.lproj */ = { - isa = PBXGroup; - children = ( - 988207F52B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = hi.lproj; - sourceTree = ""; - }; - 988207F72B2CF57A00D6B1AE /* lb.lproj */ = { - isa = PBXGroup; - children = ( - 988207F82B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = lb.lproj; - sourceTree = ""; - }; - 988207FD2B2CF57A00D6B1AE /* de.lproj */ = { - isa = PBXGroup; - children = ( - 988207FE2B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = de.lproj; - sourceTree = ""; - }; - 988208002B2CF57A00D6B1AE /* mk.lproj */ = { - isa = PBXGroup; - children = ( - 988208012B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = mk.lproj; - sourceTree = ""; - }; - 988208032B2CF57A00D6B1AE /* en.lproj */ = { - isa = PBXGroup; - children = ( - 988208042B2CF57A00D6B1AE /* Localizable.strings */, - ); - path = en.lproj; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 97008AB92974A5BF0076E60C /* Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97008AC22974A5BF0076E60C /* Build configuration list for PBXNativeTarget "Tests" */; - buildPhases = ( - 97008AB62974A5BF0076E60C /* Sources */, - 97008AB72974A5BF0076E60C /* Frameworks */, - 97008AB82974A5BF0076E60C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 97008ABF2974A5BF0076E60C /* PBXTargetDependency */, - ); - name = Tests; - productName = Tests; - productReference = 97008ABA2974A5BF0076E60C /* Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 972DE4A52814A3D8004FD9B9 /* Kiwix */ = { - isa = PBXNativeTarget; - buildConfigurationList = 972DE4B32814A3D9004FD9B9 /* Build configuration list for PBXNativeTarget "Kiwix" */; - buildPhases = ( - 97E88F502AE409630037F0E5 /* Run Script */, - 972096E52AE41ED000B378B0 /* Run Script */, - 972DE4A22814A3D8004FD9B9 /* Sources */, - 972DE4A32814A3D8004FD9B9 /* Frameworks */, - 972DE4A42814A3D8004FD9B9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Kiwix; - packageProductDependencies = ( - 976BAEB9284903EA0049404F /* Fuzi */, - 9753D94A285B56C900A626CC /* Defaults */, - 97FB4ECD28B4E221003FB524 /* SwiftUIBackports */, - 975346C32AC30CFD000DECB6 /* OrderedCollections */, - ); - productName = iOS_SwiftUI; - productReference = 972DE4A62814A3D8004FD9B9 /* Kiwix.app */; - productType = "com.apple.product-type.application"; - }; - 97B44893210FBC2C0004B056 /* WikiMed */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97B448A3210FBC2E0004B056 /* Build configuration list for PBXNativeTarget "WikiMed" */; - buildPhases = ( - 97B44890210FBC2C0004B056 /* Sources */, - 97B44891210FBC2C0004B056 /* Frameworks */, - 97B44892210FBC2C0004B056 /* Resources */, - 97B448AB2110A5480004B056 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WikiMed; - productName = WikiMed; - productReference = 97008AB42974A5A70076E60C /* WikiMed.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97A2AB801C1B80FF00052E74 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastSwiftUpdateCheck = 1420; - LastUpgradeCheck = 1500; - ORGANIZATIONNAME = Kiwix; - TargetAttributes = { - 97008AB92974A5BF0076E60C = { - CreatedOnToolsVersion = 14.2; - TestTargetID = 972DE4A52814A3D8004FD9B9; - }; - 972DE4A52814A3D8004FD9B9 = { - CreatedOnToolsVersion = 13.3; - }; - 97B44893210FBC2C0004B056 = { - CreatedOnToolsVersion = 9.4.1; - DevelopmentTeam = L7HWM3SP3L; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 97A2AB831C1B80FF00052E74 /* Build configuration list for PBXProject "Kiwix" */; - compatibilityVersion = "Xcode 13.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "skr-arab", - "skr-Arab", - "zh-hant", - "zh-Hant", - he, - it, - hi, - lb, - de, - mk, - ); - mainGroup = 97A2AB7F1C1B80FF00052E74; - packageReferences = ( - 9744657E26F7981500072DC2 /* XCRemoteSwiftPackageReference "Fuzi" */, - 97654724273214530070163D /* XCRemoteSwiftPackageReference "Defaults" */, - 97FB4ECC28B4E221003FB524 /* XCRemoteSwiftPackageReference "SwiftUIBackports" */, - 975346C22AC30CFD000DECB6 /* XCRemoteSwiftPackageReference "swift-collections" */, - ); - productRefGroup = 97A2AB7F1C1B80FF00052E74; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 972DE4A52814A3D8004FD9B9 /* Kiwix */, - 97B44893210FBC2C0004B056 /* WikiMed */, - 97008AB92974A5BF0076E60C /* Tests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 97008AB82974A5BF0076E60C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 972DE4A42814A3D8004FD9B9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 980179542B0E402C00E8E1E2 /* kiwix.xcconfig in Resources */, - 988208062B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080E2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080B2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 988208072B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 988208092B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080A2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 979D3A7C284159BF00E396B8 /* injection.js in Resources */, - 9882080F2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 9882080D2B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 988208082B2CF57A00D6B1AE /* Localizable.strings in Resources */, - 983A3F562B129F6B000E7A51 /* Assets.xcassets in Resources */, - 97DE2BAD283B133700C63D9B /* wikipedia_dark.css in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97B44892210FBC2C0004B056 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97B448A1210FBC2E0004B056 /* LaunchScreen.storyboard in Resources */, - 97B4489E210FBC2E0004B056 /* Assets.xcassets in Resources */, - 97B4489C210FBC2C0004B056 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 972096E52AE41ED000B378B0 /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# SwiftLint\n\nif [[ \"$(uname -m)\" == arm64 ]]; then\n export PATH=\"/opt/homebrew/bin:$PATH\"\nfi\n\nif which swiftlint > /dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; - 97E88F502AE409630037F0E5 /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Copy Clang module map to xcframework for Swift C++ Interoperability \n\ncp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64/Headers/module.modulemap\ncp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap\ncp Support/CoreKiwix.modulemap CoreKiwix.xcframework/macos-arm64_x86_64/Headers/module.modulemap\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 97008AB62974A5BF0076E60C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97DA90D82975B0C100738365 /* LibraryRefreshViewModelTest.swift in Sources */, - 97008ABD2974A5BF0076E60C /* OPDSParserTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 972DE4A22814A3D8004FD9B9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 983ED7192B08AFE700409078 /* Kiwix-Bridging-Header.h in Sources */, - 972DE4BB2814A5A4004FD9B9 /* Errors.swift in Sources */, - 8E43964C2B02E4C6007F0BC4 /* String+Extension.swift in Sources */, - 9790CA5A28A05EBB00D39FC6 /* ZimFilesCategories.swift in Sources */, - 97486D08284A42B90096E4DD /* SearchResultRow.swift in Sources */, - 9753D949285B55F100A626CC /* DefaultKeys.swift in Sources */, - 973A0DE4281D80E300B41E71 /* ZimFileDetail.swift in Sources */, - 974E7EE62930201500BDF59C /* ZimFileService.mm in Sources */, - 972727BD2A8A518D00BCAF75 /* SafariView.swift in Sources */, - 976BAEBC2849056B0049404F /* SearchOperation.mm in Sources */, - 97909270286BF0BB002B7AA5 /* Formatter.swift in Sources */, - 9745AB5A28E9257400067FF6 /* Settings.swift in Sources */, - 973206532AA25D07003A1A8F /* ViewModifiers.swift in Sources */, - 97DE2B9C2839D39100C63D9B /* WebView.swift in Sources */, - 973A0DEB281DDBB600B41E71 /* ZimFilesDownloads.swift in Sources */, - 975088BE287DA10800273181 /* LibraryLastRefreshTime.swift in Sources */, - 977DD44B2AA617A40001D6CC /* SidebarViewController.swift in Sources */, - 97486D06284A36790096E4DD /* ArticleCell.swift in Sources */, - 9767E7902A756CEE00C5082D /* NavigationViewModel.swift in Sources */, - 973A0E032831057200B41E71 /* URL.swift in Sources */, - 977DD4462AA570450001D6CC /* ArticleShortcutButtons.swift in Sources */, - 973A0DE8281DD7EB00B41E71 /* Log.swift in Sources */, - 972DE4BC2814A5BE004FD9B9 /* OPDSParser.swift in Sources */, - 974C33A02853D4AC00DF6F4C /* About.swift in Sources */, - 97DE2B9F2839D7A200C63D9B /* WebKitHandler.swift in Sources */, - 97486D0E284C0EBC0096E4DD /* Welcome.swift in Sources */, - 976D90E92815D63A00CC7D29 /* ZimFilesNew.swift in Sources */, - 97659CAC28DF817D002E6CE4 /* SearchResult.swift in Sources */, - 9767E78C2A75420400C5082D /* TabLabel.swift in Sources */, - 972727B92A898C1A00BCAF75 /* BookmarkButton.swift in Sources */, - 972727B72A898BF900BCAF75 /* OutlineButton.swift in Sources */, - 977DD4492AA617680001D6CC /* SplitViewController.swift in Sources */, - 975088B328763B6900273181 /* SheetContent.swift in Sources */, - 97176AD22A4FBD710093E3B0 /* BrowserViewModel.swift in Sources */, - 972DE4B92814A56A004FD9B9 /* Database.swift in Sources */, - 97659CAD28DF817D002E6CE4 /* SearchResult.m in Sources */, - 97F3333028AFC1A2007FF53C /* SearchResults.swift in Sources */, - 972727AE2A897FAA00BCAF75 /* GridSection.swift in Sources */, - 9709C0982A8E4C5700E4564C /* Commands.swift in Sources */, - 972727BF2A8A52DC00BCAF75 /* AlertHandler.swift in Sources */, - 972096E72AE421C300B378B0 /* Attribute.swift in Sources */, - 97341C6E2852248500BC273E /* DownloadTaskCell.swift in Sources */, - 973206552AA28FF7003A1A8F /* TabsManagerButton.swift in Sources */, - 976D90DC281586B400CC7D29 /* ZimFileCell.swift in Sources */, - 97121EBE28849F0000371AEB /* ZimFileMissingIndicator.swift in Sources */, - 977DD44D2AA617DA0001D6CC /* CompactViewController.swift in Sources */, - 975088BB287BBDFE00273181 /* LanguageSelector.swift in Sources */, - 9767E7862A72A21300C5082D /* App_iOS.swift in Sources */, - 972DE4BA2814A590004FD9B9 /* ZimFileMetaData.mm in Sources */, - 97486D0B284B96690096E4DD /* CellBackground.swift in Sources */, - 972DE4B42814A4F6004FD9B9 /* DataModel.xcdatamodeld in Sources */, - 976BAEBD2849056B0049404F /* SearchOperation.swift in Sources */, - 976D90E428159BFA00CC7D29 /* Favicon.swift in Sources */, - 983D22672B16ABB6005EBAF1 /* LoadingView.swift in Sources */, - 976D90DB281584BF00CC7D29 /* FlavorTag.swift in Sources */, - 972DE4BD2814A5BE004FD9B9 /* OPDSParser.mm in Sources */, - 972DE4B52814A502004FD9B9 /* Entities.swift in Sources */, - 9721BBBB28427A93005C910D /* Bookmarks.swift in Sources */, - 974E7EE92930201500BDF59C /* ZimFileService.swift in Sources */, - 973A0DFD283100C300B41E71 /* ZimFilesOpened.swift in Sources */, - 9744068A28CF65AE00916BD4 /* LibraryOperations.swift in Sources */, - 972DE4B62814A502004FD9B9 /* Enum.swift in Sources */, - 9744068728CE263800916BD4 /* DirectoryMonitor.swift in Sources */, - 974C33A9285589E900DF6F4C /* Patches.swift in Sources */, - 973A0DF1282E981200B41E71 /* ZimFileRow.swift in Sources */, - 97DE2BA6283A944100C63D9B /* GridCommon.swift in Sources */, - 972727BB2A89930600BCAF75 /* ExternalLinkHandler.swift in Sources */, - 972DE4C42814AAAE004FD9B9 /* Library.swift in Sources */, - 972727B12A898B9700BCAF75 /* NavigationButtons.swift in Sources */, - 976F5EC62A97909100938490 /* BrowserTab.swift in Sources */, - 9724FC3028D5F5BE001B7DD2 /* BookmarkContextMenu.swift in Sources */, - 976BAEBE284905760049404F /* SearchViewModel.swift in Sources */, - 973A0DE7281DC8F400B41E71 /* DownloadService.swift in Sources */, - 9721BBB72841C16D005C910D /* Message.swift in Sources */, - 97BD6C9D2886E06B004A8532 /* HTMLParser.swift in Sources */, - 980179512B0DF42100E8E1E2 /* Brand.swift in Sources */, - 97677B572A8FA80000F523AB /* FileImport.swift in Sources */, - 972727AA2A89122F00BCAF75 /* App_macOS.swift in Sources */, - 97DE2BA3283A8E5C00C63D9B /* LibraryViewModel.swift in Sources */, - 97DE2BA02839D7AA00C63D9B /* FeatureFlags.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97B44890210FBC2C0004B056 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97B44899210FBC2C0004B056 /* ViewController.swift in Sources */, - 8E43964D2B02E4C6007F0BC4 /* String+Extension.swift in Sources */, - 97B44897210FBC2C0004B056 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 97008ABF2974A5BF0076E60C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 972DE4A52814A3D8004FD9B9 /* Kiwix */; - targetProxy = 97008ABE2974A5BF0076E60C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 97B4489A210FBC2C0004B056 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97B4489B210FBC2C0004B056 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97B4489F210FBC2E0004B056 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97B448A0210FBC2E0004B056 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - 988207E92B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207EA2B2CF57A00D6B1AE /* skr-arab */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207EC2B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207ED2B2CF57A00D6B1AE /* zh-hant */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207EF2B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F02B2CF57A00D6B1AE /* he */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207F22B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F32B2CF57A00D6B1AE /* it */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207F52B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F62B2CF57A00D6B1AE /* hi */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207F82B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207F92B2CF57A00D6B1AE /* lb */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988207FE2B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988207FF2B2CF57A00D6B1AE /* de */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988208012B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988208022B2CF57A00D6B1AE /* mk */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 988208042B2CF57A00D6B1AE /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 988208052B2CF57A00D6B1AE /* en */, - ); - name = Localizable.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 97008AC02974A5BF0076E60C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - GENERATE_INFOPLIST_FILE = YES; - MACOSX_DEPLOYMENT_TARGET = 13.1; - MARKETING_VERSION = 1.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.Tests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix"; - }; - name = Debug; - }; - 97008AC12974A5BF0076E60C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - GENERATE_INFOPLIST_FILE = YES; - MACOSX_DEPLOYMENT_TARGET = 13.1; - MARKETING_VERSION = 1.0; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.Tests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix"; - }; - name = Release; - }; - 972DE4B12814A3D9004FD9B9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Support/Kiwix.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 120; - DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = L7HWM3SP3L; - "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Support/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Kiwix; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.reference"; - INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES; - INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Kiwix needs permission to saves images to your photos app."; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 3.3; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = self.Kiwix; - PRODUCT_NAME = Kiwix; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 972DE4B22814A3D9004FD9B9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 980179532B0E402C00E8E1E2 /* kiwix.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = Support/Kiwix.entitlements; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 120; - DEVELOPMENT_ASSET_PATHS = ""; - DEVELOPMENT_TEAM = L7HWM3SP3L; - "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES; - ENABLE_PREVIEWS = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Support/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Kiwix; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.reference"; - INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES; - INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Kiwix needs permission to saves images to your photos app."; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchKiwix.storyboard; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 3.3; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = self.Kiwix; - PRODUCT_NAME = Kiwix; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 97A2ABB11C1B810000052E74 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - EXCLUDED_ARCHS = ""; - GCC_C_LANGUAGE_STANDARD = c11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_SWIFT_FLAGS = ""; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_OBJC_INTEROP_MODE = objcxx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97A2ABB21C1B810000052E74 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - EXCLUDED_ARCHS = ""; - GCC_C_LANGUAGE_STANDARD = c11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACOSX_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h"; - SWIFT_OBJC_INTEROP_MODE = objcxx; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97B448A4210FBC2E0004B056 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = WikiMed/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.wikimed; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97B448A5210FBC2E0004B056 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = L7HWM3SP3L; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = WikiMed/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.kiwix.wikimed; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 97008AC22974A5BF0076E60C /* Build configuration list for PBXNativeTarget "Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97008AC02974A5BF0076E60C /* Debug */, - 97008AC12974A5BF0076E60C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 972DE4B32814A3D9004FD9B9 /* Build configuration list for PBXNativeTarget "Kiwix" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 972DE4B12814A3D9004FD9B9 /* Debug */, - 972DE4B22814A3D9004FD9B9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97A2AB831C1B80FF00052E74 /* Build configuration list for PBXProject "Kiwix" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97A2ABB11C1B810000052E74 /* Debug */, - 97A2ABB21C1B810000052E74 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97B448A3210FBC2E0004B056 /* Build configuration list for PBXNativeTarget "WikiMed" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97B448A4210FBC2E0004B056 /* Debug */, - 97B448A5210FBC2E0004B056 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - -/* Begin XCRemoteSwiftPackageReference section */ - 9744657E26F7981500072DC2 /* XCRemoteSwiftPackageReference "Fuzi" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/cezheng/Fuzi"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 3.0.0; - }; - }; - 975346C22AC30CFD000DECB6 /* XCRemoteSwiftPackageReference "swift-collections" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/apple/swift-collections.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 1.0.4; - }; - }; - 97654724273214530070163D /* XCRemoteSwiftPackageReference "Defaults" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/sindresorhus/Defaults"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 6.0.0; - }; - }; - 97FB4ECC28B4E221003FB524 /* XCRemoteSwiftPackageReference "SwiftUIBackports" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/shaps80/SwiftUIBackports.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 1.0.0; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - -/* Begin XCSwiftPackageProductDependency section */ - 975346C32AC30CFD000DECB6 /* OrderedCollections */ = { - isa = XCSwiftPackageProductDependency; - package = 975346C22AC30CFD000DECB6 /* XCRemoteSwiftPackageReference "swift-collections" */; - productName = OrderedCollections; - }; - 9753D94A285B56C900A626CC /* Defaults */ = { - isa = XCSwiftPackageProductDependency; - package = 97654724273214530070163D /* XCRemoteSwiftPackageReference "Defaults" */; - productName = Defaults; - }; - 976BAEB9284903EA0049404F /* Fuzi */ = { - isa = XCSwiftPackageProductDependency; - package = 9744657E26F7981500072DC2 /* XCRemoteSwiftPackageReference "Fuzi" */; - productName = Fuzi; - }; - 97FB4ECD28B4E221003FB524 /* SwiftUIBackports */ = { - isa = XCSwiftPackageProductDependency; - package = 97FB4ECC28B4E221003FB524 /* XCRemoteSwiftPackageReference "SwiftUIBackports" */; - productName = SwiftUIBackports; - }; -/* End XCSwiftPackageProductDependency section */ - -/* Begin XCVersionGroup section */ - 9735D0B82775363900C7D495 /* DataModel.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - 9735D0B92775363900C7D495 /* DataModel.xcdatamodel */, - ); - currentVersion = 9735D0B92775363900C7D495 /* DataModel.xcdatamodel */; - name = DataModel.xcdatamodeld; - path = ../SwiftUI/Model/DataModel.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; -/* End XCVersionGroup section */ - }; - rootObject = 97A2AB801C1B80FF00052E74 /* Project object */; -} diff --git a/Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/Kiwix.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 74c6c773..00000000 --- a/Kiwix.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,41 +0,0 @@ -{ - "pins" : [ - { - "identity" : "defaults", - "kind" : "remoteSourceControl", - "location" : "https://github.com/sindresorhus/Defaults", - "state" : { - "revision" : "981ccb0a01c54abbe3c12ccb8226108527bbf115", - "version" : "6.3.0" - } - }, - { - "identity" : "fuzi", - "kind" : "remoteSourceControl", - "location" : "https://github.com/cezheng/Fuzi", - "state" : { - "revision" : "f08c8323da21e985f3772610753bcfc652c2103f", - "version" : "3.1.3" - } - }, - { - "identity" : "swift-collections", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-collections.git", - "state" : { - "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2", - "version" : "1.0.4" - } - }, - { - "identity" : "swiftuibackports", - "kind" : "remoteSourceControl", - "location" : "https://github.com/shaps80/SwiftUIBackports.git", - "state" : { - "revision" : "4cab730480277c5ae6ac3ea8ee02b4845dee4903", - "version" : "1.6.3" - } - } - ], - "version" : 2 -} diff --git a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist b/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist deleted file mode 100644 index 8f2c9a7d..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/7C59A401-F1E8-48BA-8542-425634ADC0DB.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - classNames - - iOSUITests - - testLaunchPerformance() - - com.apple.dt.XCTMetric_ApplicationLaunch-AppLaunch.duration - - baselineAverage - 1.8055 - baselineIntegrationDisplayName - Local Baseline - - - - - - diff --git a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist b/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist deleted file mode 100644 index 92e2206e..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcbaselines/9797431E257BEBAB00D30F03.xcbaseline/Info.plist +++ /dev/null @@ -1,40 +0,0 @@ - - - - - runDestinationsByUUID - - 7C59A401-F1E8-48BA-8542-425634ADC0DB - - localComputer - - busSpeedInMHz - 400 - cpuCount - 1 - cpuKind - Unknown CPU - cpuSpeedInMHz - 3800 - logicalCPUCoresPerPackage - 24 - modelCode - MacPro7,1 - physicalCPUCoresPerPackage - 12 - platformIdentifier - com.apple.platform.macosx - - targetArchitecture - x86_64 - targetDevice - - modelCode - iPad8,9 - platformIdentifier - com.apple.platform.iphonesimulator - - - - - diff --git a/Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme b/Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme deleted file mode 100644 index d285e395..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcschemes/Kiwix.xcscheme +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme b/Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme deleted file mode 100644 index dc9fec02..00000000 --- a/Kiwix.xcodeproj/xcshareddata/xcschemes/WikiMed.xcscheme +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From e0ba8ec18d98eddebef7dc3775738db470eb95c0 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 14:00:34 +0100 Subject: [PATCH 12/20] Add Brewfile --- Brewfile | 9 +++ Brewfile.lock.json | 145 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 Brewfile create mode 100644 Brewfile.lock.json diff --git a/Brewfile b/Brewfile new file mode 100644 index 00000000..68676c03 --- /dev/null +++ b/Brewfile @@ -0,0 +1,9 @@ +brew "pre-commit" +brew "xcodegen" +brew "curl" + +at_exit do + system "pre-commit install" + system "curl -L -o - https://download.kiwix.org/release/libkiwix/libkiwix_xcframework-13.0.0-1.tar.gz | tar -x --strip-components 2" + system "xcodegen" +end \ No newline at end of file diff --git a/Brewfile.lock.json b/Brewfile.lock.json new file mode 100644 index 00000000..8ede2d41 --- /dev/null +++ b/Brewfile.lock.json @@ -0,0 +1,145 @@ +{ + "entries": { + "brew": { + "pre-commit": { + "version": "3.6.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:2bc88b06e4238db4b55e1af64cb7fef785ccec3b88bc8dd2c5814ebc8f55b0a1", + "sha256": "2bc88b06e4238db4b55e1af64cb7fef785ccec3b88bc8dd2c5814ebc8f55b0a1" + }, + "arm64_ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:dc76862c28b49b83d7a15b484a5186cd6d20a03d60d3b0f9d3afba5d863526a7", + "sha256": "dc76862c28b49b83d7a15b484a5186cd6d20a03d60d3b0f9d3afba5d863526a7" + }, + "arm64_monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:eb7abe34c1d15f3a96b258fbedcdbde6c24e89927e1b35610358db9e70204a44", + "sha256": "eb7abe34c1d15f3a96b258fbedcdbde6c24e89927e1b35610358db9e70204a44" + }, + "sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:2e285ca1bbf5f86e53240c97041e1133d286e05256c5ca9658bb86ed5087b789", + "sha256": "2e285ca1bbf5f86e53240c97041e1133d286e05256c5ca9658bb86ed5087b789" + }, + "ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:07dd83234a749a5307c506a5442ff2f818084aea2d1436e11797fb493447f0ca", + "sha256": "07dd83234a749a5307c506a5442ff2f818084aea2d1436e11797fb493447f0ca" + }, + "monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:2b23e12b4fc2226d97830982b103f1b5be54707c1ebd638616cf0d614b9a2dd9", + "sha256": "2b23e12b4fc2226d97830982b103f1b5be54707c1ebd638616cf0d614b9a2dd9" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/pre-commit/blobs/sha256:1984c2637a432088c3d98ad10e9219afa6612387718a16cb076927ee39dc0ea5", + "sha256": "1984c2637a432088c3d98ad10e9219afa6612387718a16cb076927ee39dc0ea5" + } + } + } + }, + "xcodegen": { + "version": "2.38.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:422fb8dfbc7e2ed59125d22b4687bb54a1ab3f0ddef044a3875b624121f9be47", + "sha256": "422fb8dfbc7e2ed59125d22b4687bb54a1ab3f0ddef044a3875b624121f9be47" + }, + "arm64_ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:5b2d9dfdf8bc9912ecef48ecc4a03cfb4ba68f35f03c4ab4fc9e893b077f8796", + "sha256": "5b2d9dfdf8bc9912ecef48ecc4a03cfb4ba68f35f03c4ab4fc9e893b077f8796" + }, + "arm64_monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:7a239feca86c46f78ae91d631858d957cb2e7e63ea7230b30f3d618097774bff", + "sha256": "7a239feca86c46f78ae91d631858d957cb2e7e63ea7230b30f3d618097774bff" + }, + "sonoma": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:346164300a7e835f8516c70b25793702bab2437d7e9fb606b5394ab757dab4f5", + "sha256": "346164300a7e835f8516c70b25793702bab2437d7e9fb606b5394ab757dab4f5" + }, + "ventura": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:2bca799f6fee1e679a3f826a9a977449a23f81f02896b22a525056f6cd4a07dd", + "sha256": "2bca799f6fee1e679a3f826a9a977449a23f81f02896b22a525056f6cd4a07dd" + }, + "monterey": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/xcodegen/blobs/sha256:3e306a4b9ad078c77b61d93090c224304c7dac35ca119808db87792edb983be8", + "sha256": "3e306a4b9ad078c77b61d93090c224304c7dac35ca119808db87792edb983be8" + } + } + } + }, + "curl": { + "version": "8.5.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_sonoma": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:f522b5617f23fc5254ca7af46f966ab4126f1e6bb807ef6b0a5d9a189401628c", + "sha256": "f522b5617f23fc5254ca7af46f966ab4126f1e6bb807ef6b0a5d9a189401628c" + }, + "arm64_ventura": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:bf6727235d2f3de1aaac9cd78a73de007c50370fbe8a617fa6274b5b0c11e17d", + "sha256": "bf6727235d2f3de1aaac9cd78a73de007c50370fbe8a617fa6274b5b0c11e17d" + }, + "arm64_monterey": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:30624bc555daa8181e3bceb3abe88fc83be0ccfdf4481e2333599fbeb45b7922", + "sha256": "30624bc555daa8181e3bceb3abe88fc83be0ccfdf4481e2333599fbeb45b7922" + }, + "sonoma": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:47c7c2bacab6e130e55fd34a0053062ad775801a4ed6b8f8d970226b89aaaef3", + "sha256": "47c7c2bacab6e130e55fd34a0053062ad775801a4ed6b8f8d970226b89aaaef3" + }, + "ventura": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:b38db0ec20251e89fcd2f71074a3ad3e9aa2bedafe9b9d4d7c368a8fbfea2e67", + "sha256": "b38db0ec20251e89fcd2f71074a3ad3e9aa2bedafe9b9d4d7c368a8fbfea2e67" + }, + "monterey": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:4d68cb21a249d7cf410bf46ee419bb5159a8847507ecd29e4163db2feed0e1e3", + "sha256": "4d68cb21a249d7cf410bf46ee419bb5159a8847507ecd29e4163db2feed0e1e3" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/curl/blobs/sha256:6b2cd50eae98f85e4ba55b4379e2351ec4408d3c547a6bed782f1eb62a797ad4", + "sha256": "6b2cd50eae98f85e4ba55b4379e2351ec4408d3c547a6bed782f1eb62a797ad4" + } + } + } + } + } + }, + "system": { + "macos": { + "ventura": { + "HOMEBREW_VERSION": "4.2.1", + "HOMEBREW_PREFIX": "/opt/homebrew", + "Homebrew/homebrew-core": "api", + "CLT": "15.0.0.0.1.1694021235", + "Xcode": "15.1", + "macOS": "13.6.1" + } + } + } +} From d036ea1b501915a3bcd51b756aa6ee0ec372ffe5 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 14:04:08 +0100 Subject: [PATCH 13/20] Add xcodegen project file --- project.yml | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 project.yml diff --git a/project.yml b/project.yml new file mode 100644 index 00000000..e5d99108 --- /dev/null +++ b/project.yml @@ -0,0 +1,143 @@ +name: Kiwix +options: + xcodeVersion: 13.0 + deploymentTarget: + iOS: 15.0 + macOS: 12.0 + generateEmptyDirectories: true + useTabs: false + groupSortPosition: top + +settings: + base: + DEVELOPMENT_TEAM: L7HWM3SP3L + GENERATE_INFOPLIST_FILE: YES + CURRENT_PROJECT_VERSION: 120 + ENABLE_USER_SCRIPT_SANDBOXING: NO + ENABLE_MODULE_VERIFIER: YES + MODULE_VERIFIER_SUPPORTED_LANGUAGES: "objective-c objective-c++" + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: YES + ENABLE_PREVIEWS: YES + INFOPLIST_FILE: Support/Info.plist + INFOPLIST_KEY_LSApplicationCategoryType: public.app-category.reference + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + INFOPLIST_KEY_NSPhotoLibraryUsageDescription: "Kiwix needs permission to saves images to your photos app." + INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace: YES + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: YES + SWIFT_OBJC_INTEROP_MODE: objcxx + SWIFT_OBJC_BRIDGING_HEADER: $(PROJECT_DIR)/Support/Kiwix-Bridging-Header.h + GCC_C_LANGUAGE_STANDARD: c11 + CLANG_CXX_LANGUAGE_STANDARD: c++14 + ENABLE_HARDENED_RUNTIME[sdk=macosx*]: YES + APP_STORE_ID: $(APP_STORE_ID) + INFOPLIST_KEY_UILaunchScreen_Generation: YES + INFOPLIST_KEY_UILaunchStoryboardName: LaunchKiwix.storyboard + + configs: + debug: + DEAD_CODE_STRIPPING: YES + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS: "gnu11 gnu14++" + release: + DEAD_CODE_STRIPPING: YES + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS: "gnu11 gnu14++" + VALIDATE_PRODUCT: YES + +packages: + Fuzi: + url: https://github.com/cezheng/Fuzi + majorVersion: 3.0.0 + Defaults: + url: https://github.com/sindresorhus/Defaults + majorVersion: 6.0.0 + SwiftUIBackports: + url: https://github.com/shaps80/SwiftUIBackports.git + majorVersion: 1.0.0 + OrderedCollections: + url: https://github.com/apple/swift-collections.git + majorVersion: 1.0.4 + +targets: + Kiwix: + settings: + base: + MARKETING_VERSION: "3.3" + PRODUCT_BUNDLE_IDENTIFIER: self.Kiwix + INFOPLIST_KEY_CFBundleDisplayName: Kiwix + type: application + supportedDestinations: [iOS, macOS] + # info: + # path: Support/Info.plist + # CFBundleName: Kiwix + sources: + - path: App + - path: Support/Kiwix-Bridging-Header.h + destinationFilters: [iOS] + - path: Model + - path: Support + excludes: + - "Launch.storyboard" + - "**/*.zim" + - "DWDS.xcassets" + - "**/qqq.lproj" + - path: SwiftUI + - path: ViewModel + - path: Views + preBuildScripts: + - script: | + # Copy Clang module map to xcframework for Swift C++ Interoperability + cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64/Headers/module.modulemap + cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/ios-arm64_x86_64-simulator/Headers/module.modulemap + cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/macos-arm64_x86_64/Headers/module.modulemap + name: "Copy CoreKiwix module maps" + basedOnDependencyAnalysis: false + configFiles: + Debug: Support/kiwix.xcconfig + Release: Support/kiwix.xcconfig + entitlements: + path: Support/Kiwix.entitlements + properties: + com.apple.security.app-sandbox: true + com.apple.security.files.downloads.read-write: true + com.apple.security.files.user-selected.read-only: true + com.apple.security.network.client: true + dependencies: + - framework: CoreKiwix.xcframework + embed: false + codeSign: true + - sdk: SwiftUI.framework + - sdk: MapKit.framework + - sdk: WebKit.framework + - sdk: NotificationCenter.framework + - sdk: QuickLook.framework + - package: Fuzi + - package: Defaults + - package: SwiftUIBackports + - package: OrderedCollections + UnitTests: + type: bundle.unit-test + platform: macOS + settings: + PRODUCT_BUNDLE_IDENTIFIER: org.kiwix.Tests + TEST_HOST: $(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix + BUNDLE_LOADER: $(TEST_HOST) + DEVELOPMENT_TEAM: L7HWM3SP3L + sources: + - path: Tests + dependencies: + - target: Kiwix + + +schemes: + Kiwix: + build: + targets: + Kiwix: all + test: + targets: + - UnitTests + commandLineArguments: + testing: true + + \ No newline at end of file From fe1ca3cd5612704d252bd4eef5b41c7adb61989b Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 19:35:10 +0100 Subject: [PATCH 14/20] Update readme --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index abb454db..ac94d81f 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,16 @@ To compile Kiwix you rely on the following compilation tools: * An [Apple Developer account](https://developer.apple.com) (doesn't require membership) * Latest Apple Developers Tools ([Xcode](https://developer.apple.com/xcode/)) * Its command-line utilities (`xcode-select --install`) -* `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) +* Brew dependencies, (see `Brewfile`, which also downloads our `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) ### Steps To compile Kiwix, follow these steps: - -* Put `CoreKiwix/xcframework` at the root of this folder -* Open project with Xcode `open Kiwix.xcodeproj/project.xcworkspace/` +* From the commandline on the root of this project run: `brew bundle`, this will download and install all the dependencies you need to get started * Change the Bundle Identifier (in *Signing & Capabilities*) * Select appropriate Signing Certificate/Profile. -### Getting `CoreKiwix.xcframework` +### Switch to another version of the `CoreKiwix.xcframework` `CoreKiwix.xcframework` is published with all supported platforms and CPU architectures: From 78f1ccc620f91b3a8976e95c34ced09a3d2039ee Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Fri, 29 Dec 2023 19:35:40 +0100 Subject: [PATCH 15/20] Update CI build step --- .github/actions/xcbuild/action.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/actions/xcbuild/action.yml b/.github/actions/xcbuild/action.yml index 363a54ea..712e97a0 100644 --- a/.github/actions/xcbuild/action.yml +++ b/.github/actions/xcbuild/action.yml @@ -97,11 +97,9 @@ runs: KEYCHAIN: ${{ inputs.KEYCHAIN }} KEYCHAIN_PASSWORD: ${{ inputs.KEYCHAIN_PASSWORD }} - - name: Download CoreKiwix.xcframework - env: - XCF_URL: https://download.kiwix.org/release/libkiwix/libkiwix_xcframework-${{ inputs.libkiwix-version }}.tar.gz + - name: Download dependencies shell: bash - run: curl -L -o - $XCF_URL | tar -x --strip-components 2 + run: brew bundle - name: Prepare Xcode shell: bash From cc7914a9d1591851fc4fccc520618c7682e381bb Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 09:44:10 +0100 Subject: [PATCH 16/20] Add pre-commit config --- .pre-commit-config.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..d8032f5c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,12 @@ +# docs: https://pre-commit.com +default_install_hook_types: [post-merge, post-checkout, post-rewrite] +repos: + - repo: local + hooks: + - id: xcodegen + name: Generate project files for XCode + description: "Generate project file for XCode" + entry: xcodegen + language: system + always_run: true + stages: [post-checkout, post-merge, post-rewrite] From 004d35c32b4eece1beeaf01289cc94f889f7b562 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 12:36:22 +0100 Subject: [PATCH 17/20] Update readme and project files --- .github/actions/xcbuild/action.yml | 2 +- .pre-commit-config.yaml | 4 +-- README.md | 46 ++++++++++++++++++------------ project.yml | 8 ++---- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/.github/actions/xcbuild/action.yml b/.github/actions/xcbuild/action.yml index 712e97a0..1327b5be 100644 --- a/.github/actions/xcbuild/action.yml +++ b/.github/actions/xcbuild/action.yml @@ -1,4 +1,4 @@ -name: Build with XCode +name: Build with Xcode description: Run xcodebuild for Kiwix inputs: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d8032f5c..6f03ae95 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,8 +4,8 @@ repos: - repo: local hooks: - id: xcodegen - name: Generate project files for XCode - description: "Generate project file for XCode" + name: Generate project files for Xcode + description: "Generate project file for Xcode" entry: xcodegen language: system always_run: true diff --git a/README.md b/README.md index ac94d81f..7482b74e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This is the home for Kiwix apps for Apple iOS and macOS. [![CI Build Status](https://github.com/kiwix/apple/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kiwix/apple/actions/workflows/ci.yml?query=branch%3Amain) [![CD Build Status](https://github.com/kiwix/apple/actions/workflows/cd.yml/badge.svg?branch=main)](https://github.com/kiwix/apple/actions/workflows/cd?query=branch%3Amain) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -Drawing= +Drawing= ## Download @@ -18,7 +18,31 @@ downloadable for older versions of macOS and iOS on the Mac App Store. ## Develop -Kiwix developers usually work with latest macOS and Xcode. Check our [Continuous Integration Workflow](https://github.com/kiwix/apple/blob/main/.github/workflows/ci.yml) to find out which XCode version we use on Github Actions. +Kiwix developers usually work with latest macOS and Xcode. Check our [Continuous Integration Workflow](https://github.com/kiwix/apple/blob/main/.github/workflows/ci.yml) to find out which Xcode version we use on Github Actions. + +### Get started + +To get started, you will need the following: + +* An [Apple Developer account](https://developer.apple.com) (doesn't require membership) +* [Xcode](https://developer.apple.com/xcode/) installed +* Its command-line utilities (`xcode-select --install`) +* [Homebrew](https://brew.sh) installed + +### Steps + 1) clone this repository + 2) from the project folder **run the following command: `brew bundle`** + +### Xcode settings + +To compile and run Kiwix from Xcode locally, you will need to: +* Change the Bundle Identifier (in *Signing & Capabilities*) +* Select appropriate Signing Certificate/Profile. + +### Dependencies installed for you +Our `Brewfile` will install all the necessary dependencies for you: +- our latest `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) +- [XcodeGen](https://github.com/yonaskolb/XcodeGen) which will create the project files for you ### CPU Architectures @@ -26,22 +50,6 @@ Kiwix compiles on both macOS architectures x86_64 and arm64 (Apple silicon). Kiwix for iOS and macOS can run, in both cases, on x86_64 or arm64. -### Dependencies - -To compile Kiwix you rely on the following compilation tools: - -* An [Apple Developer account](https://developer.apple.com) (doesn't require membership) -* Latest Apple Developers Tools ([Xcode](https://developer.apple.com/xcode/)) -* Its command-line utilities (`xcode-select --install`) -* Brew dependencies, (see `Brewfile`, which also downloads our `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) - -### Steps - -To compile Kiwix, follow these steps: -* From the commandline on the root of this project run: `brew bundle`, this will download and install all the dependencies you need to get started -* Change the Bundle Identifier (in *Signing & Capabilities*) -* Select appropriate Signing Certificate/Profile. - ### Switch to another version of the `CoreKiwix.xcframework` `CoreKiwix.xcframework` is published with all supported platforms and CPU architectures: @@ -49,6 +57,8 @@ To compile Kiwix, follow these steps: - [latest release](https://download.kiwix.org/release/libkiwix/libkiwix_xcframework.tar.gz) - [latest nightly](https://download.kiwix.org/nightly/libkiwix_xcframework.tar.gz): using `main` branch of both `libkiwix` and `libzim`. +In order to use another version of CoreKiwix, than the one pre-installed, you can simply replace the CoreKiwix.xcframework folder at the root of the project with the version downloaded, and unpacked. + #### Compiling `CoreKiwix.xcframework` You may want to compile it yourself, to use different branches of said projects for instance. diff --git a/project.yml b/project.yml index e5d99108..d729ff7e 100644 --- a/project.yml +++ b/project.yml @@ -1,7 +1,7 @@ name: Kiwix options: - xcodeVersion: 13.0 - deploymentTarget: + xcodeVersion: 15.0 + deploymentTarget: # the three latest major versions should be supported iOS: 15.0 macOS: 12.0 generateEmptyDirectories: true @@ -67,9 +67,6 @@ targets: INFOPLIST_KEY_CFBundleDisplayName: Kiwix type: application supportedDestinations: [iOS, macOS] - # info: - # path: Support/Info.plist - # CFBundleName: Kiwix sources: - path: App - path: Support/Kiwix-Bridging-Header.h @@ -79,7 +76,6 @@ targets: excludes: - "Launch.storyboard" - "**/*.zim" - - "DWDS.xcassets" - "**/qqq.lproj" - path: SwiftUI - path: ViewModel From 2a479328c3cb43fcb678a2fdef447fb71037e8d7 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 13:12:29 +0100 Subject: [PATCH 18/20] Include xcodegen section in Readme --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 7482b74e..d1cafe35 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,15 @@ Our `Brewfile` will install all the necessary dependencies for you: - our latest `CoreKiwix.xcframework` ([libkiwix](https://github.com/kiwix/libkiwix) and [libzim](https://github.com/openzim/libzim)) - [XcodeGen](https://github.com/yonaskolb/XcodeGen) which will create the project files for you +### How XcodeGen is working? +Xcode project files are not directly contained within this repository, instead they are generated for you automatically (as git hooks on post-merge, post-checkout, post-rewrite - see the `.pre-commit-config.yaml`). + +This means, that you can work in Xcode as usual, but you don't need to worry about the project file changes anymore. + +Contributors: please note, **changes to the Xcode project folder will not be tracked by git**. + +If you wish to change any settings as part of your contribution, please **edit the `project.yml` file instead.** + ### CPU Architectures Kiwix compiles on both macOS architectures x86_64 and arm64 (Apple silicon). From 689553def454ee3c648a549fe24d22e97a9df832 Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sat, 30 Dec 2023 13:15:00 +0100 Subject: [PATCH 19/20] Add XcodeGen doc reference --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d1cafe35..2433c4c4 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,8 @@ Contributors: please note, **changes to the Xcode project folder will not be tra If you wish to change any settings as part of your contribution, please **edit the `project.yml` file instead.** +Please refer to the [XcodeGen documentation](https://github.com/yonaskolb/XcodeGen) for further details. + ### CPU Architectures Kiwix compiles on both macOS architectures x86_64 and arm64 (Apple silicon). From 0cfe0569696574a2fa87d776c577a97d6efda72a Mon Sep 17 00:00:00 2001 From: Balazs Perlaki-Horvath Date: Sun, 31 Dec 2023 11:12:34 +0100 Subject: [PATCH 20/20] Update project file to use schemes --- project.yml | 54 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/project.yml b/project.yml index d729ff7e..7952c8d4 100644 --- a/project.yml +++ b/project.yml @@ -12,14 +12,13 @@ settings: base: DEVELOPMENT_TEAM: L7HWM3SP3L GENERATE_INFOPLIST_FILE: YES - CURRENT_PROJECT_VERSION: 120 + CURRENT_PROJECT_VERSION: 133 ENABLE_USER_SCRIPT_SANDBOXING: NO ENABLE_MODULE_VERIFIER: YES MODULE_VERIFIER_SUPPORTED_LANGUAGES: "objective-c objective-c++" ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: YES ENABLE_PREVIEWS: YES - INFOPLIST_FILE: Support/Info.plist INFOPLIST_KEY_LSApplicationCategoryType: public.app-category.reference INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight @@ -58,28 +57,10 @@ packages: url: https://github.com/apple/swift-collections.git majorVersion: 1.0.4 -targets: - Kiwix: - settings: - base: - MARKETING_VERSION: "3.3" - PRODUCT_BUNDLE_IDENTIFIER: self.Kiwix - INFOPLIST_KEY_CFBundleDisplayName: Kiwix +targetTemplates: + ApplicationTemplate: type: application supportedDestinations: [iOS, macOS] - sources: - - path: App - - path: Support/Kiwix-Bridging-Header.h - destinationFilters: [iOS] - - path: Model - - path: Support - excludes: - - "Launch.storyboard" - - "**/*.zim" - - "**/qqq.lproj" - - path: SwiftUI - - path: ViewModel - - path: Views preBuildScripts: - script: | # Copy Clang module map to xcframework for Swift C++ Interoperability @@ -88,9 +69,6 @@ targets: cp Support/CoreKiwix.modulemap CoreKiwix.xcframework/macos-arm64_x86_64/Headers/module.modulemap name: "Copy CoreKiwix module maps" basedOnDependencyAnalysis: false - configFiles: - Debug: Support/kiwix.xcconfig - Release: Support/kiwix.xcconfig entitlements: path: Support/Kiwix.entitlements properties: @@ -111,6 +89,30 @@ targets: - package: Defaults - package: SwiftUIBackports - package: OrderedCollections + sources: + - path: App + - path: Model + - path: SwiftUI + - path: ViewModel + - path: Views + +targets: + Kiwix: + templates: + - ApplicationTemplate + settings: + base: + MARKETING_VERSION: "3.3" + PRODUCT_BUNDLE_IDENTIFIER: self.Kiwix + INFOPLIST_KEY_CFBundleDisplayName: Kiwix + INFOPLIST_FILE: Support/Info.plist + configFiles: + Debug: Support/kiwix.xcconfig + Release: Support/kiwix.xcconfig + sources: + - path: Support + excludes: + - "**/qqq.lproj" UnitTests: type: bundle.unit-test platform: macOS @@ -118,13 +120,11 @@ targets: PRODUCT_BUNDLE_IDENTIFIER: org.kiwix.Tests TEST_HOST: $(BUILT_PRODUCTS_DIR)/Kiwix.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Kiwix BUNDLE_LOADER: $(TEST_HOST) - DEVELOPMENT_TEAM: L7HWM3SP3L sources: - path: Tests dependencies: - target: Kiwix - schemes: Kiwix: build: