- Objective-C 67.2%
- Swift 25.9%
- Objective-C++ 5.9%
- Shell 0.9%
- C 0.1%
|
David Alarcon
6b4cb5cc2e
Merge branch 'APPLEMAIL-45'
* APPLEMAIL-45: APPLEMAIL-45 Add undo xpc call. APPLEMAIL-45 Add xpc calls for trust and mistrust. Add confirm trust and deny trust xpc calls. APPLEMAIL-45 Add reset key xpc call. APPLEMAIL-45 Add trustwords call. APPLEMAIL-45 Add update and rateIdentity in XPC connection. |
||
|---|---|---|
| pEpMacOSAdapter | Fixes: Undefined Symbols caused by ObjC Foundation stuff not bridged to Swift. | |
| pEpMacOSAdapter.xcodeproj | IOSAD-214 Update scheme. | |
| pEpMacOSAdapter.xcworkspace | APPLEMAIL-51 Rename pEpNotifications folder. | |
| Scripts | Add install script to pepMacOSAdapter. Delete unused scripts in PEPObjCAdapterXPCService. | |
| Subprojects | APPLEMAIL-45 Add undo xpc call. | |
| .gitignore | Fix modulemap ignored. | |
| LICENSE | Initial commit | |
| README.md | IOSAD-218-again-for-master updated readme | |
p≡p macOS Desktop adapter
This adapter sports three main features:
- p≡p API via Apple XPC
- p≡p Update Client
Missing Features
- p≡p API via p≡p JSON adapter (still provided by miniadapter)
Deployment
PER_MACHINE_DIRECTORY="/Library/Application Support/pEp"
PER_USER_DIRECTORY=$HOME/.pEp
This software is supporting macOS 10.10 and later.
Required Tools
For building the engine, you need a working python3 environment and all dependencies:
sudo port install git
sudo port install gmake
sudo port install autoconf
sudo port install libtool
sudo port install automake
sudo port install wget
sudo port install gsed
pushd ~
git clone https://gitea.pep.foundation/fdik/yml2
popd
curl https://sh.rustup.rs -sSf | sh
add this to ~/.profile (create if it doesn't exist):
source $HOME/.cargo/env
export PATH="$HOME/.cargo/bin:$PATH"
restart your Console (!)
sudo port install pkgconfig
rustup update
Install Xcode (if not installed already)
Apple IDs & Certificates
Apple ID
You need to have an Apple ID (connected to pEp team account) configured in Xcode . Ask #service, if you want to be added to the team account.
Build Dependencies
mkdir src_pEpMacOSAdapter
cd src_pEpMacOSAdapter
git clone https://gitea.pep.foundation/buff/common-dependency-build-helpers-4-apple-hardware.git
git clone http://pep-security.lu/gitlab/iOS/pep-toolbox.git
git clone https://pep-security.lu/gitlab/iOS/CocoaLumberjack
git clone https://pep-security.lu/gitlab/misc/libetpan.git
git clone https://pep-security.lu/gitlab/misc/sqlite.git
git clone https://gitea.pep.foundation/pEp.foundation/pEpEngine
git clone https://gitea.pep.foundation/pep.foundation/pEpObjCAdapter.git
git clone https://gitea.pep.foundation/fdik/pEpMacOSAdapter.git
Build
Using Xcode UI
open pEpMacOSAdapter/pEpMacOSAdapter.xcworkspace/
Build scheme "All" of pEpMacOSAdapter.xcworkspace
Using terminal
xcodebuild -workspace "pEpMacOSAdapter.xcworkspace" -scheme "All" -configuration RELEASE
(or DEBUG)
Build Dir & Build Artefacts
You can find the build artefacts in the build folder odf the project or the used submodules:
src_pEpMacOSAdapter/pEpMacOSAdapter/build/foundation.pEp.adapter.macOS.xpc src_pEpMacOSAdapter/pEpMacOSAdapter/Submodules/pEpNotifications/build/p≡p updates.app
Implementation
The implementation is split in to parts:
- the working code is in pEpMacOSAdapter; the implementation is in Objective C
- the User Interface is in pEpNotifications; the implementation is in Swift
PEPMacOSAdapterProtocol, implemented with XPC
see pEpMacOSAdapter/PEPMacOSAdapterProtocol.h
This protocol is provided to the User Interface to get informed when a download was happening. When a subscription is active updateNow() can be used to search for immediate updates.