Kiwix for offline access on iOS and macOS

Overview

Kiwix for iOS & macOS

This is the home for Kiwix apps on iOS and macOS.

CodeFactor License: GPL v3 Drawing=

Mobile app for iPads & iPhones

Kiwix Desktop for macOS

Developers

Dependencies

Creating libkiwix.xcframework

Instructions to build kiwix-lib at on the kiwix-build repo.

The xcframework is a bundle of a library for multiple architectures and/or platforms. The libkiwix.xcframework will contain libkiwix library for macOS arch and for iOS. You don't have to follow steps for other platform/arch if you don't need them.

Following steps are done from kiwix-build root and assume your apple repository is at ../apple.

Build kiwix-lib

git clone https://github.com/kiwix/kiwix-build.git
cd kiwix-build
# if on macOS mojave (10.14), install headers to standard location
# https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes?language=objc
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
# make sure xcrun can find SDKs
sudo xcode-select --switch /Applications/Xcode.app
# [iOS] build kiwix-lib
kiwix-build --target-platform iOS_multi kiwix-lib
# [macOS] build kiwix-lib
kiwix-build --target-platform native_static kiwix-lib

Create fat archive with all dependencies

This creates a single .a archive named libkiwix which contains all libkiwix's dependencies. If you are to create an xcframework with multiple architectures/platforms, repeat this step for each:

  • native_static (for macOS – x86_64)
  • iOS_x86_64
  • iOS_arm64

You'll have to do it for both iOS archs although you built it using multi.

