|
|
||
|---|---|---|
| .gitignore | ||
| .submodules.json | Update pEpForiOS.XCFrameworks | |
| LICENSE | ||
| README.md | Link to internal | |
pEpForiOS-build
Build the latest p≡p for iOS.
Dependencies
There are many dependencies, encoded in .submodules.json. Please note that this is recursive, at this stage pEpForiOS.XCFrameworks uses the same dependency management.
Following the .submodules.json file, you can checkout all dependencies manually, like this:
cd pEpForiOS-build # or wherever you cloned to
git clone ssh://git@codeberg.org/pEp/pEpForiOS.git
git clone https://github.com/SwipeCellKit/SwipeCellKit.git
...
pushd pEpForiOS.XCFrameworks
git clone https://github.com/randombit/botan.git
...
popd
You may also want to follow the commits as indicated in .submodules.json,
that is, check out the stated commit for each submodule.
Alternatively, use this tool for automating these tasks.
Bootstrap
If you have just checked out this repository, and want to have p≡p for iOS up and running as fast as possible, execute the following commands.
If you run into errors, please read the rest of this README and pEpForiOS.XCFrameworks for information about build dependencies you may have to install first.
cd pEpForiOS-build # or wherever you cloned to
# Make sure you have recursively cloned all dependencies and brought them to their supported version,
# as described in the previous section about dependencies.
pushd pEpForiOS.XCFrameworks
caffeinate zig build run
popd
open pEpForiOS/pEpForiOS.xcworkspace/
Make sure your target is "pEp", chose a device or a simulator, and you should be good to go. Debug, run the tests, etc.
Development
If you change code in one of the projects built by pEpForiOS.XCFrameworks, you have to rebuild that framework, before starting the build in Xcode:
pushd pEpForiOS.XCFrameworks
rm -fr prefix/<project_with_changes>
caffeinate zig build run
popd
The big exception is the pEpEngine, it's only built as an xcframework to satisfy build-time linkage requirements of the other xcframeworks. When used with Xcode, the actual libpEpEngine.a is rebuilt as needed (taking latest code changes there into account), and it is this version that ends up in the final product.
Internal Projects
There is a separate project containing all secrets, including the possibility to test against specified test servers.
It is referenced as pEpForiOS-intern/, that is, relative to this project.
It contains:
-
A file
pEpForiOS-intern/secret.xcconfigthat is included in pEpForiOS as/pEpForiOS/Resources/public.xcconfigcontaining OAUTH tokens. -
A file
pEpForiOS-intern/SecretTestData.swiftwhere you can override test servers. Please seeTestDataBase.swiftin pEpForiOS for details. -
A framework in
pEpForiOS-intern/pEp4iosIntern/pEp4iosIntern.xcodeproj/that defines constants regarding app identifiers.
Local Testing
You need a running set of local servers when running the tests:
cd pEpForiOS
java -Dgreenmail.setup.test.all -Dgreenmail.users=test001:pwd@localhost,test002:pwd@localhost,test003:pwd@localhost -jar ./testTools/greenmail/greenmail-standalone-1.5.9.jar