ChrisLi baeb36eebb
V3.0 bug fixes (#472)
* fix: bookmarks not removed when unlinking zim file

* fix: zim file not deleted when deleting zim file

* fix: pop view on unlink / delete

* build number

* webview loading concurrency issue

* build number

* fix: search text & results cleared when hiding keyboard

* fix: some zim files (e.g. ifixit) are missing category

* disable random & main article button when no opened zim file

* iPadOS: multi window

* build number

* macOS: navigation item keyboard shortcut

* build number

* another attempt at fixing crashes when attempting to sending data back at WKURLSchemeTask

* build number

* Revert "another attempt at fixing crashes when attempting to sending data back at WKURLSchemeTask"

This reverts commit cf698483727268a1b1467cb6222b7f038d19d6df.

* ignore NSExceptions

* resolve compile warning

* update to xcode recommended project settings

* build number

* more deterministic sorting

* remove duplicated search texts

* build number

* build number
2022-11-13 11:02:41 -05:00
2020-06-08 16:42:06 +02:00
2022-11-13 11:02:41 -05:00
2021-11-06 11:24:18 -04:00
2022-11-13 11:02:41 -05:00
2022-11-13 11:02:41 -05:00
2019-05-09 23:43:57 -04:00
2021-09-12 14:38:57 -04:00
2021-09-15 12:10:37 -04:00
2022-09-24 10:52:54 -04:00
2016-11-14 15:18:18 -05:00
2022-11-12 11:31:49 -05:00

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

  • Download the iOS mobile app on the App Store

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.
Description
Kiwix for offline access on iOS and macOS
Readme 51 MiB
Languages
Swift 92.6%
Objective-C++ 4.2%
Objective-C 1.8%
Python 0.7%
JavaScript 0.6%