subsurface/packaging/ios
Berthold Stoeger 634152ae43 filter: add filter constraint object to the core
Adds a filter constraint object to the core, which represents one
constraint the user can filter dives with. The plan is to write these
constraints to the XML and git logs. Therefore, this code is written
in C-style except when it comes to handling strings and dates, which
is just too painful in plain C.

There is one pointer to QStringList in the class, though when compiled
with C, this is simply transformed into a pointer to void. Granted,
that smells of an ugly hack. However it's more pragmatic than
self-flaggelation with C string and list handling.

A filter constraint is supposed to be a very general thing, which can
filter for strings, multiple-choice lists, numerical ranges and date
ranges.

Range constraints have a range mode: less-or-equal, greater-or-equal
or in-range. Text constraints have a string mode: startswith, substring
or exact.

All the data are accessed via setter and getter functions for
at least basic levels of isolation, despite being written with
a C-interface in mind.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-09-29 16:13:03 -07:00
..
storeIcon.xcassets iOS: small change to storeIcon 2019-11-08 20:50:05 +01:00
build.sh iOS: fix libxslt build 2020-04-04 11:09:17 -07:00
deployment.pri mobile/ios: correct whitespaces to coding standard 2018-06-21 04:25:21 +09:00
dummy.qml iOS: get rid of ios/Subsurface-mobile 2018-05-20 11:35:28 -07:00
Info.plist.in add Berthold to the list of explicitly mentioned developers 2020-05-09 17:21:43 -07:00
iPhoneDeviceCMakeToolchain iOS build: add various support files 2016-03-06 11:02:48 -08:00
iPhoneSimulatorCMakeToolchain iOS build: add various support files 2016-03-06 11:02:48 -08:00
qml.qrc mobile/ios: correct whitespaces to coding standard 2018-06-21 04:25:21 +09:00
README iOS: fix handling of version option to build.sh 2019-11-08 20:50:05 +01:00
Subsurface-mobile.pro filter: add filter constraint object to the core 2020-09-29 16:13:03 -07:00
SubsurfaceMobileLaunch.xib iOS: updated launchscreen so it is more centered. 2018-05-24 10:19:08 -07:00
translations.qrc iOS: find translations again 2018-07-03 14:58:00 -07:00

Tool repo to crosscompile subsurface for iOS
--------------------------------------------

Dependencies:

- This only works on a Mac
- XCode with iOS SDK and Qt5.13 or later
- cmake

Follow the instruction in:
<repo>/INSTALL

and then continue here:

1) cd <repo>/packaging/ios
2) export IOS_BUNDLE_PRODUCT_IDENTIFIER="<your apple id>.subsurface-divelog.subsurface-mobile"
3) ./build.sh
note: this builds all dependencies and is only needed first time
      it currently build for armv7 arm64 and x86_64 (simulator)

1) cd <repo>/..
2) Launch QtCreator and open subsurface/packaging/ios/Subsurface-mobile.pro
3) Build Subsurface-mobile in QtCreator - you can build for the simulator and for
a device and even deploy to a connected device.

Everything up to here you can do without paying for an Apple Developer account.

In order to create a bundle that can be distributed things get even more
complex and an Apple Developer account definitely is necessary in order for you
to be able to sign the bundle.

The easiest way to do that appears to be to open the Subsurface-mobile.xcodeproj
in the build directory that QtCreator used in Xcode and to create an archive there.


WARNING:
========

The version number used in the Subsurface-mobile app is created in step 3.
So whenever you pull the latest git or commit a change, you need to re-run the
build.sh script so that the Info.plist used by QtCreator (well, by Xcode under
the hood) gets updated. Otherwise you will continue to see the old version
number, even though the sources have been recompiled which can be very
confusing.

Do a simply version update by running:
build.sh -version
and then rebuilding in Qt Creator (or Xcode)