libtool -static -o BUILD_<target>/INSTALL/lib/libkiwix.a BUILD_<target>/INSTALL/lib/*.a

Add fat archive to xcframework

xcodebuild -create-xcframework -library BUILD_<target>/INSTALL/lib/libkiwix.a -headers BUILD_<target>/INSTALL/include -output ../apple/Model/libkiwix.xcframework

You can now launch the build from Xcode and use the iOS simulator or your macOS target.

Building Kiwix iOS or Kiwix macOS

  • Open project with Xcode open Kiwix.xcodeproj
  • Change the App groups (in Capabilities) and Bundle Identifier for both iOS and Bookmarks targets
    • App Group must be different and unique (ex: tld.mydomain.apple)
    • iOS Bundle Identifier must be different and unique (ex: tld.mydomain.apple.Kiwix)
    • Bookmarks Bundle Identifier must be a child of iOS one (ex: tld.mydomain.apple.Kiwix.Bookmarks)
    • if you are using a regular (non-paying) Apple Developer Account, you are limited in the number of App IDs you can use so be careful not to fumble much with those.
  • Change the Signing profile to your account.
Comments
  • Black Screen

    Black Screen

    Version 3.0 released today shows a completely black screen on latest version of iOS and iphone 13 Pro Max. The Kiwix screen looks normal in the app scroller but again goes black when picked / maximised. Switching the phone day / night settings does not help.

    bug 
    opened by gsobala 24
  • zim file open incorrectly on iOS 9 and 11

    zim file open incorrectly on iOS 9 and 11

    I'm copy-pasting the exchange I had with the user (+screenshot):

    "I have tried on an iPad 2 running 9.3.5 (downloaded with jailbreak running) and I cannot open the zim file I downloaded from the app. It did initially open but it looked like it was the css code , I did reboot into 9.35 no jailbreak and it simply does not open. Would this be because I am using a 32 bit device perhaps ? I have not attempted this on an iPhone 6 with current iOS 11 but will try later I'm sure. It will not download any other files and just crashes although I have several gb free space."

    And then...

    "Well I transferred the Wikipedia zim file to an iPhone 6 updated to the new iOS and see the same as what I saw once on the iPad ...." bug

    bug iOS 
    opened by Popolechien 24
  • Sotoki ZIM files links completly broken

    Sotoki ZIM files links completly broken

    Steps:

    • Download https://download.kiwix.org/zim/stack_exchange/3dprinting.stackexchange.com_en_all_2020-01.zim
    • Open the home page
    • Click on the first question

    I get:

    • Nothing happens

    I want:

    • The first question loaded

    Works fine on kiwix-serve

    bug macOS 
    opened by kelson42 21
  • kiwix 2.1.2 macos 10.13.6 crash when searching

    kiwix 2.1.2 macos 10.13.6 crash when searching

    Hi, I have the 20 March 2021 Wikipedia .zim file and searching for the letter 'a' or 'b' or 'c' works but searching for the letter 'd' crashes the kiwix app, most other search terms I tried also crashed. Is this a known problem? Thanks.

    bug macOS stale 
    opened by markNZed 15
  • Update application logo

    Update application logo

    There is a new, slightly remodeled logo for Kiwix https://commons.wikimedia.org/wiki/File:Kiwix_logo_v3.png The app's icon needs to be updated accordingly

    enhancement macOS iOS 
    opened by Popolechien 14
  • wikipedia_en_all_maxi_2018-10.zim not downloading

    wikipedia_en_all_maxi_2018-10.zim not downloading

    I've had several users reporting that wikipedia_en_all_maxi_2018-10.zim fails to download (or rather: starts downloading and then stalls). They have also indicated that other files (including wikipedia_en_all_nopic_2019-12.zim) downloaded just fine, so the error might be with the handling of this one big guy.

    question 
    opened by Popolechien 13
  • Rendering problem with stack exchange zim files

    Rendering problem with stack exchange zim files

    Here is the online rendering: http://library.kiwix.org/dsp.stackexchange.com_en_all_2017-10/A/question/374/river-detection-in-text.html

    Here is how it is rendered on my iPad. 934b210f-ed29-4e7d-862a-5ebde4d26b42

    bug iOS 
    opened by kelson42 13
  • Library: No packages under CATEGORIES available

    Library: No packages under CATEGORIES available

    Kiwix iOS v1.9 (2): I can open the packages under ON DEVICE (which I had downloaded with an earlier version of Kiwix) as expected. But I don't see any packages when I select an entry from CATEGORIES (i.e. "Wikivoyage"). And when I open the language filter, I can only see my own language (SHOWING > "Deutsch"), but not the other language preferences I had set (English, French), and there are no languages displayed under HIDING at all.

    Note: When I first tried to download new packages, the app asked wether I want to remove the existing language filter or not. I declined. Then the app crashed immediately. I was able to reproduce this problem on another device. The first one is running iOS 11.2.5, the second one iOS 11.2.1.

    opened by martin8032 13
  • Kiwix zooms in when switching to other app and back on iPad

    Kiwix zooms in when switching to other app and back on iPad

    iPadOS 14.4 and Kiwix for iOS v1.14: when looking at an article and switching to another app (without closing Kiwix), a user reports that coming back to Kiwix the article is fully zoomed in.

    image0 image1

    iOS upstream 
    opened by Popolechien 12
  • May 25 2020 Wikipedia download in iOS hangs in unrecoverable state after long enough

    May 25 2020 Wikipedia download in iOS hangs in unrecoverable state after long enough

    When downloading the large May 25, 2020 Wikipedia image with kiwix on iOS, the download appears to stop or hang after a certain amount of time. If caught fast enough, Pause'ing and Resume'ing the download can cause it to continue. If not, the download enters a frozen unrecoverable state, where tapping on the Pause button appears to do nothing (the UI does not change it to Resume). This has happened around a dozen times for me now, and in various states of progress. Some as low as 10-15% complete, once it happened to me while it showed 100% download.

    • I tried setting device screen lock time to Never and this phenomenon still occurs.
    • I have also tried closing Kiwix by swiping up from the App selection interface, but this still occurs.
    • I have tried downloading the file both via WiFi only and Wifi+Cellular.
    • I have tried uninstalling and reinstalling Kiwix, but this still persists.
    • This issue has also persisted over the course of several days.

    My device and download info are: Downloaded file: Wikipedia (39.85GB, May 25, 2020, 6.1M articles) Downloaded file ID: f6aa1506 Device mode: iPhone 11 Pro Device OS: iOS 13.5.1 Kiwix version: 1.13

    I would be happy to provide additional information if helpful.

    bug question iOS 
    opened by jonathanyhsu 12
  • Side loading zim via sd card ios

    Side loading zim via sd card ios

    Currently ipad os on my 6th generation ipad detects zim files from external sd but not able to load it anyway,share sheet doesn't even show kiwix as an option. Using version kiwix 1.10

    bug enhancement iOS 
    opened by ramko93 11
  • Synchronize bookmarks with iCloud

    Synchronize bookmarks with iCloud

    It will be good to see a synchronization of bookmarks with iCloud between mac and iOS devices. I understand that it could be weird in a sense. People would expect synchronizing them with macOS -> Android as well. So not sure if that is something you will be interesting in.

    opened by outcoldman 0
  • Release 3.0.0

    Release 3.0.0

    • [ ] CI is green on git master
    • [ ] Update the Changelog
    • [ ] Update version
    • [ ] Create a tag on git
    • [ ] Secure new source/sbinaries are published on https://download.kiwix.org/release/kiwix-desktop-macos/
    • [x] Verify it is properly available for iOS & macOS in Apple app store
    • [ ] Update the Github release with the Changelog
    • [ ] Create new empty entry in Changelog (placeholder for future entries)
    • [ ] Close current milestone and create new one incrementaly (a priori a minor version)
    • [ ] Publicize these new versions
    task 
    opened by kelson42 0
  • Ability to hide/move

    Ability to hide/move "random article" button

    On my iPhone (13 Pro), the "random article" button takes up valuable space in the action bar, making "Settings" and "Library" collapse into the overflow menu (sorry, not sure if these are the correct UI terms).

    This is purely anecdotal/personal, but I use either option much more frequently than opening a random article, and it's annoying having to do the extra tap/step every time.

    enhancement iOS 
    opened by lxgr 0
  • Can't search non-english language in iOS

    Can't search non-english language in iOS

    cant search non-english languages in iOS version. For example, When i search "Turán theorem" in desktop version, it will show me the results, but in iOS version, it shows nothing.

    bug question iOS 
    opened by Alimjoo 4
  • Full screen mode (feature suggestion)

    Full screen mode (feature suggestion)

    Hello and many thanks for the magnificent app! What I miss (and many others users too, no doubt) is the full screen mode activated e.g. with a single tap on the screen. It will make reading much more immersive if one could hide the top and bottom bars when they are not in use. Do not waste screen space, there is not plenty of it even on big phones. And this is a standard feature on most ebook reader apps, should be pretty simple to implement..

    enhancement question iOS 
    opened by antondys 0
  • Possible fix for the crashes happening while searching

    Possible fix for the crashes happening while searching

    I had a wiktionary zim downloaded on Kiwix and nothing else. This led to many crashes while typing words into the search box, as seen on many other issues opened on GitHub. However, by adding Wikipedia’s zim file, all the crashes stopped happening. While searching, both libraries are checked : if I uncheck one of them, the crashes are happening again. I’m not a technician by any mean, and can’t explain what is going on. Anyway, I’m posting this hoping it could help both developers and users fixing things up. Please keep maintaining that awesome app. Thank you

    bug iOS 
    opened by built2spill69 4
Releases(1.15.3)
  • 1.15.3(Dec 11, 2021)

    • Revert libkiwix and libzim to the last known stable release (9.4.1 and 6.3.2 respectively)
    • Added version notation of libkiwix and libzim to the about page
    Source code(tar.gz)
    Source code(zip)
  • 1.15(Nov 6, 2021)

    • Half sheet table of contents (iOS 15 & horizontally compact interfaces)
    • Using quicklook to preview zim files in the files app
    • Bookmark UI is made consistent with other article list UI (e.g. search results)
    Source code(tar.gz)
    Source code(zip)
  • 1.14.5(Sep 24, 2021)

    • fix: crashes during parsing search result snippets
    • fix: crashes when activating search by tapping search bar
    • improvement: search result snippet extraction performance
    Source code(tar.gz)
    Source code(zip)
  • 1.14.3(Sep 19, 2021)

    • Library zim file detail now show file descriptions
    • Technical implementation improvements for library on iOS 13 & 14 (Mostly SwiftUI)
    • Fixed an issue where recent search button doesn't do anything if the search text contains spaces
    • Note: we will drop support for iOS 12 once iOS 15 is released, we support the last three major iOS versions
    Source code(tar.gz)
    Source code(zip)
  • 1.9.7(Jul 8, 2019)

    • fix: memory usage issue when performing searches
    • maintance updates:
      • swift 5.2, version bump of libkiwix, realm and SwiftyUserDefaults
      • removed third party library ProcedureKit, now use Foundation.OperationQueue to handle async tasks
    Source code(tar.gz)
    Source code(zip)
  • 1.9.6(May 13, 2019)

  • 1.9.1(May 31, 2018)

    • Use Realm in replace of CoreData as database
    • Added Wiktionary, Wikiquote and Wikisource categories
    • Fix: unable to detect embedded index in some situations
    • Fix: unable to cancel erroneous download tasks
    Source code(tar.gz)
    Source code(zip)
  • 1.9(May 6, 2018)

    New Library Design:

    • Zim files are grouped by categories
    • On device, downloading and catalog are displayed in one place
    • Zim file detail view
    • On iPads, using a split view with zim file / categories on the left and detail on the right

    Bookmark:

    • Now displayed as a side panel on iPad
    • Add / remove bookmark interface is now presented as a HUD and does not cover up all the screen space

    Reading:

    • Now ask users for confirmation when opening external links. Can be turned on or off in settings
    Source code(tar.gz)
    Source code(zip)
  • 1.8.1(Apr 17, 2017)

    • Clear search history & browsing history
    • Now remember scroll position when go back / forward when browsing
    • Fix: zim files no longer got backed up to iCloud ot iTunes
    Source code(tar.gz)
    Source code(zip)
  • 1.8(Mar 6, 2017)

  • 1.7.1(Sep 14, 2016)

  • 1.7(Aug 5, 2016)

  • 1.6.1(Jul 27, 2016)

    New:

    • Clear search history in settings

    Fix:

    • Performance improvement in book scan and search
    • Launch speed optimization
    • iPad recent search divider not drawn correctly when rotating from portrait to landscape
    Source code(tar.gz)
    Source code(zip)
  • 1.6(Jul 8, 2016)

    New

    • Table of content
    • Recent searches
    • Search system: now fetch result from both title search and index search and use a new ranking system to sort them
    • Enhanced layout javascript on iPhone
    • Use SafariViewController to handle external links
    • Enhanced Search UI on iPad and iPhone 6/6s Plus (landscape)

    Fixed

    • Downloading / paused book no longer got purged when they are removed from online library
    • Removed code that mistakenly indicates app use Wallet
    • Open main page when first book finish downloaded
    Source code(tar.gz)
    Source code(zip)
Owner
Kiwix
Sharing Web content with people without Internet access. Go offline!
Kiwix
Access the native iOS / macOS reminders (get, update, delete) in TiDev / Titanium.

Titanium iOS Reminders API Access the native iOS reminders (get, update, delete) in TiDev / Titanium. Requirements The NSRemindersUsageDescription pri

Hans Knöchel 5 Nov 28, 2021
This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and AppleTV app.

This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and Apple TV app. With this Framework you can create iPh

Prioregroup.com 479 Nov 22, 2022
Private Internet Access - PIA VPN for iOS

Private Internet Access Private Internet Access is the world's leading consumer VPN service. At Private Internet Access we believe in unfettered acces

Private Internet Access - Free and Open Source Software 202 Dec 23, 2022
🌐 Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access.

Connectivity is a wrapper for Apple's Reachability providing a reliable measure of whether Internet connectivity is available where Reachability alone

Ross Butler 1.6k Dec 30, 2022
Access Xcode Server API with native Swift objects.

Xcode Server SDK Use Xcode Server's API with native Swift objects. First brought to you in Buildasaur, now in an independent project. This is an unoff

Buildasaurs 401 Dec 29, 2022
Simplified access to Apple's CloudKit

EVCloudKitDao Discuss EVCloudKitDao : What is this With Apple CloudKit, you can focus on your client-side app development and let iCloud eliminate the

Edwin Vermeer 632 Dec 29, 2022
🌏 A zero-dependency networking solution for building modern and secure iOS, watchOS, macOS and tvOS applications.

A zero-dependency networking solution for building modern and secure iOS, watchOS, macOS and tvOS applications. ?? TermiNetwork was tested in a produc

Bill Panagiotopoulos 90 Dec 17, 2022
Bonjour networking for discovery and connection between iOS, macOS and tvOS devices.

Merhaba Bonjour networking for discovery and connection between iOS, macOS and tvOS devices. Features Creating Service Start & Stop Service Stop Brows

Abdullah Selek 67 Dec 5, 2022
OAuth2 framework for macOS and iOS, written in Swift.

OAuth2 OAuth2 frameworks for macOS, iOS and tvOS written in Swift 5.0. ⤵️ Installation ?? Usage ?? Sample macOS app (with data loader examples) ?? Tec

Pascal Pfiffner 1.1k Jan 8, 2023
MQTT for iOS and macOS written with Swift

CocoaMQTT MQTT v3.1.1 client library for iOS/macOS/tvOS written with Swift 5 Build Build with Xcode 11.1 / Swift 5.1 Installation CocoaPods Install us

EMQ X MQTT Broker 1.4k Jan 1, 2023
Socket framework for Swift using the Swift Package Manager. Works on iOS, macOS, and Linux.

BlueSocket Socket framework for Swift using the Swift Package Manager. Works on iOS, macOS, and Linux. Prerequisites Swift Swift Open Source swift-5.1

Kitura 1.3k Dec 26, 2022
A delightful networking framework for iOS, macOS, watchOS, and tvOS.

AFNetworking is a delightful networking library for iOS, macOS, watchOS, and tvOS. It's built on top of the Foundation URL Loading System, extending t

AFNetworking 33.3k Jan 5, 2023
ZeroMQ Swift Bindings for iOS, macOS, tvOS and watchOS

SwiftyZeroMQ - ZeroMQ Swift Bindings for iOS, macOS, tvOS and watchOS This library provides easy-to-use iOS, macOS, tvOS and watchOS Swift bindings fo

Ahmad M. Zawawi 60 Sep 15, 2022
A networking library for iOS, macOS, watchOS and tvOS

Thunder Request Thunder Request is a Framework used to simplify making http and https web requests. Installation Setting up your app to use ThunderBas

3 SIDED CUBE 16 Nov 19, 2022
Official ProtonVPN iOS and macOS app

ProtonVPN for iOS and macOS Copyright (c) 2021 Proton Technologies AG Dependencies This app uses CocoaPods for most dependencies. Everything is inside

ProtonVPN 121 Dec 20, 2022
Passepartout is a non-official, user-friendly OpenVPN® client for iOS and macOS.

Passepartout Passepartout is a non-official, user-friendly OpenVPN® client for iOS and macOS. Overview All profiles in one place Passepartout lets you

Passepartout 523 Dec 27, 2022
Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines.

Why Zewo? • Support • Community • Contributing Zewo Zewo is a lightweight library for web applications in Swift. What sets Zewo apart? Zewo is not a w

Zewo 1.9k Dec 22, 2022
A tool to build projects on MacOS and a remote linux server with one command

DualBuild DualBuild is a command line tool for building projects on MacOS and a remote Linux server. ##Setup Install the repository git clone https://

Operator Foundation 0 Dec 26, 2021
The civilized way to write REST API clients for iOS / macOS

The elegant way to write iOS / macOS REST clients Drastically simplifies app code by providing a client-side cache of observable models for RESTful re

Bust Out 2.2k Nov 20, 2022