-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevelop.txt
More file actions
64 lines (45 loc) · 3.14 KB
/
develop.txt
File metadata and controls
64 lines (45 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Bibledit for iOS
================
Introduction
============
The current port of Bibledit for iOS consists of the following parts:
* A native Bibledit iOS app.
* The bibledit kernel written in C++, compiled for iOS.
* The iOS web browser library displaying pages through the bibledit library.
Libraries
=========
The Bibledit library depends on libsqlite3, libz, libc++, Security.framework CFNetwork.framework. The iOS SDK with Xcode includes these libraries. Link against all of these libraries in the project settings, the Build Phases.
In 2024 the app was built with library MbedTLS 3.x but it could not securely connect
to Bibledit Cloud then.
Therefore it was built with MbedTLS 2.x, and then it works well.
Building
========
The following message may occur during build:
Building for 'iOS-simulator', but linking in object file (<name>.o)) built for 'iOS'
To fix this, in tab Build Settings, look for setting "Build Active Architecture Only",
and set it to "Yes" for the Debug build.
Testing
=======
Beta testing iOS apps is made easy: https://developer.apple.com/app-store/testflight
Submission to store
===================
ERROR ITMS-90035: Invalid Signature. Code object is not signed at all. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing setting in Xcode are correct at the target level (which overrides any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose "Clean All" in Xcode, delete the "build" directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
Possible answers in http://stackoverflow.com/questions/29859996/error-itms-90035
Search for #! through grep -R '#!' * and remove those scripts.
App Transport Security in iOS 9 was disabled in the app .plist file so the webview can fetch http content from non-secure servers, like Bibledit has.
Creating the basic Swift app structure
======================================
* Creat a new iOS app, choose SwiftUI and language Swift.
* Add a new C++ file to the Bibledit folder, including the header file.
* Xcode will ask whether to create a bridging header: Do so.
* Set C++ and Objective-C Interoperability to "C++/Objective-C++".
* Surround the C++ API with "extern "C" {}".
References:
https://medium.com/@canakyildz/c-and-swift-mix-from-obj-c-bridging-layers-to-interoperability-c558238c5b52
https://medium.com/@aniketbaneani/seamlessly-blend-c-with-xcode-a-developers-guide-to-ios-integration-7e83d7f19ab8
https://medium.com/@jakir/webview-in-swiftui-3c1cd8957165
Hints for compiling C and C++ code
==================================
* Set the (user) header search paths to: ${PROJECT_DIR}/Bibledit/kernel
* Set the excluded source file names to: ${PROJECT_DIR}/Bibledit/kernel/utf8proc/utf8proc_data.c
* The Bibledit kernel source is not in git: Get it through the ./refresh.sh script.