diff --git a/.gitignore b/.gitignore index c383b719517f0288dbad05686f7ab48e68364bdb..7f2cbc0bce7c9d9e948561d908784e54f6e7e2c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,10 @@ - # Evil DS_Store .DS_Store # Dependency lib fat/ DEPS/ +xcframework/ # Xcode UserData Ring/Ring.xcodeproj/project.xcworkspace/xcshareddata/ diff --git a/README.md b/README.md index bbbb4b0dc78c11b8e3757da889588d5133bd986c..c02b5e51f0e64263ebaa513c8aab72f73c854670 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Jami iOS -This repository is for the porting of Jami to iOS. +This repository contains the iOS client implementation of Jami. ## Requirements @@ -9,41 +9,64 @@ This repository is for the porting of Jami to iOS. - Homebrew (instructions could be found on https://brew.sh) - Carthage (brew install carthage) -## Buil instructions +## Build instructions -Supported archs are: arm64 +Supported archs are: arm64 for iPhoneOS and arm64, x86_64 for iPhoneSimulator Minimum supported version is: 14.5 -- clone the project +1. Clone the project ```bash git clone https://review.jami.net/jami-project ``` -- init repositories +2. Initialize repositories ```bash cd jami-project && ./build.py --init ``` -- install dependencies +3. Install dependencies ```bash ./build.py --dependencies --distribution IOS ``` -- build daemon and contributions +4. Build daemon and contributions (choose one option): -```bash -cd client-ios && ./compile-ios.sh --platform=iPhoneOS -``` + **Option A: For iPhone device only** + ```bash + cd client-ios && ./compile-ios.sh --platform=iPhoneOS + ``` + + **Option B: For simulator only** + ```bash + cd client-ios && ./compile-ios.sh --platform=iPhoneSimulator + ``` + + **Option C: For both iPhone device and simulator** + ```bash + cd client-ios && ./compile-ios.sh --platform=all + ``` -- build client dependencies + **Additional options:** + ``` + --release Build in release mode with optimizations + --arch=ARCH Specify a specific architecture for simulator builds (arm64 or x86_64) + Note: This option is only used when building for iPhoneSimulator + --help Display detailed help information + ``` + +5. Build client dependencies ```bash cd Ring && ./fetch-dependencies.sh ``` +## XCFrameworks + +The build process automatically generates XCFrameworks from the compiled static libraries. These XCFrameworks are located in the `xcframework` directory and include both device (arm64) and simulator (arm64, x86_64) architectures when built with `--platform=all`. + ## Update translations Update translations using the Transifex: diff --git a/Ring/Ring.xcodeproj/project.pbxproj b/Ring/Ring.xcodeproj/project.pbxproj index bf0aaf4e966bed28fcf77cf87b3494bddfce0cd9..89d20bda45ddd8e4c7695fdbb15ba6a0e2c69e08 100644 --- a/Ring/Ring.xcodeproj/project.pbxproj +++ b/Ring/Ring.xcodeproj/project.pbxproj @@ -150,6 +150,114 @@ 26001BD82D6E5D1A009A8E23 /* libnatpmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BD72D6E5C8F009A8E23 /* libnatpmp.a */; }; 26001BD92D6E5E40009A8E23 /* libnatpmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BD72D6E5C8F009A8E23 /* libnatpmp.a */; }; 26001BDB2D6FF5F6009A8E23 /* Video+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26001BDA2D6FF5F6009A8E23 /* Video+Helpers.swift */; }; + 26001C0C2D78E1A1009A8E23 /* libpjsua.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BDF2D78E198009A8E23 /* libpjsua.xcframework */; }; + 26001C0E2D78E1A1009A8E23 /* libsrtp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE02D78E198009A8E23 /* libsrtp.xcframework */; }; + 26001C102D78E1A1009A8E23 /* libspeexdsp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE12D78E198009A8E23 /* libspeexdsp.xcframework */; }; + 26001C122D78E1A1009A8E23 /* libnettle.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE22D78E199009A8E23 /* libnettle.xcframework */; }; + 26001C142D78E1A1009A8E23 /* libswscale.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE32D78E199009A8E23 /* libswscale.xcframework */; }; + 26001C162D78E1A1009A8E23 /* libgnutls.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE42D78E199009A8E23 /* libgnutls.xcframework */; }; + 26001C182D78E1A1009A8E23 /* libcrypto.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE52D78E199009A8E23 /* libcrypto.xcframework */; }; + 26001C1A2D78E1A1009A8E23 /* libavutil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE62D78E199009A8E23 /* libavutil.xcframework */; }; + 26001C1C2D78E1A1009A8E23 /* libpjsua2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE72D78E199009A8E23 /* libpjsua2.xcframework */; }; + 26001C1E2D78E1A2009A8E23 /* libpjnath.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE82D78E199009A8E23 /* libpjnath.xcframework */; }; + 26001C202D78E1A2009A8E23 /* libixml.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE92D78E19A009A8E23 /* libixml.xcframework */; }; + 26001C222D78E1A2009A8E23 /* libpjmedia.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEA2D78E19A009A8E23 /* libpjmedia.xcframework */; }; + 26001C242D78E1A2009A8E23 /* libsecp256k1.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEB2D78E19A009A8E23 /* libsecp256k1.xcframework */; }; + 26001C262D78E1A2009A8E23 /* libhogweed.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEC2D78E19A009A8E23 /* libhogweed.xcframework */; }; + 26001C282D78E1A2009A8E23 /* libgmp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BED2D78E19A009A8E23 /* libgmp.xcframework */; }; + 26001C2A2D78E1A2009A8E23 /* libyaml-cpp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEE2D78E19A009A8E23 /* libyaml-cpp.xcframework */; }; + 26001C2C2D78E1A2009A8E23 /* libswresample.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEF2D78E19A009A8E23 /* libswresample.xcframework */; }; + 26001C2E2D78E1A2009A8E23 /* libtls.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF02D78E19B009A8E23 /* libtls.xcframework */; }; + 26001C302D78E1A2009A8E23 /* libavcodec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF12D78E19B009A8E23 /* libavcodec.xcframework */; }; + 26001C322D78E1A2009A8E23 /* libupnp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF22D78E19B009A8E23 /* libupnp.xcframework */; }; + 26001C342D78E1A2009A8E23 /* libx264.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF32D78E19B009A8E23 /* libx264.xcframework */; }; + 26001C362D78E1A2009A8E23 /* libpjsip-simple.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF42D78E19B009A8E23 /* libpjsip-simple.xcframework */; }; + 26001C382D78E1A2009A8E23 /* libopendht.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF52D78E19C009A8E23 /* libopendht.xcframework */; }; + 26001C3A2D78E1A3009A8E23 /* libjami.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF62D78E19C009A8E23 /* libjami.xcframework */; }; + 26001C3C2D78E1A3009A8E23 /* libpjmedia-audiodev.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF72D78E19C009A8E23 /* libpjmedia-audiodev.xcframework */; }; + 26001C3E2D78E1A3009A8E23 /* libpjlib-util.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF82D78E19C009A8E23 /* libpjlib-util.xcframework */; }; + 26001C402D78E1A3009A8E23 /* libargon2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF92D78E19C009A8E23 /* libargon2.xcframework */; }; + 26001C422D78E1A3009A8E23 /* libpj.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFA2D78E19C009A8E23 /* libpj.xcframework */; }; + 26001C442D78E1A3009A8E23 /* libhttp_parser.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFB2D78E19C009A8E23 /* libhttp_parser.xcframework */; }; + 26001C462D78E1A3009A8E23 /* libopus.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFC2D78E19D009A8E23 /* libopus.xcframework */; }; + 26001C482D78E1A3009A8E23 /* libdhtnet.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFD2D78E19D009A8E23 /* libdhtnet.xcframework */; }; + 26001C4A2D78E1A3009A8E23 /* libjsoncpp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFE2D78E19D009A8E23 /* libjsoncpp.xcframework */; }; + 26001C4C2D78E1A3009A8E23 /* libpjsip-ua.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFF2D78E19F009A8E23 /* libpjsip-ua.xcframework */; }; + 26001C4E2D78E1A3009A8E23 /* libpjsip.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C002D78E19F009A8E23 /* libpjsip.xcframework */; }; + 26001C502D78E1A3009A8E23 /* libspeex.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C012D78E19F009A8E23 /* libspeex.xcframework */; }; + 26001C522D78E1A4009A8E23 /* libyuv.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C022D78E1A0009A8E23 /* libyuv.xcframework */; }; + 26001C542D78E1A4009A8E23 /* libavfilter.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C032D78E1A0009A8E23 /* libavfilter.xcframework */; }; + 26001C562D78E1A4009A8E23 /* libpjmedia-codec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C042D78E1A0009A8E23 /* libpjmedia-codec.xcframework */; }; + 26001C582D78E1A4009A8E23 /* libavformat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C052D78E1A0009A8E23 /* libavformat.xcframework */; }; + 26001C5A2D78E1A4009A8E23 /* libssl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C062D78E1A0009A8E23 /* libssl.xcframework */; }; + 26001C5C2D78E1A4009A8E23 /* libavdevice.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C072D78E1A0009A8E23 /* libavdevice.xcframework */; }; + 26001C5E2D78E1A4009A8E23 /* libfmt.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C082D78E1A0009A8E23 /* libfmt.xcframework */; }; + 26001C602D78E1A4009A8E23 /* libgit2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C092D78E1A0009A8E23 /* libgit2.xcframework */; }; + 26001C622D78E1A4009A8E23 /* libllhttp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C0A2D78E1A1009A8E23 /* libllhttp.xcframework */; }; + 26001C642D78E1A4009A8E23 /* libpjmedia-videodev.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C0B2D78E1A1009A8E23 /* libpjmedia-videodev.xcframework */; }; + 26001C662D78E1EC009A8E23 /* SwiftyBeaver.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38C288704530023878C /* SwiftyBeaver.xcframework */; }; + 26001C672D78E1EC009A8E23 /* SwiftyBeaver.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38C288704530023878C /* SwiftyBeaver.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001C682D78E3E4009A8E23 /* libargon2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF92D78E19C009A8E23 /* libargon2.xcframework */; }; + 26001C6A2D78E3E5009A8E23 /* libavcodec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF12D78E19B009A8E23 /* libavcodec.xcframework */; }; + 26001C6C2D78E3E5009A8E23 /* libavdevice.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C072D78E1A0009A8E23 /* libavdevice.xcframework */; }; + 26001C6E2D78E3E5009A8E23 /* libavfilter.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C032D78E1A0009A8E23 /* libavfilter.xcframework */; }; + 26001C702D78E3E5009A8E23 /* libavformat.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C052D78E1A0009A8E23 /* libavformat.xcframework */; }; + 26001C722D78E3E5009A8E23 /* libavutil.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE62D78E199009A8E23 /* libavutil.xcframework */; }; + 26001C742D78E3E5009A8E23 /* libcrypto.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE52D78E199009A8E23 /* libcrypto.xcframework */; }; + 26001C762D78E3E5009A8E23 /* libdhtnet.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFD2D78E19D009A8E23 /* libdhtnet.xcframework */; }; + 26001C782D78E3E5009A8E23 /* libfmt.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C082D78E1A0009A8E23 /* libfmt.xcframework */; }; + 26001C7A2D78E3E5009A8E23 /* libgit2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C092D78E1A0009A8E23 /* libgit2.xcframework */; }; + 26001C7C2D78E3E5009A8E23 /* libgmp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BED2D78E19A009A8E23 /* libgmp.xcframework */; }; + 26001C7E2D78E3E5009A8E23 /* libgnutls.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE42D78E199009A8E23 /* libgnutls.xcframework */; }; + 26001C802D78E3E5009A8E23 /* libhogweed.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEC2D78E19A009A8E23 /* libhogweed.xcframework */; }; + 26001C822D78E3E5009A8E23 /* libhttp_parser.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFB2D78E19C009A8E23 /* libhttp_parser.xcframework */; }; + 26001C842D78E3E5009A8E23 /* libixml.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE92D78E19A009A8E23 /* libixml.xcframework */; }; + 26001C862D78E3E5009A8E23 /* libjami.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF62D78E19C009A8E23 /* libjami.xcframework */; }; + 26001C882D78E3E6009A8E23 /* libjsoncpp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFE2D78E19D009A8E23 /* libjsoncpp.xcframework */; }; + 26001C8A2D78E3E6009A8E23 /* libllhttp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C0A2D78E1A1009A8E23 /* libllhttp.xcframework */; }; + 26001C8C2D78E3E6009A8E23 /* libnettle.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE22D78E199009A8E23 /* libnettle.xcframework */; }; + 26001C8E2D78E3E6009A8E23 /* libopendht.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF52D78E19C009A8E23 /* libopendht.xcframework */; }; + 26001C902D78E3E6009A8E23 /* libopus.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFC2D78E19D009A8E23 /* libopus.xcframework */; }; + 26001C922D78E3E6009A8E23 /* libpj.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFA2D78E19C009A8E23 /* libpj.xcframework */; }; + 26001C942D78E3E6009A8E23 /* libpjlib-util.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF82D78E19C009A8E23 /* libpjlib-util.xcframework */; }; + 26001C962D78E3E6009A8E23 /* libpjmedia-audiodev.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF72D78E19C009A8E23 /* libpjmedia-audiodev.xcframework */; }; + 26001C982D78E3E6009A8E23 /* libpjmedia-codec.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C042D78E1A0009A8E23 /* libpjmedia-codec.xcframework */; }; + 26001C9A2D78E3E6009A8E23 /* libpjmedia-videodev.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C0B2D78E1A1009A8E23 /* libpjmedia-videodev.xcframework */; }; + 26001C9C2D78E3E6009A8E23 /* libpjmedia.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEA2D78E19A009A8E23 /* libpjmedia.xcframework */; }; + 26001C9E2D78E3E6009A8E23 /* libpjnath.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE82D78E199009A8E23 /* libpjnath.xcframework */; }; + 26001CA02D78E3E6009A8E23 /* libpjsip-simple.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF42D78E19B009A8E23 /* libpjsip-simple.xcframework */; }; + 26001CA22D78E3E7009A8E23 /* libpjsip-ua.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BFF2D78E19F009A8E23 /* libpjsip-ua.xcframework */; }; + 26001CA42D78E3E7009A8E23 /* libpjsip.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C002D78E19F009A8E23 /* libpjsip.xcframework */; }; + 26001CA62D78E3E7009A8E23 /* libpjsua.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BDF2D78E198009A8E23 /* libpjsua.xcframework */; }; + 26001CA82D78E3E7009A8E23 /* libpjsua2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE72D78E199009A8E23 /* libpjsua2.xcframework */; }; + 26001CAA2D78E3E7009A8E23 /* libsecp256k1.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEB2D78E19A009A8E23 /* libsecp256k1.xcframework */; }; + 26001CAC2D78E3E7009A8E23 /* libspeex.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C012D78E19F009A8E23 /* libspeex.xcframework */; }; + 26001CAE2D78E3E7009A8E23 /* libspeexdsp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE12D78E198009A8E23 /* libspeexdsp.xcframework */; }; + 26001CB02D78E3E7009A8E23 /* libsrtp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE02D78E198009A8E23 /* libsrtp.xcframework */; }; + 26001CB22D78E3E7009A8E23 /* libssl.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C062D78E1A0009A8E23 /* libssl.xcframework */; }; + 26001CB42D78E3E7009A8E23 /* libswresample.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEF2D78E19A009A8E23 /* libswresample.xcframework */; }; + 26001CB62D78E3E7009A8E23 /* libswscale.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BE32D78E199009A8E23 /* libswscale.xcframework */; }; + 26001CB82D78E3E7009A8E23 /* libtls.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF02D78E19B009A8E23 /* libtls.xcframework */; }; + 26001CBA2D78E3E8009A8E23 /* libupnp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF22D78E19B009A8E23 /* libupnp.xcframework */; }; + 26001CBC2D78E3E8009A8E23 /* libx264.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BF32D78E19B009A8E23 /* libx264.xcframework */; }; + 26001CBE2D78E3E8009A8E23 /* libyaml-cpp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001BEE2D78E19A009A8E23 /* libyaml-cpp.xcframework */; }; + 26001CC02D78E3E8009A8E23 /* libyuv.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001C022D78E1A0009A8E23 /* libyuv.xcframework */; }; + 26001CC42D7918BD009A8E23 /* libvpx.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001CC32D7918BD009A8E23 /* libvpx.xcframework */; }; + 26001CC62D7918E4009A8E23 /* libvpx.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26001CC32D7918BD009A8E23 /* libvpx.xcframework */; }; + 26001CC92D792489009A8E23 /* SQLite.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB398288704860023878C /* SQLite.xcframework */; }; + 26001CCA2D792489009A8E23 /* SQLite.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB398288704860023878C /* SQLite.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001CCB2D79248B009A8E23 /* RxSwift.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38B2887044E0023878C /* RxSwift.xcframework */; }; + 26001CCC2D79248B009A8E23 /* RxSwift.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38B2887044E0023878C /* RxSwift.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001CCD2D79248D009A8E23 /* RxRelay.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB397288704820023878C /* RxRelay.xcframework */; }; + 26001CCE2D79248D009A8E23 /* RxRelay.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB397288704820023878C /* RxRelay.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001CCF2D79248E009A8E23 /* RxDataSources.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38F288704600023878C /* RxDataSources.xcframework */; }; + 26001CD02D79248F009A8E23 /* RxDataSources.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38F288704600023878C /* RxDataSources.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001CD12D792490009A8E23 /* RxCocoa.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB3962887047E0023878C /* RxCocoa.xcframework */; }; + 26001CD22D792490009A8E23 /* RxCocoa.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB3962887047E0023878C /* RxCocoa.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001CD32D792492009A8E23 /* RxBlocking.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB390288704640023878C /* RxBlocking.xcframework */; }; + 26001CD42D792492009A8E23 /* RxBlocking.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB390288704640023878C /* RxBlocking.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26001CD52D792494009A8E23 /* Reusable.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB395288704790023878C /* Reusable.xcframework */; }; + 26001CD62D792494009A8E23 /* Reusable.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB395288704790023878C /* Reusable.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 26069B6724C9FCE8002361A3 /* ObjCHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 26069B6624C9FCE8002361A3 /* ObjCHandler.m */; }; 2607176E2CAC454E00494875 /* ComposeNewMessageCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2607176D2CAC454E00494875 /* ComposeNewMessageCoordinator.swift */; }; 260717702CAD901D00494875 /* ConversationDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2607176F2CAD901D00494875 /* ConversationDataSource.swift */; }; @@ -244,8 +352,6 @@ 267B956E2C233E2600353B01 /* GeneralSettingsViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267B956D2C233E2600353B01 /* GeneralSettingsViews.swift */; }; 267B958A2C2478F100353B01 /* SipAccountDetailModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267B95892C2478F100353B01 /* SipAccountDetailModel.swift */; }; 267B958C2C24793500353B01 /* ManageSipAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267B958B2C24793500353B01 /* ManageSipAccountView.swift */; }; - 267B958E2C2AFF0F00353B01 /* libllhttp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 267B958D2C2AFEEA00353B01 /* libllhttp.a */; }; - 267B958F2C2AFFD700353B01 /* libllhttp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 267B958D2C2AFEEA00353B01 /* libllhttp.a */; }; 267B95F62C2B40C600353B01 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ABE07E11F0D924700D36361 /* Strings.swift */; }; 267B95F92C2B5FB000353B01 /* LinkDeviceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267B95F82C2B5FB000353B01 /* LinkDeviceView.swift */; }; 267B95FB2C2B5FFA00353B01 /* RevocationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 267B95FA2C2B5FFA00353B01 /* RevocationView.swift */; }; @@ -274,86 +380,6 @@ 2692557C2C5D24FA00F85A1E /* SIPConfigurationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2692557B2C5D24FA00F85A1E /* SIPConfigurationView.swift */; }; 2692557E2C5D53A300F85A1E /* Views.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2692557D2C5D53A300F85A1E /* Views.swift */; }; 26929FD425659E5F0052A601 /* cacert.pem in Resources */ = {isa = PBXBuildFile; fileRef = 26929FD125659E5F0052A601 /* cacert.pem */; }; - 269DA02728D0D2E5007D51D6 /* libargon2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 56BBC9D31EDC7A6D00CDAF8B /* libargon2.a */; }; - 269DA02828D0D2E5007D51D6 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB21D1C341A00E99CD9 /* libavcodec.a */; }; - 269DA02928D0D2E5007D51D6 /* libavdevice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB31D1C341A00E99CD9 /* libavdevice.a */; }; - 269DA02A28D0D2E5007D51D6 /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB41D1C341A00E99CD9 /* libavfilter.a */; }; - 269DA02B28D0D2E5007D51D6 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB51D1C341A00E99CD9 /* libavformat.a */; }; - 269DA02C28D0D2E5007D51D6 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB61D1C341A00E99CD9 /* libavutil.a */; }; - 269DA02D28D0D2E5007D51D6 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 628F4DCE206C0AEE0009C44C /* libcrypto.a */; }; - 269DA02E28D0D2E5007D51D6 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB81D1C341A00E99CD9 /* libgmp.a */; }; - 269DA02F28D0D2E5007D51D6 /* libgnutls.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB91D1C341A00E99CD9 /* libgnutls.a */; }; - 269DA03028D0D2E5007D51D6 /* libhogweed.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ABB1D1C341A00E99CD9 /* libhogweed.a */; }; - 269DA03128D0D2E5007D51D6 /* libhttp_parser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E4A51CB23282BCC00357AFC /* libhttp_parser.a */; }; - 269DA03328D0D2E5007D51D6 /* libjsoncpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ABE1D1C341A00E99CD9 /* libjsoncpp.a */; }; - 269DA03428D0D2E5007D51D6 /* libnettle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC01D1C341A00E99CD9 /* libnettle.a */; }; - 269DA03528D0D2E5007D51D6 /* libopendht.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC21D1C341A00E99CD9 /* libopendht.a */; }; - 269DA03628D0D2E5007D51D6 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC31D1C341A00E99CD9 /* libopus.a */; }; - 269DA03728D0D2E5007D51D6 /* libpj.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC61D1C341A00E99CD9 /* libpj.a */; }; - 269DA03828D0D2E5007D51D6 /* libpjlib-util.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC71D1C341A00E99CD9 /* libpjlib-util.a */; }; - 269DA03928D0D2E5007D51D6 /* libpjmedia-audiodev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC81D1C341A00E99CD9 /* libpjmedia-audiodev.a */; }; - 269DA03A28D0D2E5007D51D6 /* libpjmedia-codec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC91D1C341A00E99CD9 /* libpjmedia-codec.a */; }; - 269DA03B28D0D2E5007D51D6 /* libpjmedia-videodev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACA1D1C341A00E99CD9 /* libpjmedia-videodev.a */; }; - 269DA03C28D0D2E5007D51D6 /* libpjmedia.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACB1D1C341A00E99CD9 /* libpjmedia.a */; }; - 269DA03D28D0D2E5007D51D6 /* libpjnath.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACC1D1C341A00E99CD9 /* libpjnath.a */; }; - 269DA03E28D0D2E5007D51D6 /* libpjsip-simple.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACD1D1C341A00E99CD9 /* libpjsip-simple.a */; }; - 269DA03F28D0D2E5007D51D6 /* libpjsip-ua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACE1D1C341A00E99CD9 /* libpjsip-ua.a */; }; - 269DA04028D0D2E5007D51D6 /* libpjsip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACF1D1C341A00E99CD9 /* libpjsip.a */; }; - 269DA04128D0D2E5007D51D6 /* libpjsua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD01D1C341A00E99CD9 /* libpjsua.a */; }; - 269DA04228D0D2E5007D51D6 /* libpjsua2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD11D1C341A00E99CD9 /* libpjsua2.a */; }; - 269DA04428D0D2E6007D51D6 /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD71D1C341A00E99CD9 /* libspeex.a */; }; - 269DA04528D0D2E6007D51D6 /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD81D1C341A00E99CD9 /* libspeexdsp.a */; }; - 269DA04628D0D2E6007D51D6 /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD91D1C341A00E99CD9 /* libsrtp.a */; }; - 269DA04728D0D2E6007D51D6 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 628F4DCA206BE23B0009C44C /* libssl.a */; }; - 269DA04828D0D2E6007D51D6 /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ADA1D1C341A00E99CD9 /* libswresample.a */; }; - 269DA04928D0D2E6007D51D6 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ADB1D1C341A00E99CD9 /* libswscale.a */; }; - 269DA04A28D0D2E6007D51D6 /* libtls.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 628F4DCC206BF4730009C44C /* libtls.a */; }; - 269DA04C28D0D2E6007D51D6 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE11D1C341A00E99CD9 /* libvpx.a */; }; - 269DA04D28D0D2E6007D51D6 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE21D1C341A00E99CD9 /* libx264.a */; }; - 269DA05328D0D366007D51D6 /* libargon2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 56BBC9D31EDC7A6D00CDAF8B /* libargon2.a */; }; - 269DA05428D0D366007D51D6 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB21D1C341A00E99CD9 /* libavcodec.a */; }; - 269DA05528D0D366007D51D6 /* libavdevice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB31D1C341A00E99CD9 /* libavdevice.a */; }; - 269DA05628D0D366007D51D6 /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB41D1C341A00E99CD9 /* libavfilter.a */; }; - 269DA05728D0D366007D51D6 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB51D1C341A00E99CD9 /* libavformat.a */; }; - 269DA05928D0D366007D51D6 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 628F4DCE206C0AEE0009C44C /* libcrypto.a */; }; - 269DA05A28D0D366007D51D6 /* libfmt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA05128D0D2ED007D51D6 /* libfmt.a */; }; - 269DA05B28D0D366007D51D6 /* libgit2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA05228D0D2EF007D51D6 /* libgit2.a */; }; - 269DA05C28D0D366007D51D6 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB81D1C341A00E99CD9 /* libgmp.a */; }; - 269DA05D28D0D366007D51D6 /* libgnutls.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB91D1C341A00E99CD9 /* libgnutls.a */; }; - 269DA05E28D0D366007D51D6 /* libhogweed.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ABB1D1C341A00E99CD9 /* libhogweed.a */; }; - 269DA05F28D0D366007D51D6 /* libhttp_parser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E4A51CB23282BCC00357AFC /* libhttp_parser.a */; }; - 269DA06128D0D366007D51D6 /* libjsoncpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ABE1D1C341A00E99CD9 /* libjsoncpp.a */; }; - 269DA06228D0D366007D51D6 /* libnettle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC01D1C341A00E99CD9 /* libnettle.a */; }; - 269DA06328D0D366007D51D6 /* libopendht.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC21D1C341A00E99CD9 /* libopendht.a */; }; - 269DA06428D0D366007D51D6 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC31D1C341A00E99CD9 /* libopus.a */; }; - 269DA06528D0D366007D51D6 /* libpj.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC61D1C341A00E99CD9 /* libpj.a */; }; - 269DA06628D0D366007D51D6 /* libpjlib-util.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC71D1C341A00E99CD9 /* libpjlib-util.a */; }; - 269DA06728D0D366007D51D6 /* libpjmedia-audiodev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC81D1C341A00E99CD9 /* libpjmedia-audiodev.a */; }; - 269DA06828D0D366007D51D6 /* libpjmedia-codec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AC91D1C341A00E99CD9 /* libpjmedia-codec.a */; }; - 269DA06928D0D366007D51D6 /* libpjmedia-videodev.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACA1D1C341A00E99CD9 /* libpjmedia-videodev.a */; }; - 269DA06A28D0D366007D51D6 /* libpjmedia.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACB1D1C341A00E99CD9 /* libpjmedia.a */; }; - 269DA06B28D0D366007D51D6 /* libpjnath.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACC1D1C341A00E99CD9 /* libpjnath.a */; }; - 269DA06C28D0D366007D51D6 /* libpjsip-simple.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACD1D1C341A00E99CD9 /* libpjsip-simple.a */; }; - 269DA06D28D0D366007D51D6 /* libpjsip-ua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACE1D1C341A00E99CD9 /* libpjsip-ua.a */; }; - 269DA06E28D0D366007D51D6 /* libpjsip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ACF1D1C341A00E99CD9 /* libpjsip.a */; }; - 269DA06F28D0D366007D51D6 /* libpjsua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD01D1C341A00E99CD9 /* libpjsua.a */; }; - 269DA07028D0D366007D51D6 /* libpjsua2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD11D1C341A00E99CD9 /* libpjsua2.a */; }; - 269DA07228D0D366007D51D6 /* libsecp256k1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA05028D0D2EA007D51D6 /* libsecp256k1.a */; }; - 269DA07328D0D366007D51D6 /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD71D1C341A00E99CD9 /* libspeex.a */; }; - 269DA07428D0D366007D51D6 /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD81D1C341A00E99CD9 /* libspeexdsp.a */; }; - 269DA07528D0D366007D51D6 /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AD91D1C341A00E99CD9 /* libsrtp.a */; }; - 269DA07628D0D366007D51D6 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 628F4DCA206BE23B0009C44C /* libssl.a */; }; - 269DA07728D0D366007D51D6 /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ADA1D1C341A00E99CD9 /* libswresample.a */; }; - 269DA07828D0D366007D51D6 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ADB1D1C341A00E99CD9 /* libswscale.a */; }; - 269DA07928D0D367007D51D6 /* libtls.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 628F4DCC206BF4730009C44C /* libtls.a */; }; - 269DA07B28D0D367007D51D6 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE11D1C341A00E99CD9 /* libvpx.a */; }; - 269DA07C28D0D367007D51D6 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE21D1C341A00E99CD9 /* libx264.a */; }; - 269DA07D28D0D367007D51D6 /* libyaml-cpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE31D1C341A00E99CD9 /* libyaml-cpp.a */; }; - 269DA07E28D0D367007D51D6 /* libyuv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA04F28D0D2E6007D51D6 /* libyuv.a */; }; - 269DA07F28D0D5D0007D51D6 /* libgit2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA05228D0D2EF007D51D6 /* libgit2.a */; }; - 269DA08028D0D614007D51D6 /* libsecp256k1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA05028D0D2EA007D51D6 /* libsecp256k1.a */; }; - 269DA08228D0D68F007D51D6 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AB61D1C341A00E99CD9 /* libavutil.a */; }; - 269DA08628D0DFE3007D51D6 /* libyaml-cpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE31D1C341A00E99CD9 /* libyaml-cpp.a */; }; 269DA09928E23D37007D51D6 /* MessageRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269DA09828E23D37007D51D6 /* MessageRowView.swift */; }; 269DA09D28E23F57007D51D6 /* MessagesListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269DA09C28E23F57007D51D6 /* MessagesListView.swift */; }; 269DA09F28E244F1007D51D6 /* MessagesListVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269DA09E28E244F1007D51D6 /* MessagesListVM.swift */; }; @@ -391,15 +417,8 @@ 26BC15EE29302B00003FC8D1 /* ContactMessageVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26BC15ED29302B00003FC8D1 /* ContactMessageVM.swift */; }; 26BCBBD32A964ABC0001EE38 /* ConferenceActionsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26BCBBD22A964ABC0001EE38 /* ConferenceActionsModel.swift */; }; 26BCBBD52A965EFC0001EE38 /* PictureInPictureManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26BCBBD42A965EFC0001EE38 /* PictureInPictureManager.swift */; }; - 26C4845A2A79645E005BC767 /* libfmt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 269DA05128D0D2ED007D51D6 /* libfmt.a */; }; - 26C4845C2A796D87005BC767 /* libdhtnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26C4845B2A796D69005BC767 /* libdhtnet.a */; }; - 26C4845D2A796DC9005BC767 /* libdhtnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 26C4845B2A796D69005BC767 /* libdhtnet.a */; }; 26C4D07E2C62730100B1218C /* ProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26C4D07D2C62730100B1218C /* ProfileView.swift */; }; 26C6A2602927EC4E007786B8 /* SwarmInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26C6A25F2927EC4E007786B8 /* SwarmInfo.swift */; }; - 26CA4C542AB23A8500AEF8F5 /* libupnp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ADD1D1C341A00E99CD9 /* libupnp.a */; }; - 26CA4C592AB23C4100AEF8F5 /* libixml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ABD1D1C341A00E99CD9 /* libixml.a */; }; - 26CA4C5A2AB23CCF00AEF8F5 /* libixml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ABD1D1C341A00E99CD9 /* libixml.a */; }; - 26CA4C5B2AB23CCF00AEF8F5 /* libupnp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399ADD1D1C341A00E99CD9 /* libupnp.a */; }; 26D08AB9269628F400E37574 /* RequestsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26D08AB8269628F400E37574 /* RequestsService.swift */; }; 26D08ABB2696293100E37574 /* RequestsAdapterDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26D08ABA2696293100E37574 /* RequestsAdapterDelegate.swift */; }; 26D08ABE2696296300E37574 /* RequestsAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26D08ABD2696296300E37574 /* RequestsAdapter.mm */; }; @@ -423,6 +442,10 @@ 26EF35EF29075A5300D97E14 /* MessageStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26EF35EE29075A5300D97E14 /* MessageStackView.swift */; }; 26F5442D2C5815770069A7A4 /* WelcomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26F5442C2C5815770069A7A4 /* WelcomeView.swift */; }; 26F544A32C5AABD20069A7A4 /* CreateAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26F544A22C5AABD20069A7A4 /* CreateAccountView.swift */; }; + 26F82D042D7A09AF00954A7B /* libnatpmp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F82D032D7A09AE00954A7B /* libnatpmp.xcframework */; }; + 26F82D052D7A09AF00954A7B /* libnatpmp.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 26F82D032D7A09AE00954A7B /* libnatpmp.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 26F82D062D7A09C300954A7B /* libnatpmp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F82D032D7A09AE00954A7B /* libnatpmp.xcframework */; }; + 26F82D072D7A09C300954A7B /* libnatpmp.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 26F82D032D7A09AE00954A7B /* libnatpmp.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 26FDF4192C1101C2009D036B /* JamiBaseUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26FDF4182C1101C2009D036B /* JamiBaseUITest.swift */; }; 26FDF43D2C1353A9009D036B /* AccountSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26FDF43C2C1353A9009D036B /* AccountSummaryView.swift */; }; 26FDF43F2C1353BA009D036B /* AccountSummaryVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26FDF43E2C1353BA009D036B /* AccountSummaryVM.swift */; }; @@ -435,30 +458,12 @@ 446FAF1D2373427100519C4F /* SendFileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 446FAF1C2373427100519C4F /* SendFileViewModel.swift */; }; 449E736428D9F69E00CBF564 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1ABE07DA1F0D915100D36361 /* Localizable.strings */; }; 449E736728D9F86A00CBF564 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ABE07E11F0D924700D36361 /* Strings.swift */; }; - 44DFB39C2887048F0023878C /* RxSwift.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38B2887044E0023878C /* RxSwift.xcframework */; }; - 44DFB39D2887048F0023878C /* RxSwift.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38B2887044E0023878C /* RxSwift.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB39E2887048F0023878C /* SwiftyBeaver.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38C288704530023878C /* SwiftyBeaver.xcframework */; }; - 44DFB39F2887048F0023878C /* SwiftyBeaver.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38C288704530023878C /* SwiftyBeaver.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB3A42887048F0023878C /* RxDataSources.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38F288704600023878C /* RxDataSources.xcframework */; }; - 44DFB3A52887048F0023878C /* RxDataSources.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB38F288704600023878C /* RxDataSources.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB3A6288704900023878C /* RxBlocking.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB390288704640023878C /* RxBlocking.xcframework */; }; - 44DFB3A7288704900023878C /* RxBlocking.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB390288704640023878C /* RxBlocking.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 44DFB3A8288704900023878C /* Differentiator.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB391288704690023878C /* Differentiator.xcframework */; }; 44DFB3A9288704900023878C /* Differentiator.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB391288704690023878C /* Differentiator.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 44DFB3AC288704900023878C /* GSKStretchyHeaderView.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB393288704710023878C /* GSKStretchyHeaderView.xcframework */; }; 44DFB3AD288704900023878C /* GSKStretchyHeaderView.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB393288704710023878C /* GSKStretchyHeaderView.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 44DFB3AE288704900023878C /* AMPopTip.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB394288704750023878C /* AMPopTip.xcframework */; }; 44DFB3AF288704900023878C /* AMPopTip.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB394288704750023878C /* AMPopTip.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB3B0288704910023878C /* Reusable.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB395288704790023878C /* Reusable.xcframework */; }; - 44DFB3B1288704910023878C /* Reusable.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB395288704790023878C /* Reusable.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB3B2288704910023878C /* RxCocoa.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB3962887047E0023878C /* RxCocoa.xcframework */; }; - 44DFB3B3288704910023878C /* RxCocoa.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB3962887047E0023878C /* RxCocoa.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB3B4288704910023878C /* RxRelay.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB397288704820023878C /* RxRelay.xcframework */; }; - 44DFB3B5288704910023878C /* RxRelay.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB397288704820023878C /* RxRelay.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44DFB3B6288704910023878C /* SQLite.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB398288704860023878C /* SQLite.xcframework */; }; - 44DFB3B7288704910023878C /* SQLite.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 44DFB398288704860023878C /* SQLite.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 44EDA53E28FE232400BEB99A /* libjami.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EDA53D28FE22FD00BEB99A /* libjami.a */; }; - 44EDA53F28FE234500BEB99A /* libjami.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 44EDA53D28FE22FD00BEB99A /* libjami.a */; }; 5516C29F1E71CEFF009D3D2D /* AccountModelHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5516C29E1E71CEFF009D3D2D /* AccountModelHelper.swift */; }; 5557FD4A1E81AE850043E394 /* AccountModelHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5557FD491E81AE850043E394 /* AccountModelHelperTests.swift */; }; 557086521E8ADB9D001A7CE4 /* SystemAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 557086511E8ADB9D001A7CE4 /* SystemAdapter.mm */; }; @@ -501,7 +506,6 @@ 6452144424B4ACA7007203D5 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6452144324B4ACA7007203D5 /* CoreLocation.framework */; }; 645BDD8124B74BCB009129B1 /* LocationSharingService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645BDD8024B74BCB009129B1 /* LocationSharingService.swift */; }; 648AF76D24ED7CA90004D727 /* UITextView+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648AF76C24ED7CA90004D727 /* UITextView+Helpers.swift */; }; - 649AD3C324B4CFC700A0236D /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6452144724B4ACDE007203D5 /* libsqlite3.tbd */; }; 649AD3C724B4D00100A0236D /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6452144124B4AC9F007203D5 /* libc++.tbd */; }; 64DBCD2224DB3CF600CB5CA2 /* UserSearchResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 64DBCD2124DB3CF600CB5CA2 /* UserSearchResponse.m */; }; 6613A612214AFF4700B497D1 /* ScanViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6613A611214AFF4700B497D1 /* ScanViewController.storyboard */; }; @@ -565,23 +569,35 @@ name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; }; + 26F82D082D7A09C300954A7B /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 26F82D072D7A09C300954A7B /* libnatpmp.xcframework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; 645BDD6424B5FEFF009129B1 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( - 44DFB3A7288704900023878C /* RxBlocking.xcframework in Embed Frameworks */, - 44DFB3A52887048F0023878C /* RxDataSources.xcframework in Embed Frameworks */, - 44DFB3B5288704910023878C /* RxRelay.xcframework in Embed Frameworks */, - 44DFB39D2887048F0023878C /* RxSwift.xcframework in Embed Frameworks */, + 26001CD02D79248F009A8E23 /* RxDataSources.xcframework in Embed Frameworks */, 44DFB3A9288704900023878C /* Differentiator.xcframework in Embed Frameworks */, - 44DFB3B3288704910023878C /* RxCocoa.xcframework in Embed Frameworks */, - 44DFB39F2887048F0023878C /* SwiftyBeaver.xcframework in Embed Frameworks */, - 44DFB3B1288704910023878C /* Reusable.xcframework in Embed Frameworks */, - 44DFB3B7288704910023878C /* SQLite.xcframework in Embed Frameworks */, + 26001C672D78E1EC009A8E23 /* SwiftyBeaver.xcframework in Embed Frameworks */, + 26001CCA2D792489009A8E23 /* SQLite.xcframework in Embed Frameworks */, + 26001CCC2D79248B009A8E23 /* RxSwift.xcframework in Embed Frameworks */, + 26001CD22D792490009A8E23 /* RxCocoa.xcframework in Embed Frameworks */, 44DFB3AF288704900023878C /* AMPopTip.xcframework in Embed Frameworks */, + 26F82D052D7A09AF00954A7B /* libnatpmp.xcframework in Embed Frameworks */, 44DFB3AD288704900023878C /* GSKStretchyHeaderView.xcframework in Embed Frameworks */, + 26001CD42D792492009A8E23 /* RxBlocking.xcframework in Embed Frameworks */, + 26001CCE2D79248D009A8E23 /* RxRelay.xcframework in Embed Frameworks */, + 26001CD62D792494009A8E23 /* Reusable.xcframework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -630,51 +646,6 @@ 04399AA91D1C304300E99CD9 /* Ring-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Ring-Bridging-Header.h"; sourceTree = "<group>"; }; 04399AAA1D1C304300E99CD9 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = "<group>"; }; 04399AAB1D1C304300E99CD9 /* Utils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Utils.mm; sourceTree = "<group>"; }; - 04399AB21D1C341A00E99CD9 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = ../fat/lib/libavcodec.a; sourceTree = "<group>"; }; - 04399AB31D1C341A00E99CD9 /* libavdevice.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavdevice.a; path = ../fat/lib/libavdevice.a; sourceTree = "<group>"; }; - 04399AB41D1C341A00E99CD9 /* libavfilter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavfilter.a; path = ../fat/lib/libavfilter.a; sourceTree = "<group>"; }; - 04399AB51D1C341A00E99CD9 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavformat.a; path = ../fat/lib/libavformat.a; sourceTree = "<group>"; }; - 04399AB61D1C341A00E99CD9 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = ../fat/lib/libavutil.a; sourceTree = "<group>"; }; - 04399AB71D1C341A00E99CD9 /* libFLAC.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libFLAC.a; path = ../fat/lib/libFLAC.a; sourceTree = "<group>"; }; - 04399AB81D1C341A00E99CD9 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgmp.a; path = ../fat/lib/libgmp.a; sourceTree = "<group>"; }; - 04399AB91D1C341A00E99CD9 /* libgnutls.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgnutls.a; path = ../fat/lib/libgnutls.a; sourceTree = "<group>"; }; - 04399ABB1D1C341A00E99CD9 /* libhogweed.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libhogweed.a; path = ../fat/lib/libhogweed.a; sourceTree = "<group>"; }; - 04399ABD1D1C341A00E99CD9 /* libixml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libixml.a; path = ../fat/lib/libixml.a; sourceTree = "<group>"; }; - 04399ABE1D1C341A00E99CD9 /* libjsoncpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjsoncpp.a; path = ../fat/lib/libjsoncpp.a; sourceTree = "<group>"; }; - 04399ABF1D1C341A00E99CD9 /* libmsgpackc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsgpackc.a; path = ../fat/lib/libmsgpackc.a; sourceTree = "<group>"; }; - 04399AC01D1C341A00E99CD9 /* libnettle.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libnettle.a; path = ../fat/lib/libnettle.a; sourceTree = "<group>"; }; - 04399AC11D1C341A00E99CD9 /* libogg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libogg.a; path = ../fat/lib/libogg.a; sourceTree = "<group>"; }; - 04399AC21D1C341A00E99CD9 /* libopendht.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopendht.a; path = ../fat/lib/libopendht.a; sourceTree = "<group>"; }; - 04399AC31D1C341A00E99CD9 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = ../fat/lib/libopus.a; sourceTree = "<group>"; }; - 04399AC41D1C341A00E99CD9 /* libpcre.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpcre.a; path = ../fat/lib/libpcre.a; sourceTree = "<group>"; }; - 04399AC51D1C341A00E99CD9 /* libpcreposix.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpcreposix.a; path = ../fat/lib/libpcreposix.a; sourceTree = "<group>"; }; - 04399AC61D1C341A00E99CD9 /* libpj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpj.a; path = ../fat/lib/libpj.a; sourceTree = "<group>"; }; - 04399AC71D1C341A00E99CD9 /* libpjlib-util.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpjlib-util.a"; path = "../fat/lib/libpjlib-util.a"; sourceTree = "<group>"; }; - 04399AC81D1C341A00E99CD9 /* libpjmedia-audiodev.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpjmedia-audiodev.a"; path = "../fat/lib/libpjmedia-audiodev.a"; sourceTree = "<group>"; }; - 04399AC91D1C341A00E99CD9 /* libpjmedia-codec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpjmedia-codec.a"; path = "../fat/lib/libpjmedia-codec.a"; sourceTree = "<group>"; }; - 04399ACA1D1C341A00E99CD9 /* libpjmedia-videodev.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpjmedia-videodev.a"; path = "../fat/lib/libpjmedia-videodev.a"; sourceTree = "<group>"; }; - 04399ACB1D1C341A00E99CD9 /* libpjmedia.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpjmedia.a; path = ../fat/lib/libpjmedia.a; sourceTree = "<group>"; }; - 04399ACC1D1C341A00E99CD9 /* libpjnath.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpjnath.a; path = ../fat/lib/libpjnath.a; sourceTree = "<group>"; }; - 04399ACD1D1C341A00E99CD9 /* libpjsip-simple.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpjsip-simple.a"; path = "../fat/lib/libpjsip-simple.a"; sourceTree = "<group>"; }; - 04399ACE1D1C341A00E99CD9 /* libpjsip-ua.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libpjsip-ua.a"; path = "../fat/lib/libpjsip-ua.a"; sourceTree = "<group>"; }; - 04399ACF1D1C341A00E99CD9 /* libpjsip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpjsip.a; path = ../fat/lib/libpjsip.a; sourceTree = "<group>"; }; - 04399AD01D1C341A00E99CD9 /* libpjsua.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpjsua.a; path = ../fat/lib/libpjsua.a; sourceTree = "<group>"; }; - 04399AD11D1C341A00E99CD9 /* libpjsua2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpjsua2.a; path = ../fat/lib/libpjsua2.a; sourceTree = "<group>"; }; - 04399AD41D1C341A00E99CD9 /* libring.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libring.a; path = ../fat/lib/libring.a; sourceTree = "<group>"; }; - 04399AD51D1C341A00E99CD9 /* libsamplerate.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsamplerate.a; path = ../fat/lib/libsamplerate.a; sourceTree = "<group>"; }; - 04399AD61D1C341A00E99CD9 /* libsndfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsndfile.a; path = ../fat/lib/libsndfile.a; sourceTree = "<group>"; }; - 04399AD71D1C341A00E99CD9 /* libspeex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeex.a; path = ../fat/lib/libspeex.a; sourceTree = "<group>"; }; - 04399AD81D1C341A00E99CD9 /* libspeexdsp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeexdsp.a; path = ../fat/lib/libspeexdsp.a; sourceTree = "<group>"; }; - 04399AD91D1C341A00E99CD9 /* libsrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsrtp.a; path = ../fat/lib/libsrtp.a; sourceTree = "<group>"; }; - 04399ADA1D1C341A00E99CD9 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = ../fat/lib/libswresample.a; sourceTree = "<group>"; }; - 04399ADB1D1C341A00E99CD9 /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswscale.a; path = ../fat/lib/libswscale.a; sourceTree = "<group>"; }; - 04399ADD1D1C341A00E99CD9 /* libupnp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libupnp.a; path = ../fat/lib/libupnp.a; sourceTree = "<group>"; }; - 04399ADE1D1C341A00E99CD9 /* libvorbis.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbis.a; path = ../fat/lib/libvorbis.a; sourceTree = "<group>"; }; - 04399ADF1D1C341A00E99CD9 /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisenc.a; path = ../fat/lib/libvorbisenc.a; sourceTree = "<group>"; }; - 04399AE01D1C341A00E99CD9 /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisfile.a; path = ../fat/lib/libvorbisfile.a; sourceTree = "<group>"; }; - 04399AE11D1C341A00E99CD9 /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = ../fat/lib/libvpx.a; sourceTree = "<group>"; }; - 04399AE21D1C341A00E99CD9 /* libx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libx264.a; path = ../fat/lib/libx264.a; sourceTree = "<group>"; }; - 04399AE31D1C341A00E99CD9 /* libyaml-cpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libyaml-cpp.a"; path = "../fat/lib/libyaml-cpp.a"; sourceTree = "<group>"; }; 0586C94A1F684DF600613517 /* UIImage+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Helpers.swift"; sourceTree = "<group>"; }; 0E0FF1A61FC38070003898C2 /* SQLite.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SQLite.framework; path = Carthage/Build/iOS/SQLite.framework; sourceTree = "<group>"; }; 0E0FF1A91FC3843E003898C2 /* DBContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DBContainer.swift; sourceTree = "<group>"; }; @@ -702,7 +673,6 @@ 0E4909741FEAC943005CAA50 /* CallViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = CallViewController.storyboard; sourceTree = "<group>"; }; 0E4909791FEAC9E1005CAA50 /* CallViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallViewController.swift; sourceTree = "<group>"; }; 0E49097B1FEACA4B005CAA50 /* CallViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallViewModel.swift; sourceTree = "<group>"; }; - 0E4A51CB23282BCC00357AFC /* libhttp_parser.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libhttp_parser.a; path = ../fat/lib/libhttp_parser.a; sourceTree = "<group>"; }; 0E5806F223BE42EC007D1F5D /* PlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerView.swift; sourceTree = "<group>"; }; 0E5806F423BE4307007D1F5D /* PlayerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerViewModel.swift; sourceTree = "<group>"; }; 0E5806F623BE4325007D1F5D /* PlayerView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PlayerView.xib; sourceTree = "<group>"; }; @@ -793,6 +763,52 @@ 1DF75AC5296E0C2A0055EA87 /* AddMoreParticipantsInSwarm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddMoreParticipantsInSwarm.swift; sourceTree = "<group>"; }; 26001BD72D6E5C8F009A8E23 /* libnatpmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libnatpmp.a; path = ../fat/lib/libnatpmp.a; sourceTree = "<group>"; }; 26001BDA2D6FF5F6009A8E23 /* Video+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Video+Helpers.swift"; sourceTree = "<group>"; }; + 26001BDF2D78E198009A8E23 /* libpjsua.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libpjsua.xcframework; path = ../xcframework/libpjsua.xcframework; sourceTree = "<group>"; }; + 26001BE02D78E198009A8E23 /* libsrtp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libsrtp.xcframework; path = ../xcframework/libsrtp.xcframework; sourceTree = "<group>"; }; + 26001BE12D78E198009A8E23 /* libspeexdsp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libspeexdsp.xcframework; path = ../xcframework/libspeexdsp.xcframework; sourceTree = "<group>"; }; + 26001BE22D78E199009A8E23 /* libnettle.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libnettle.xcframework; path = ../xcframework/libnettle.xcframework; sourceTree = "<group>"; }; + 26001BE32D78E199009A8E23 /* libswscale.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libswscale.xcframework; path = ../xcframework/libswscale.xcframework; sourceTree = "<group>"; }; + 26001BE42D78E199009A8E23 /* libgnutls.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgnutls.xcframework; path = ../xcframework/libgnutls.xcframework; sourceTree = "<group>"; }; + 26001BE52D78E199009A8E23 /* libcrypto.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libcrypto.xcframework; path = ../xcframework/libcrypto.xcframework; sourceTree = "<group>"; }; + 26001BE62D78E199009A8E23 /* libavutil.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavutil.xcframework; path = ../xcframework/libavutil.xcframework; sourceTree = "<group>"; }; + 26001BE72D78E199009A8E23 /* libpjsua2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libpjsua2.xcframework; path = ../xcframework/libpjsua2.xcframework; sourceTree = "<group>"; }; + 26001BE82D78E199009A8E23 /* libpjnath.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libpjnath.xcframework; path = ../xcframework/libpjnath.xcframework; sourceTree = "<group>"; }; + 26001BE92D78E19A009A8E23 /* libixml.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libixml.xcframework; path = ../xcframework/libixml.xcframework; sourceTree = "<group>"; }; + 26001BEA2D78E19A009A8E23 /* libpjmedia.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libpjmedia.xcframework; path = ../xcframework/libpjmedia.xcframework; sourceTree = "<group>"; }; + 26001BEB2D78E19A009A8E23 /* libsecp256k1.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libsecp256k1.xcframework; path = ../xcframework/libsecp256k1.xcframework; sourceTree = "<group>"; }; + 26001BEC2D78E19A009A8E23 /* libhogweed.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libhogweed.xcframework; path = ../xcframework/libhogweed.xcframework; sourceTree = "<group>"; }; + 26001BED2D78E19A009A8E23 /* libgmp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgmp.xcframework; path = ../xcframework/libgmp.xcframework; sourceTree = "<group>"; }; + 26001BEE2D78E19A009A8E23 /* libyaml-cpp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libyaml-cpp.xcframework"; path = "../xcframework/libyaml-cpp.xcframework"; sourceTree = "<group>"; }; + 26001BEF2D78E19A009A8E23 /* libswresample.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libswresample.xcframework; path = ../xcframework/libswresample.xcframework; sourceTree = "<group>"; }; + 26001BF02D78E19B009A8E23 /* libtls.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libtls.xcframework; path = ../xcframework/libtls.xcframework; sourceTree = "<group>"; }; + 26001BF12D78E19B009A8E23 /* libavcodec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavcodec.xcframework; path = ../xcframework/libavcodec.xcframework; sourceTree = "<group>"; }; + 26001BF22D78E19B009A8E23 /* libupnp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libupnp.xcframework; path = ../xcframework/libupnp.xcframework; sourceTree = "<group>"; }; + 26001BF32D78E19B009A8E23 /* libx264.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libx264.xcframework; path = ../xcframework/libx264.xcframework; sourceTree = "<group>"; }; + 26001BF42D78E19B009A8E23 /* libpjsip-simple.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libpjsip-simple.xcframework"; path = "../xcframework/libpjsip-simple.xcframework"; sourceTree = "<group>"; }; + 26001BF52D78E19C009A8E23 /* libopendht.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libopendht.xcframework; path = ../xcframework/libopendht.xcframework; sourceTree = "<group>"; }; + 26001BF62D78E19C009A8E23 /* libjami.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libjami.xcframework; path = ../xcframework/libjami.xcframework; sourceTree = "<group>"; }; + 26001BF72D78E19C009A8E23 /* libpjmedia-audiodev.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libpjmedia-audiodev.xcframework"; path = "../xcframework/libpjmedia-audiodev.xcframework"; sourceTree = "<group>"; }; + 26001BF82D78E19C009A8E23 /* libpjlib-util.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libpjlib-util.xcframework"; path = "../xcframework/libpjlib-util.xcframework"; sourceTree = "<group>"; }; + 26001BF92D78E19C009A8E23 /* libargon2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libargon2.xcframework; path = ../xcframework/libargon2.xcframework; sourceTree = "<group>"; }; + 26001BFA2D78E19C009A8E23 /* libpj.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libpj.xcframework; path = ../xcframework/libpj.xcframework; sourceTree = "<group>"; }; + 26001BFB2D78E19C009A8E23 /* libhttp_parser.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libhttp_parser.xcframework; path = ../xcframework/libhttp_parser.xcframework; sourceTree = "<group>"; }; + 26001BFC2D78E19D009A8E23 /* libopus.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libopus.xcframework; path = ../xcframework/libopus.xcframework; sourceTree = "<group>"; }; + 26001BFD2D78E19D009A8E23 /* libdhtnet.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libdhtnet.xcframework; path = ../xcframework/libdhtnet.xcframework; sourceTree = "<group>"; }; + 26001BFE2D78E19D009A8E23 /* libjsoncpp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libjsoncpp.xcframework; path = ../xcframework/libjsoncpp.xcframework; sourceTree = "<group>"; }; + 26001BFF2D78E19F009A8E23 /* libpjsip-ua.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libpjsip-ua.xcframework"; path = "../xcframework/libpjsip-ua.xcframework"; sourceTree = "<group>"; }; + 26001C002D78E19F009A8E23 /* libpjsip.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libpjsip.xcframework; path = ../xcframework/libpjsip.xcframework; sourceTree = "<group>"; }; + 26001C012D78E19F009A8E23 /* libspeex.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libspeex.xcframework; path = ../xcframework/libspeex.xcframework; sourceTree = "<group>"; }; + 26001C022D78E1A0009A8E23 /* libyuv.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libyuv.xcframework; path = ../xcframework/libyuv.xcframework; sourceTree = "<group>"; }; + 26001C032D78E1A0009A8E23 /* libavfilter.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavfilter.xcframework; path = ../xcframework/libavfilter.xcframework; sourceTree = "<group>"; }; + 26001C042D78E1A0009A8E23 /* libpjmedia-codec.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libpjmedia-codec.xcframework"; path = "../xcframework/libpjmedia-codec.xcframework"; sourceTree = "<group>"; }; + 26001C052D78E1A0009A8E23 /* libavformat.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavformat.xcframework; path = ../xcframework/libavformat.xcframework; sourceTree = "<group>"; }; + 26001C062D78E1A0009A8E23 /* libssl.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libssl.xcframework; path = ../xcframework/libssl.xcframework; sourceTree = "<group>"; }; + 26001C072D78E1A0009A8E23 /* libavdevice.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libavdevice.xcframework; path = ../xcframework/libavdevice.xcframework; sourceTree = "<group>"; }; + 26001C082D78E1A0009A8E23 /* libfmt.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libfmt.xcframework; path = ../xcframework/libfmt.xcframework; sourceTree = "<group>"; }; + 26001C092D78E1A0009A8E23 /* libgit2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libgit2.xcframework; path = ../xcframework/libgit2.xcframework; sourceTree = "<group>"; }; + 26001C0A2D78E1A1009A8E23 /* libllhttp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libllhttp.xcframework; path = ../xcframework/libllhttp.xcframework; sourceTree = "<group>"; }; + 26001C0B2D78E1A1009A8E23 /* libpjmedia-videodev.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = "libpjmedia-videodev.xcframework"; path = "../xcframework/libpjmedia-videodev.xcframework"; sourceTree = "<group>"; }; + 26001CC32D7918BD009A8E23 /* libvpx.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libvpx.xcframework; path = ../xcframework/libvpx.xcframework; sourceTree = "<group>"; }; 26069B6524C9FCE8002361A3 /* ObjCHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ObjCHandler.h; sourceTree = "<group>"; }; 26069B6624C9FCE8002361A3 /* ObjCHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ObjCHandler.m; sourceTree = "<group>"; }; 2607176D2CAC454E00494875 /* ComposeNewMessageCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ComposeNewMessageCoordinator.swift; path = Ring/Features/Conversations/ComposeNewMessageCoordinator.swift; sourceTree = SOURCE_ROOT; }; @@ -890,7 +906,6 @@ 267B956D2C233E2600353B01 /* GeneralSettingsViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsViews.swift; sourceTree = "<group>"; }; 267B95892C2478F100353B01 /* SipAccountDetailModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SipAccountDetailModel.swift; sourceTree = "<group>"; }; 267B958B2C24793500353B01 /* ManageSipAccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageSipAccountView.swift; sourceTree = "<group>"; }; - 267B958D2C2AFEEA00353B01 /* libllhttp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libllhttp.a; path = ../fat/lib/libllhttp.a; sourceTree = "<group>"; }; 267B95F82C2B5FB000353B01 /* LinkDeviceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkDeviceView.swift; sourceTree = "<group>"; }; 267B95FA2C2B5FFA00353B01 /* RevocationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevocationView.swift; sourceTree = "<group>"; }; 267CFD6E2ACCDCD70066FE15 /* SmartListNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmartListNavigationBar.swift; sourceTree = "<group>"; }; @@ -917,10 +932,6 @@ 2692557D2C5D53A300F85A1E /* Views.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Views.swift; sourceTree = "<group>"; }; 26929FD125659E5F0052A601 /* cacert.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = cacert.pem; sourceTree = "<group>"; }; 269B849326151AC10015BC72 /* libgit2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgit2.a; path = ../DEPS/arm64/lib/libgit2.a; sourceTree = "<group>"; }; - 269DA04F28D0D2E6007D51D6 /* libyuv.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libyuv.a; path = ../fat/lib/libyuv.a; sourceTree = "<group>"; }; - 269DA05028D0D2EA007D51D6 /* libsecp256k1.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsecp256k1.a; path = ../fat/lib/libsecp256k1.a; sourceTree = "<group>"; }; - 269DA05128D0D2ED007D51D6 /* libfmt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfmt.a; path = ../fat/lib/libfmt.a; sourceTree = "<group>"; }; - 269DA05228D0D2EF007D51D6 /* libgit2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgit2.a; path = ../fat/lib/libgit2.a; sourceTree = "<group>"; }; 269DA08428D0DA18007D51D6 /* libyaml-cpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libyaml-cpp.a"; path = "../DEPS/x86_64/lib/libyaml-cpp.a"; sourceTree = "<group>"; }; 269DA09828E23D37007D51D6 /* MessageRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageRowView.swift; sourceTree = "<group>"; }; 269DA09C28E23F57007D51D6 /* MessagesListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesListView.swift; sourceTree = "<group>"; }; @@ -1000,7 +1011,6 @@ 26BC15ED29302B00003FC8D1 /* ContactMessageVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactMessageVM.swift; sourceTree = "<group>"; }; 26BCBBD22A964ABC0001EE38 /* ConferenceActionsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConferenceActionsModel.swift; sourceTree = "<group>"; }; 26BCBBD42A965EFC0001EE38 /* PictureInPictureManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PictureInPictureManager.swift; sourceTree = "<group>"; }; - 26C4845B2A796D69005BC767 /* libdhtnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libdhtnet.a; path = ../fat/lib/libdhtnet.a; sourceTree = "<group>"; }; 26C4D07D2C62730100B1218C /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = "<group>"; }; 26C6A25F2927EC4E007786B8 /* SwarmInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwarmInfo.swift; sourceTree = "<group>"; }; 26C92D2626F6AA1100DEEF75 /* NotificationPrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationPrefixHeader.pch; sourceTree = "<group>"; }; @@ -1032,6 +1042,7 @@ 26F5442C2C5815770069A7A4 /* WelcomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeView.swift; sourceTree = "<group>"; }; 26F544A22C5AABD20069A7A4 /* CreateAccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateAccountView.swift; sourceTree = "<group>"; }; 26F5E11A26F91D98001BECCE /* NotificationService-release.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NotificationService-release.entitlements"; sourceTree = "<group>"; }; + 26F82D032D7A09AE00954A7B /* libnatpmp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = libnatpmp.xcframework; path = ../xcframework/libnatpmp.xcframework; sourceTree = "<group>"; }; 26FDF4182C1101C2009D036B /* JamiBaseUITest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JamiBaseUITest.swift; sourceTree = "<group>"; }; 26FDF43C2C1353A9009D036B /* AccountSummaryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSummaryView.swift; sourceTree = "<group>"; }; 26FDF43E2C1353BA009D036B /* AccountSummaryVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSummaryVM.swift; sourceTree = "<group>"; }; @@ -1058,7 +1069,6 @@ 44DFB397288704820023878C /* RxRelay.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = RxRelay.xcframework; path = Carthage/Build/RxRelay.xcframework; sourceTree = "<group>"; }; 44DFB398288704860023878C /* SQLite.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SQLite.xcframework; path = Carthage/Build/SQLite.xcframework; sourceTree = "<group>"; }; 44DFB3992887048A0023878C /* RealmSwift.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = RealmSwift.xcframework; path = Carthage/Build/RealmSwift.xcframework; sourceTree = "<group>"; }; - 44EDA53D28FE22FD00BEB99A /* libjami.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjami.a; path = ../fat/lib/libjami.a; sourceTree = "<group>"; }; 5516C29E1E71CEFF009D3D2D /* AccountModelHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountModelHelper.swift; sourceTree = "<group>"; }; 5557FD491E81AE850043E394 /* AccountModelHelperTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountModelHelperTests.swift; sourceTree = "<group>"; }; 557086501E8ADB9D001A7CE4 /* SystemAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemAdapter.h; sourceTree = "<group>"; }; @@ -1082,7 +1092,6 @@ 56BBC9A01ED714DF00CDAF8B /* MessagesAdapterDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesAdapterDelegate.swift; sourceTree = "<group>"; }; 56BBC9A11ED714DF00CDAF8B /* ConversationsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConversationsService.swift; sourceTree = "<group>"; }; 56BBC9BB1ED7161200CDAF8B /* Date+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Date+Helpers.swift"; sourceTree = "<group>"; }; - 56BBC9D31EDC7A6D00CDAF8B /* libargon2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libargon2.a; path = ../fat/lib/libargon2.a; sourceTree = "<group>"; }; 56BBC9DD1EDDC9D300CDAF8B /* LookupNameResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LookupNameResponse.h; sourceTree = "<group>"; }; 56BBC9DE1EDDC9D300CDAF8B /* LookupNameResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LookupNameResponse.m; sourceTree = "<group>"; }; 56C715FD1F0D36C600770048 /* ContactsAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsAdapter.h; sourceTree = "<group>"; }; @@ -1094,9 +1103,6 @@ 621231F81F880EDF009B86F0 /* UILabel+Ring.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UILabel+Ring.swift"; sourceTree = "<group>"; }; 623660A920092081002598C1 /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = ../../daemon/src; sourceTree = "<group>"; }; 627F11F020348FBF006560B5 /* AvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AvatarView.swift; sourceTree = "<group>"; }; - 628F4DCA206BE23B0009C44C /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = ../fat/lib/libssl.a; sourceTree = "<group>"; }; - 628F4DCC206BF4730009C44C /* libtls.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtls.a; path = ../fat/lib/libtls.a; sourceTree = "<group>"; }; - 628F4DCE206C0AEE0009C44C /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = ../fat/lib/libcrypto.a; sourceTree = "<group>"; }; 62A88D351F6C2E5F00F8AB18 /* PresenceAdapter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresenceAdapter.h; sourceTree = "<group>"; }; 62A88D361F6C2ED400F8AB18 /* PresenceAdapterDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresenceAdapterDelegate.swift; sourceTree = "<group>"; }; 62A88D381F6C323500F8AB18 /* PresenceAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PresenceAdapter.mm; sourceTree = "<group>"; }; @@ -1201,76 +1207,75 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 269DA05E28D0D366007D51D6 /* libhogweed.a in Frameworks */, - 649AD3C324B4CFC700A0236D /* libsqlite3.tbd in Frameworks */, - 269DA06A28D0D366007D51D6 /* libpjmedia.a in Frameworks */, - 269DA06328D0D366007D51D6 /* libopendht.a in Frameworks */, - 269DA07028D0D366007D51D6 /* libpjsua2.a in Frameworks */, - 269DA05728D0D366007D51D6 /* libavformat.a in Frameworks */, 04399A981D1C2F6100E99CD9 /* libz.tbd in Frameworks */, - 269DA07228D0D366007D51D6 /* libsecp256k1.a in Frameworks */, + 26001C122D78E1A1009A8E23 /* libnettle.xcframework in Frameworks */, 649AD3C724B4D00100A0236D /* libc++.tbd in Frameworks */, - 269DA07428D0D366007D51D6 /* libspeexdsp.a in Frameworks */, - 269DA06C28D0D366007D51D6 /* libpjsip-simple.a in Frameworks */, - 26001BD92D6E5E40009A8E23 /* libnatpmp.a in Frameworks */, + 26001C262D78E1A2009A8E23 /* libhogweed.xcframework in Frameworks */, + 26001CCF2D79248E009A8E23 /* RxDataSources.xcframework in Frameworks */, + 26001C3A2D78E1A3009A8E23 /* libjami.xcframework in Frameworks */, 6452144424B4ACA7007203D5 /* CoreLocation.framework in Frameworks */, - 26CA4C5A2AB23CCF00AEF8F5 /* libixml.a in Frameworks */, - 269DA05C28D0D366007D51D6 /* libgmp.a in Frameworks */, - 269DA05328D0D366007D51D6 /* libargon2.a in Frameworks */, + 26001C1A2D78E1A1009A8E23 /* libavutil.xcframework in Frameworks */, + 26001C1C2D78E1A1009A8E23 /* libpjsua2.xcframework in Frameworks */, + 26001C542D78E1A4009A8E23 /* libavfilter.xcframework in Frameworks */, + 26001C202D78E1A2009A8E23 /* libixml.xcframework in Frameworks */, 44DFB3AC288704900023878C /* GSKStretchyHeaderView.xcframework in Frameworks */, 0ECB4E2A22B2D4BB0097CD7B /* CallKit.framework in Frameworks */, - 269DA05628D0D366007D51D6 /* libavfilter.a in Frameworks */, - 44EDA53E28FE232400BEB99A /* libjami.a in Frameworks */, + 26001C1E2D78E1A2009A8E23 /* libpjnath.xcframework in Frameworks */, 0ECEE9A3220D1935000E1CF4 /* VideoToolbox.framework in Frameworks */, - 269DA07D28D0D367007D51D6 /* libyaml-cpp.a in Frameworks */, - 269DA05D28D0D366007D51D6 /* libgnutls.a in Frameworks */, - 44DFB3B4288704910023878C /* RxRelay.xcframework in Frameworks */, - 269DA07528D0D366007D51D6 /* libsrtp.a in Frameworks */, - 26CA4C5B2AB23CCF00AEF8F5 /* libupnp.a in Frameworks */, - 44DFB3B0288704910023878C /* Reusable.xcframework in Frameworks */, - 269DA05428D0D366007D51D6 /* libavcodec.a in Frameworks */, - 269DA06F28D0D366007D51D6 /* libpjsua.a in Frameworks */, - 26C4845D2A796DC9005BC767 /* libdhtnet.a in Frameworks */, - 269DA07328D0D366007D51D6 /* libspeex.a in Frameworks */, - 269DA06B28D0D366007D51D6 /* libpjnath.a in Frameworks */, + 26001C482D78E1A3009A8E23 /* libdhtnet.xcframework in Frameworks */, + 26001C322D78E1A2009A8E23 /* libupnp.xcframework in Frameworks */, + 26001C4C2D78E1A3009A8E23 /* libpjsip-ua.xcframework in Frameworks */, + 26001C562D78E1A4009A8E23 /* libpjmedia-codec.xcframework in Frameworks */, + 26001C5A2D78E1A4009A8E23 /* libssl.xcframework in Frameworks */, 043866211D218B1100E06CE2 /* AudioToolbox.framework in Frameworks */, - 269DA06728D0D366007D51D6 /* libpjmedia-audiodev.a in Frameworks */, - 269DA06828D0D366007D51D6 /* libpjmedia-codec.a in Frameworks */, - 44DFB3A6288704900023878C /* RxBlocking.xcframework in Frameworks */, - 44DFB3B2288704910023878C /* RxCocoa.xcframework in Frameworks */, - 269DA07B28D0D367007D51D6 /* libvpx.a in Frameworks */, - 44DFB39E2887048F0023878C /* SwiftyBeaver.xcframework in Frameworks */, - 269DA06928D0D366007D51D6 /* libpjmedia-videodev.a in Frameworks */, - 44DFB3B6288704910023878C /* SQLite.xcframework in Frameworks */, - 269DA07E28D0D367007D51D6 /* libyuv.a in Frameworks */, - 269DA06628D0D366007D51D6 /* libpjlib-util.a in Frameworks */, - 269DA06E28D0D366007D51D6 /* libpjsip.a in Frameworks */, - 269DA05B28D0D366007D51D6 /* libgit2.a in Frameworks */, - 269DA06D28D0D366007D51D6 /* libpjsip-ua.a in Frameworks */, - 44DFB3A42887048F0023878C /* RxDataSources.xcframework in Frameworks */, + 26001CD12D792490009A8E23 /* RxCocoa.xcframework in Frameworks */, + 26001CD52D792494009A8E23 /* Reusable.xcframework in Frameworks */, + 26001C422D78E1A3009A8E23 /* libpj.xcframework in Frameworks */, + 26001C2E2D78E1A2009A8E23 /* libtls.xcframework in Frameworks */, + 26001C462D78E1A3009A8E23 /* libopus.xcframework in Frameworks */, + 26001CC92D792489009A8E23 /* SQLite.xcframework in Frameworks */, + 26001C342D78E1A2009A8E23 /* libx264.xcframework in Frameworks */, 44DFB3AE288704900023878C /* AMPopTip.xcframework in Frameworks */, - 269DA05928D0D366007D51D6 /* libcrypto.a in Frameworks */, - 44DFB39C2887048F0023878C /* RxSwift.xcframework in Frameworks */, - 269DA07628D0D366007D51D6 /* libssl.a in Frameworks */, + 26001C142D78E1A1009A8E23 /* libswscale.xcframework in Frameworks */, + 26001C302D78E1A2009A8E23 /* libavcodec.xcframework in Frameworks */, + 26001C4E2D78E1A3009A8E23 /* libpjsip.xcframework in Frameworks */, + 26001C662D78E1EC009A8E23 /* SwiftyBeaver.xcframework in Frameworks */, + 26001C402D78E1A3009A8E23 /* libargon2.xcframework in Frameworks */, + 26001C522D78E1A4009A8E23 /* libyuv.xcframework in Frameworks */, + 26001C282D78E1A2009A8E23 /* libgmp.xcframework in Frameworks */, + 26001C5E2D78E1A4009A8E23 /* libfmt.xcframework in Frameworks */, + 26001C382D78E1A2009A8E23 /* libopendht.xcframework in Frameworks */, + 26001C242D78E1A2009A8E23 /* libsecp256k1.xcframework in Frameworks */, + 26001CD32D792492009A8E23 /* RxBlocking.xcframework in Frameworks */, + 26001CC42D7918BD009A8E23 /* libvpx.xcframework in Frameworks */, + 26001CCD2D79248D009A8E23 /* RxRelay.xcframework in Frameworks */, 44DFB3A8288704900023878C /* Differentiator.xcframework in Frameworks */, + 26001C102D78E1A1009A8E23 /* libspeexdsp.xcframework in Frameworks */, + 26001C4A2D78E1A3009A8E23 /* libjsoncpp.xcframework in Frameworks */, 5593D7D32B7FE00A00DA109C /* MCEmojiPicker in Frameworks */, - 269DA07C28D0D367007D51D6 /* libx264.a in Frameworks */, - 269DA07928D0D367007D51D6 /* libtls.a in Frameworks */, - 269DA05F28D0D366007D51D6 /* libhttp_parser.a in Frameworks */, - 269DA05528D0D366007D51D6 /* libavdevice.a in Frameworks */, - 269DA06228D0D366007D51D6 /* libnettle.a in Frameworks */, - 269DA07828D0D366007D51D6 /* libswscale.a in Frameworks */, - 269DA06528D0D366007D51D6 /* libpj.a in Frameworks */, - 269DA05A28D0D366007D51D6 /* libfmt.a in Frameworks */, + 26001C2C2D78E1A2009A8E23 /* libswresample.xcframework in Frameworks */, + 26001CCB2D79248B009A8E23 /* RxSwift.xcframework in Frameworks */, + 26001C3E2D78E1A3009A8E23 /* libpjlib-util.xcframework in Frameworks */, + 26001C0E2D78E1A1009A8E23 /* libsrtp.xcframework in Frameworks */, + 26001C0C2D78E1A1009A8E23 /* libpjsua.xcframework in Frameworks */, + 26001C642D78E1A4009A8E23 /* libpjmedia-videodev.xcframework in Frameworks */, + 26F82D042D7A09AF00954A7B /* libnatpmp.xcframework in Frameworks */, + 26001C5C2D78E1A4009A8E23 /* libavdevice.xcframework in Frameworks */, 04399A971D1C2F6100E99CD9 /* libbz2.tbd in Frameworks */, - 269DA06428D0D366007D51D6 /* libopus.a in Frameworks */, - 269DA06128D0D366007D51D6 /* libjsoncpp.a in Frameworks */, + 26001C582D78E1A4009A8E23 /* libavformat.xcframework in Frameworks */, + 26001C182D78E1A1009A8E23 /* libcrypto.xcframework in Frameworks */, + 26001C162D78E1A1009A8E23 /* libgnutls.xcframework in Frameworks */, + 26001C622D78E1A4009A8E23 /* libllhttp.xcframework in Frameworks */, + 26001C222D78E1A2009A8E23 /* libpjmedia.xcframework in Frameworks */, + 26001C3C2D78E1A3009A8E23 /* libpjmedia-audiodev.xcframework in Frameworks */, 04399A941D1C2F5800E99CD9 /* libiconv.tbd in Frameworks */, - 267B958F2C2AFFD700353B01 /* libllhttp.a in Frameworks */, + 26001C602D78E1A4009A8E23 /* libgit2.xcframework in Frameworks */, + 26001C442D78E1A3009A8E23 /* libhttp_parser.xcframework in Frameworks */, 04399A2C1D1C2DE900E99CD9 /* AVFoundation.framework in Frameworks */, - 269DA07728D0D366007D51D6 /* libswresample.a in Frameworks */, + 26001C2A2D78E1A2009A8E23 /* libyaml-cpp.xcframework in Frameworks */, + 26001C502D78E1A3009A8E23 /* libspeex.xcframework in Frameworks */, + 26001C362D78E1A2009A8E23 /* libpjsip-simple.xcframework in Frameworks */, 04399A2A1D1C2DE300E99CD9 /* CoreMedia.framework in Frameworks */, - 269DA08228D0D68F007D51D6 /* libavutil.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1292,67 +1297,68 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 269DA03C28D0D2E5007D51D6 /* libpjmedia.a in Frameworks */, - 269DA04A28D0D2E6007D51D6 /* libtls.a in Frameworks */, - 269DA03D28D0D2E5007D51D6 /* libpjnath.a in Frameworks */, + 26001CB62D78E3E7009A8E23 /* libswscale.xcframework in Frameworks */, 26BB43852670150E00019CF6 /* libbz2.tbd in Frameworks */, - 44EDA53F28FE234500BEB99A /* libjami.a in Frameworks */, + 26001CAA2D78E3E7009A8E23 /* libsecp256k1.xcframework in Frameworks */, + 26001C882D78E3E6009A8E23 /* libjsoncpp.xcframework in Frameworks */, + 26001CC02D78E3E8009A8E23 /* libyuv.xcframework in Frameworks */, 26BB43842670144800019CF6 /* libz.1.2.8.tbd in Frameworks */, + 26001C942D78E3E6009A8E23 /* libpjlib-util.xcframework in Frameworks */, + 26001CAC2D78E3E7009A8E23 /* libspeex.xcframework in Frameworks */, + 26001C7C2D78E3E5009A8E23 /* libgmp.xcframework in Frameworks */, + 26001C902D78E3E6009A8E23 /* libopus.xcframework in Frameworks */, + 26001C9C2D78E3E6009A8E23 /* libpjmedia.xcframework in Frameworks */, + 26001CA22D78E3E7009A8E23 /* libpjsip-ua.xcframework in Frameworks */, + 26001CBA2D78E3E8009A8E23 /* libupnp.xcframework in Frameworks */, + 26001C842D78E3E5009A8E23 /* libixml.xcframework in Frameworks */, + 26001C802D78E3E5009A8E23 /* libhogweed.xcframework in Frameworks */, + 26001CA42D78E3E7009A8E23 /* libpjsip.xcframework in Frameworks */, 26BB43822670141100019CF6 /* libz.1.tbd in Frameworks */, + 26001C7A2D78E3E5009A8E23 /* libgit2.xcframework in Frameworks */, + 26001C6E2D78E3E5009A8E23 /* libavfilter.xcframework in Frameworks */, 26BB43802670140600019CF6 /* libz.1.2.5.tbd in Frameworks */, - 269DA02C28D0D2E5007D51D6 /* libavutil.a in Frameworks */, - 269DA04628D0D2E6007D51D6 /* libsrtp.a in Frameworks */, - 269DA04728D0D2E6007D51D6 /* libssl.a in Frameworks */, - 269DA02728D0D2E5007D51D6 /* libargon2.a in Frameworks */, - 269DA03828D0D2E5007D51D6 /* libpjlib-util.a in Frameworks */, - 269DA04928D0D2E6007D51D6 /* libswscale.a in Frameworks */, - 269DA03428D0D2E5007D51D6 /* libnettle.a in Frameworks */, - 269DA02928D0D2E5007D51D6 /* libavdevice.a in Frameworks */, - 269DA08628D0DFE3007D51D6 /* libyaml-cpp.a in Frameworks */, - 269DA03028D0D2E5007D51D6 /* libhogweed.a in Frameworks */, + 26001C6C2D78E3E5009A8E23 /* libavdevice.xcframework in Frameworks */, + 26001C8C2D78E3E6009A8E23 /* libnettle.xcframework in Frameworks */, 26BB437E267013FB00019CF6 /* libz.1.2.11.tbd in Frameworks */, + 26001C782D78E3E5009A8E23 /* libfmt.xcframework in Frameworks */, 26BB437D267013F600019CF6 /* libz.1.1.3.tbd in Frameworks */, + 26001C862D78E3E5009A8E23 /* libjami.xcframework in Frameworks */, + 26001CBC2D78E3E8009A8E23 /* libx264.xcframework in Frameworks */, + 26001C6A2D78E3E5009A8E23 /* libavcodec.xcframework in Frameworks */, + 26001C702D78E3E5009A8E23 /* libavformat.xcframework in Frameworks */, 26A88C7926700BC500888EED /* libiconv.tbd in Frameworks */, - 26C4845A2A79645E005BC767 /* libfmt.a in Frameworks */, - 26CA4C542AB23A8500AEF8F5 /* libupnp.a in Frameworks */, - 269DA03328D0D2E5007D51D6 /* libjsoncpp.a in Frameworks */, - 269DA02E28D0D2E5007D51D6 /* libgmp.a in Frameworks */, - 267B958E2C2AFF0F00353B01 /* libllhttp.a in Frameworks */, - 269DA07F28D0D5D0007D51D6 /* libgit2.a in Frameworks */, - 269DA02B28D0D2E5007D51D6 /* libavformat.a in Frameworks */, + 26001CA82D78E3E7009A8E23 /* libpjsua2.xcframework in Frameworks */, + 26001CBE2D78E3E8009A8E23 /* libyaml-cpp.xcframework in Frameworks */, 623196862BAE498900C2252C /* Atomics in Frameworks */, + 26001CB42D78E3E7009A8E23 /* libswresample.xcframework in Frameworks */, + 26001C742D78E3E5009A8E23 /* libcrypto.xcframework in Frameworks */, 26A88C7826700B7500888EED /* libc++.tbd in Frameworks */, - 269DA03E28D0D2E5007D51D6 /* libpjsip-simple.a in Frameworks */, - 26CA4C592AB23C4100AEF8F5 /* libixml.a in Frameworks */, + 26001C9A2D78E3E6009A8E23 /* libpjmedia-videodev.xcframework in Frameworks */, + 26001C822D78E3E5009A8E23 /* libhttp_parser.xcframework in Frameworks */, + 26001CA62D78E3E7009A8E23 /* libpjsua.xcframework in Frameworks */, + 26001CB82D78E3E7009A8E23 /* libtls.xcframework in Frameworks */, + 26001CC62D7918E4009A8E23 /* libvpx.xcframework in Frameworks */, + 26001C8E2D78E3E6009A8E23 /* libopendht.xcframework in Frameworks */, + 26001C8A2D78E3E6009A8E23 /* libllhttp.xcframework in Frameworks */, 26A88C7626700ABC00888EED /* libz.tbd in Frameworks */, - 26C4845C2A796D87005BC767 /* libdhtnet.a in Frameworks */, 26A88C75267009EC00888EED /* CoreVideo.framework in Frameworks */, - 26001BD82D6E5D1A009A8E23 /* libnatpmp.a in Frameworks */, - 269DA08028D0D614007D51D6 /* libsecp256k1.a in Frameworks */, - 269DA03B28D0D2E5007D51D6 /* libpjmedia-videodev.a in Frameworks */, - 269DA04128D0D2E5007D51D6 /* libpjsua.a in Frameworks */, + 26001C762D78E3E5009A8E23 /* libdhtnet.xcframework in Frameworks */, + 26001C962D78E3E6009A8E23 /* libpjmedia-audiodev.xcframework in Frameworks */, + 26001C7E2D78E3E5009A8E23 /* libgnutls.xcframework in Frameworks */, 26A88C73267009A700888EED /* AVFoundation.framework in Frameworks */, - 269DA04C28D0D2E6007D51D6 /* libvpx.a in Frameworks */, - 269DA04428D0D2E6007D51D6 /* libspeex.a in Frameworks */, + 26001C682D78E3E4009A8E23 /* libargon2.xcframework in Frameworks */, 26A88C722670099D00888EED /* AudioToolbox.framework in Frameworks */, - 269DA03928D0D2E5007D51D6 /* libpjmedia-audiodev.a in Frameworks */, - 269DA03628D0D2E5007D51D6 /* libopus.a in Frameworks */, - 269DA03528D0D2E5007D51D6 /* libopendht.a in Frameworks */, - 269DA02D28D0D2E5007D51D6 /* libcrypto.a in Frameworks */, - 269DA02F28D0D2E5007D51D6 /* libgnutls.a in Frameworks */, - 269DA04828D0D2E6007D51D6 /* libswresample.a in Frameworks */, 26A88C712670099500888EED /* VideoToolbox.framework in Frameworks */, - 269DA04228D0D2E5007D51D6 /* libpjsua2.a in Frameworks */, - 269DA03728D0D2E5007D51D6 /* libpj.a in Frameworks */, - 269DA04528D0D2E6007D51D6 /* libspeexdsp.a in Frameworks */, - 269DA02A28D0D2E5007D51D6 /* libavfilter.a in Frameworks */, + 26001C722D78E3E5009A8E23 /* libavutil.xcframework in Frameworks */, + 26001CB22D78E3E7009A8E23 /* libssl.xcframework in Frameworks */, + 26001C9E2D78E3E6009A8E23 /* libpjnath.xcframework in Frameworks */, + 26001CB02D78E3E7009A8E23 /* libsrtp.xcframework in Frameworks */, + 26001CAE2D78E3E7009A8E23 /* libspeexdsp.xcframework in Frameworks */, 26A88C702670098D00888EED /* CoreMedia.framework in Frameworks */, - 269DA03A28D0D2E5007D51D6 /* libpjmedia-codec.a in Frameworks */, - 269DA04028D0D2E5007D51D6 /* libpjsip.a in Frameworks */, - 269DA03F28D0D2E5007D51D6 /* libpjsip-ua.a in Frameworks */, - 269DA04D28D0D2E6007D51D6 /* libx264.a in Frameworks */, - 269DA03128D0D2E5007D51D6 /* libhttp_parser.a in Frameworks */, - 269DA02828D0D2E5007D51D6 /* libavcodec.a in Frameworks */, + 26001C922D78E3E6009A8E23 /* libpj.xcframework in Frameworks */, + 26F82D062D7A09C300954A7B /* libnatpmp.xcframework in Frameworks */, + 26001CA02D78E3E6009A8E23 /* libpjsip-simple.xcframework in Frameworks */, + 26001C982D78E3E6009A8E23 /* libpjmedia-codec.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1381,17 +1387,56 @@ 02AED8171DD4C4B000F740BA /* Frameworks */ = { isa = PBXGroup; children = ( - 26001BD72D6E5C8F009A8E23 /* libnatpmp.a */, - 267B958D2C2AFEEA00353B01 /* libllhttp.a */, + 26F82D032D7A09AE00954A7B /* libnatpmp.xcframework */, + 26001CC32D7918BD009A8E23 /* libvpx.xcframework */, + 26001BF92D78E19C009A8E23 /* libargon2.xcframework */, + 26001BF12D78E19B009A8E23 /* libavcodec.xcframework */, + 26001C072D78E1A0009A8E23 /* libavdevice.xcframework */, + 26001C032D78E1A0009A8E23 /* libavfilter.xcframework */, + 26001C052D78E1A0009A8E23 /* libavformat.xcframework */, + 26001BE62D78E199009A8E23 /* libavutil.xcframework */, + 26001BE52D78E199009A8E23 /* libcrypto.xcframework */, + 26001BFD2D78E19D009A8E23 /* libdhtnet.xcframework */, + 26001C082D78E1A0009A8E23 /* libfmt.xcframework */, + 26001C092D78E1A0009A8E23 /* libgit2.xcframework */, + 26001BED2D78E19A009A8E23 /* libgmp.xcframework */, + 26001BE42D78E199009A8E23 /* libgnutls.xcframework */, + 26001BEC2D78E19A009A8E23 /* libhogweed.xcframework */, + 26001BFB2D78E19C009A8E23 /* libhttp_parser.xcframework */, + 26001BE92D78E19A009A8E23 /* libixml.xcframework */, + 26001BF62D78E19C009A8E23 /* libjami.xcframework */, + 26001BFE2D78E19D009A8E23 /* libjsoncpp.xcframework */, + 26001C0A2D78E1A1009A8E23 /* libllhttp.xcframework */, + 26001BE22D78E199009A8E23 /* libnettle.xcframework */, + 26001BF52D78E19C009A8E23 /* libopendht.xcframework */, + 26001BFC2D78E19D009A8E23 /* libopus.xcframework */, + 26001BFA2D78E19C009A8E23 /* libpj.xcframework */, + 26001BF82D78E19C009A8E23 /* libpjlib-util.xcframework */, + 26001BF72D78E19C009A8E23 /* libpjmedia-audiodev.xcframework */, + 26001C042D78E1A0009A8E23 /* libpjmedia-codec.xcframework */, + 26001C0B2D78E1A1009A8E23 /* libpjmedia-videodev.xcframework */, + 26001BEA2D78E19A009A8E23 /* libpjmedia.xcframework */, + 26001BE82D78E199009A8E23 /* libpjnath.xcframework */, + 26001BF42D78E19B009A8E23 /* libpjsip-simple.xcframework */, + 26001BFF2D78E19F009A8E23 /* libpjsip-ua.xcframework */, + 26001C002D78E19F009A8E23 /* libpjsip.xcframework */, + 26001BDF2D78E198009A8E23 /* libpjsua.xcframework */, + 26001BE72D78E199009A8E23 /* libpjsua2.xcframework */, + 26001BEB2D78E19A009A8E23 /* libsecp256k1.xcframework */, + 26001C012D78E19F009A8E23 /* libspeex.xcframework */, + 26001BE12D78E198009A8E23 /* libspeexdsp.xcframework */, + 26001BE02D78E198009A8E23 /* libsrtp.xcframework */, + 26001C062D78E1A0009A8E23 /* libssl.xcframework */, + 26001BEF2D78E19A009A8E23 /* libswresample.xcframework */, + 26001BE32D78E199009A8E23 /* libswscale.xcframework */, + 26001BF02D78E19B009A8E23 /* libtls.xcframework */, + 26001BF22D78E19B009A8E23 /* libupnp.xcframework */, + 26001BF32D78E19B009A8E23 /* libx264.xcframework */, + 26001BEE2D78E19A009A8E23 /* libyaml-cpp.xcframework */, + 26001C022D78E1A0009A8E23 /* libyuv.xcframework */, 26EB61382B7675FB00183FF4 /* Embassy.xcframework */, 26CA4C562AB23A9200AEF8F5 /* libxml2.2.tbd */, - 26C4845B2A796D69005BC767 /* libdhtnet.a */, - 44EDA53D28FE22FD00BEB99A /* libjami.a */, 269DA08428D0DA18007D51D6 /* libyaml-cpp.a */, - 269DA05128D0D2ED007D51D6 /* libfmt.a */, - 269DA05228D0D2EF007D51D6 /* libgit2.a */, - 269DA05028D0D2EA007D51D6 /* libsecp256k1.a */, - 269DA04F28D0D2E6007D51D6 /* libyuv.a */, 44DFB394288704750023878C /* AMPopTip.xcframework */, 44DFB391288704690023878C /* Differentiator.xcframework */, 44DFB393288704710023878C /* GSKStretchyHeaderView.xcframework */, @@ -1466,14 +1511,10 @@ 6452144524B4ACC8007203D5 /* libxml2.tbd */, 6452144324B4ACA7007203D5 /* CoreLocation.framework */, 6452144124B4AC9F007203D5 /* libc++.tbd */, - 0E4A51CB23282BCC00357AFC /* libhttp_parser.a */, 0ECB4E2922B2D4BB0097CD7B /* CallKit.framework */, 0E639459224AB32200C0890A /* Contacts.framework */, 0EB12451224AB1030025F8CA /* ContactsUI.framework */, 0ECEE9A2220D1935000E1CF4 /* VideoToolbox.framework */, - 628F4DCE206C0AEE0009C44C /* libcrypto.a */, - 628F4DCC206BF4730009C44C /* libtls.a */, - 628F4DCA206BE23B0009C44C /* libssl.a */, 0E3BD4312044A41D00A50DDF /* GSKStretchyHeaderView.framework */, 0E0FF1A61FC38070003898C2 /* SQLite.framework */, 5C093F001FB495830011D90E /* Differentiator.framework */, @@ -1486,7 +1527,6 @@ 56559B0D1EE8777600BF20E1 /* RxRealm.framework */, 564775811EE5CFC500A0C855 /* Realm.framework */, 564775821EE5CFC500A0C855 /* RealmSwift.framework */, - 56BBC9D31EDC7A6D00CDAF8B /* libargon2.a */, 568F56721EA7E38F00132D7D /* PKHUD.framework */, 02674C801E0C757B0065EDF9 /* RxBlocking.framework */, 02674C811E0C757B0065EDF9 /* RxCocoa.framework */, @@ -1721,51 +1761,6 @@ isa = PBXGroup; children = ( 02AED8181DD4C4B100F740BA /* librestbed.a */, - 04399AB21D1C341A00E99CD9 /* libavcodec.a */, - 04399AB31D1C341A00E99CD9 /* libavdevice.a */, - 04399AB41D1C341A00E99CD9 /* libavfilter.a */, - 04399AB51D1C341A00E99CD9 /* libavformat.a */, - 04399AB61D1C341A00E99CD9 /* libavutil.a */, - 04399AB71D1C341A00E99CD9 /* libFLAC.a */, - 04399AB81D1C341A00E99CD9 /* libgmp.a */, - 04399AB91D1C341A00E99CD9 /* libgnutls.a */, - 04399ABB1D1C341A00E99CD9 /* libhogweed.a */, - 04399ABD1D1C341A00E99CD9 /* libixml.a */, - 04399ABE1D1C341A00E99CD9 /* libjsoncpp.a */, - 04399ABF1D1C341A00E99CD9 /* libmsgpackc.a */, - 04399AC01D1C341A00E99CD9 /* libnettle.a */, - 04399AC11D1C341A00E99CD9 /* libogg.a */, - 04399AC21D1C341A00E99CD9 /* libopendht.a */, - 04399AC31D1C341A00E99CD9 /* libopus.a */, - 04399AC41D1C341A00E99CD9 /* libpcre.a */, - 04399AC51D1C341A00E99CD9 /* libpcreposix.a */, - 04399AC61D1C341A00E99CD9 /* libpj.a */, - 04399AC71D1C341A00E99CD9 /* libpjlib-util.a */, - 04399AC81D1C341A00E99CD9 /* libpjmedia-audiodev.a */, - 04399AC91D1C341A00E99CD9 /* libpjmedia-codec.a */, - 04399ACA1D1C341A00E99CD9 /* libpjmedia-videodev.a */, - 04399ACB1D1C341A00E99CD9 /* libpjmedia.a */, - 04399ACC1D1C341A00E99CD9 /* libpjnath.a */, - 04399ACD1D1C341A00E99CD9 /* libpjsip-simple.a */, - 04399ACE1D1C341A00E99CD9 /* libpjsip-ua.a */, - 04399ACF1D1C341A00E99CD9 /* libpjsip.a */, - 04399AD01D1C341A00E99CD9 /* libpjsua.a */, - 04399AD11D1C341A00E99CD9 /* libpjsua2.a */, - 04399AD41D1C341A00E99CD9 /* libring.a */, - 04399AD51D1C341A00E99CD9 /* libsamplerate.a */, - 04399AD61D1C341A00E99CD9 /* libsndfile.a */, - 04399AD71D1C341A00E99CD9 /* libspeex.a */, - 04399AD81D1C341A00E99CD9 /* libspeexdsp.a */, - 04399AD91D1C341A00E99CD9 /* libsrtp.a */, - 04399ADA1D1C341A00E99CD9 /* libswresample.a */, - 04399ADB1D1C341A00E99CD9 /* libswscale.a */, - 04399ADD1D1C341A00E99CD9 /* libupnp.a */, - 04399ADE1D1C341A00E99CD9 /* libvorbis.a */, - 04399ADF1D1C341A00E99CD9 /* libvorbisenc.a */, - 04399AE01D1C341A00E99CD9 /* libvorbisfile.a */, - 04399AE11D1C341A00E99CD9 /* libvpx.a */, - 04399AE21D1C341A00E99CD9 /* libx264.a */, - 04399AE31D1C341A00E99CD9 /* libyaml-cpp.a */, ); name = RING_DEPS; sourceTree = "<group>"; @@ -2634,6 +2629,7 @@ 26A88C00266FFFC800888EED /* Sources */, 26A88C01266FFFC800888EED /* Frameworks */, 26A88C02266FFFC800888EED /* Resources */, + 26F82D082D7A09C300954A7B /* Embed Frameworks */, ); buildRules = ( ); @@ -3449,11 +3445,10 @@ CURRENT_PROJECT_VERSION = 0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = MSHYCBXK85; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Ring/RingPrefixHeader.pch; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = Ring/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3462,6 +3457,7 @@ ); LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MARKETING_VERSION = 3.87; + MARKETING_VERSION = 3.86; OTHER_CFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ring; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3492,7 +3488,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Ring/RingPrefixHeader.pch; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = Ring/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3501,6 +3497,7 @@ ); LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MARKETING_VERSION = 3.87; + MARKETING_VERSION = 3.86; OTHER_CFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ring; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3519,9 +3516,8 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "c++17"; EXCLUDED_ARCHS = ""; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = RingTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3529,7 +3525,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; + LIBRARY_SEARCH_PATHS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ringTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h"; @@ -3546,7 +3542,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++17"; EXCLUDED_ARCHS = ""; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = RingTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3554,7 +3550,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; + LIBRARY_SEARCH_PATHS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ringTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h"; @@ -3677,7 +3673,6 @@ CURRENT_PROJECT_VERSION = 0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = MSHYCBXK85; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Ring/RingPrefixHeader.pch; @@ -3686,7 +3681,7 @@ "DEBUG=1", "$(inherited)", ); - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = Ring/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3695,6 +3690,7 @@ ); LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MARKETING_VERSION = 3.87; + MARKETING_VERSION = 3.86; OTHER_CFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ring; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3714,9 +3710,8 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_CXX_LANGUAGE_STANDARD = "c++17"; EXCLUDED_ARCHS = ""; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = RingTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3724,7 +3719,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; + LIBRARY_SEARCH_PATHS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ringTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h"; @@ -3780,7 +3775,6 @@ DEFINES_MODULE = YES; DEVELOPMENT_TEAM = MSHYCBXK85; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = MSHYCBXK85; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = c11; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = JamiNotificationExtension/NotificationPrefixHeader.pch; @@ -3788,10 +3782,7 @@ "DEBUG=1", "OPENDHT_JSONCPP=1", ); - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../fat/include", - "$(SRCROOT)/../fat/include/include", - ); + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = jamiNotificationExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3799,7 +3790,6 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; NEW_SETTING = ""; OTHER_CFLAGS = "-DMSGPACK_NO_BOOST"; @@ -3835,7 +3825,6 @@ DEFINES_MODULE = YES; DEVELOPMENT_TEAM = MSHYCBXK85; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = MSHYCBXK85; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = c11; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = JamiNotificationExtension/NotificationPrefixHeader.pch; @@ -3843,10 +3832,7 @@ "DEBUG=1", "OPENDHT_JSONCPP=1", ); - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../fat/include", - "$(SRCROOT)/../fat/include/include", - ); + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = jamiNotificationExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3854,7 +3840,6 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; NEW_SETTING = ""; OTHER_CFLAGS = "-DMSGPACK_NO_BOOST"; @@ -3897,10 +3882,7 @@ "$(inherited)", "OPENDHT_JSONCPP=1", ); - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../fat/include", - "$(SRCROOT)/../fat/include/include", - ); + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = jamiNotificationExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3908,7 +3890,6 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; NEW_SETTING = ""; OTHER_CFLAGS = "-DMSGPACK_NO_BOOST"; @@ -3945,10 +3926,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = JamiNotificationExtension/NotificationPrefixHeader.pch; GCC_PREPROCESSOR_DEFINITIONS = "OPENDHT_JSONCPP=1"; - HEADER_SEARCH_PATHS = ( - "$(SRCROOT)/../fat/include", - "$(SRCROOT)/../fat/include/include", - ); + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = jamiNotificationExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -3956,7 +3934,6 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; NEW_SETTING = ""; OTHER_CFLAGS = "-DMSGPACK_NO_BOOST"; OTHER_LDFLAGS = ""; @@ -4047,7 +4024,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Ring/RingPrefixHeader.pch; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = Ring/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -4056,6 +4033,7 @@ ); LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; MARKETING_VERSION = 3.87; + MARKETING_VERSION = 3.86; OTHER_CFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ring; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -4076,7 +4054,7 @@ CLANG_CXX_LANGUAGE_STANDARD = "c++17"; EXCLUDED_ARCHS = ""; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - HEADER_SEARCH_PATHS = "$(SRCROOT)/../fat/include"; + HEADER_SEARCH_PATHS = "$(SRCROOT)/../xcframework/include"; INFOPLIST_FILE = RingTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.5; LD_RUNPATH_SEARCH_PATHS = ( @@ -4084,7 +4062,6 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../fat/lib"; PRODUCT_BUNDLE_IDENTIFIER = com.savoirfairelinux.ringTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "RingTests/RingTests-Bridging-Header.h"; diff --git a/compile-ios.sh b/compile-ios.sh index b00852e5394dfb4c77c165936c3a0134205aeee0..71302fdf1076d5bb4613d37887dab2ed8b4f4d93 100755 --- a/compile-ios.sh +++ b/compile-ios.sh @@ -5,46 +5,101 @@ export MIN_IOS_VERSION=14.5 IOS_TARGET_PLATFORM=iPhoneSimulator RELEASE=0 +# Display help information +show_help() { + echo "Usage: $0 [options]" + echo "" + echo "Build Jami for iOS platforms" + echo "" + echo "Options:" + echo " --platform=PLATFORM Specify the target platform (iPhoneOS, iPhoneSimulator, all)" + echo " iPhoneOS: Build for physical iPhone devices (arm64)" + echo " iPhoneSimulator: Build for iPhone simulators (arm64, x86_64)" + echo " all: Build for both devices and simulators" + echo " --arch=ARCH Specify a specific architecture for simulator builds (arm64 or x86_64)" + echo " Note: This option is only used when building for iPhoneSimulator" + echo " --release Build in release mode with optimizations" + echo " --help Display this help message" + echo "" + echo "Examples:" + echo " $0 --platform=iPhoneOS # Build for iPhone devices" + echo " $0 --platform=iPhoneSimulator # Build for all simulator architectures" + echo " $0 --platform=iPhoneSimulator --arch=arm64 # Build only for arm64 simulator" + echo " $0 --platform=iPhoneSimulator --arch=x86_64 # Build only for x86_64 simulator" + echo " $0 --platform=all --release # Build for all platforms in release mode" + exit 0 +} + +# Process command line arguments while test -n "$1" do case "$1" in --platform=*) IOS_TARGET_PLATFORM="${1#--platform=}" ;; - --host=*) - HOST="${1#--host=}" + --arch=*) + ARCH_ARG="${1#--arch=}" + # Convert simple architecture names to compiler triplets + case "$ARCH_ARG" in + arm64) + ARCH="aarch64-apple-darwin_ios" + ;; + x86_64) + ARCH="x86_64-apple-darwin_ios" + ;; + *) + # Assume it's already a compiler triplet + ARCH="$ARCH_ARG" + ;; + esac ;; --release) - RELEASE=1 + RELEASE=1 + ;; + --help) + show_help + ;; + *) + echo "Unknown option: $1" + echo "Use --help for usage information" + exit 1 ;; esac shift done -if test -z "$HOST" +if [ "$IOS_TARGET_PLATFORM" = "all" ] then - if [ "$IOS_TARGET_PLATFORM" = "all" ] - then - ARCHS=("arm64" "x86_64") - elif [ "$IOS_TARGET_PLATFORM" = "iPhoneSimulator" ] - then - ARCHS=("x86_64") - elif [ "$IOS_TARGET_PLATFORM" = "iPhoneOS" ] + ARCHS_PLATFORMS=("arm64:iPhoneOS" "arm64:iPhoneSimulator" "x86_64:iPhoneSimulator") +elif [ "$IOS_TARGET_PLATFORM" = "iPhoneSimulator" ] +then + # For simulator, check if a specific architecture was requested + if [ -n "$ARCH" ] then - ARCHS=("arm64") + case "$ARCH" in + aarch64-*) + ARCHS_PLATFORMS=("arm64:iPhoneSimulator") + ;; + x86_64-*) + ARCHS_PLATFORMS=("x86_64:iPhoneSimulator") + ;; + *) + echo "Warning: Unrecognized host architecture for simulator: $ARCH" + echo "Using default simulator architectures" + ARCHS_PLATFORMS=("arm64:iPhoneSimulator" "x86_64:iPhoneSimulator") + ;; + esac + else + # No specific architecture requested, build for all simulator architectures + ARCHS_PLATFORMS=("arm64:iPhoneSimulator" "x86_64:iPhoneSimulator") fi -else - ARCHS=("${HOST%%-*}") - case "$HOST" in - aarch64-*) - IOS_TARGET_PLATFORM="iPhoneOS" - ARCHS=("arm64") - ;; - x86_64-*) - IOS_TARGET_PLATFORM="iPhoneSimulator" - ARCHS=("x86_64") - ;; - esac +elif [ "$IOS_TARGET_PLATFORM" = "iPhoneOS" ] +then + # For device builds, always use arm64 regardless of --arch + if [ -n "$ARCH" ] && [[ "$ARCH" != aarch64-* ]]; then + echo "Warning: --arch parameter is ignored for iPhoneOS builds (always uses arm64)" + fi + ARCHS_PLATFORMS=("arm64:iPhoneOS") fi IOS_TOP_DIR="$(pwd)" @@ -55,10 +110,6 @@ if [ -z "$DAEMON_DIR" ]; then fi if [ ! -d "$DAEMON_DIR" ]; then echo 'Daemon not found.' - echo 'If you cloned the daemon in a custom location override' \ - 'use DAEMON_DIR to point to it' - echo "You can also use our meta repo which contains both: - https://review.jami.net/admin/repos/jami-project" exit 1 fi @@ -76,25 +127,29 @@ if [ -z "$NPROC" ]; then NPROC=$(sysctl -n hw.ncpu || echo -n 1) fi -export IOS_TARGET_PLATFORM -echo "Building for $IOS_TARGET_PLATFORM for $ARCHS" +echo "Building for ${ARCHS_PLATFORMS[@]}" cd "$DAEMON_DIR" -for ARCH in "${ARCHS[@]}" +for ARCH_PLATFORM in "${ARCHS_PLATFORMS[@]}" do - mkdir -p "contrib/native-$ARCH" - cd "contrib/native-$ARCH" + # Split the architecture and platform + ARCH="${ARCH_PLATFORM%%:*}" + IOS_TARGET_PLATFORM="${ARCH_PLATFORM#*:}" + export IOS_TARGET_PLATFORM + + echo "Building for $IOS_TARGET_PLATFORM with architecture $ARCH" + + BUILD_DIR="$ARCH-$IOS_TARGET_PLATFORM" + mkdir -p "contrib/native-$BUILD_DIR" + cd "contrib/native-$BUILD_DIR" if [ "$ARCH" = "arm64" ] then HOST=aarch64-apple-darwin_ios - IOS_TARGET_PLATFORM="iPhoneOS" else HOST="$ARCH"-apple-darwin_ios - IOS_TARGET_PLATFORM="iPhoneSimulator" fi - export IOS_TARGET_PLATFORM SDKROOT=$(xcode-select -print-path)/Platforms/${IOS_TARGET_PLATFORM}.platform/Developer/SDKs/${IOS_TARGET_PLATFORM}${SDK_VERSION}.sdk @@ -109,7 +164,25 @@ do CC="xcrun -sdk $SDK clang" CXX="xcrun -sdk $SDK clang++" - SDKROOT="$SDKROOT" ../bootstrap --host="$HOST" --disable-libav --disable-plugin --disable-libarchive --enable-ffmpeg + CONTRIB_FOLDER="$DAEMON_DIR/contrib/$BUILD_DIR" + + # Parameters for pjproject build + if [ "$IOS_TARGET_PLATFORM" = "iPhoneSimulator" ]; then + MIN_IOS="-mios-simulator-version-min=$MIN_IOS_VERSION" + else + MIN_IOS="-miphoneos-version-min=$MIN_IOS_VERSION" + fi + + DEVPATH=$(xcrun --sdk $SDK --show-sdk-platform-path)/Developer + export DEVPATH + export MIN_IOS + + # Print DEVPATH and MIN_IOS + echo "DEVPATH: $DEVPATH" + echo "MIN_IOS: $MIN_IOS" + + # Pass IOS_TARGET_PLATFORM to bootstrap so it can be used in rules.mak files + SDKROOT="$SDKROOT" ../bootstrap --host="$HOST" --disable-libav --disable-plugin --disable-libarchive --enable-ffmpeg --prefix="$CONTRIB_FOLDER" echo "Building contrib" make fetch @@ -135,8 +208,8 @@ do LDFLAGS="$CFLAGS" ./autogen.sh || exit 1 - mkdir -p "build-ios-$ARCH" - cd "build-ios-$ARCH" + mkdir -p "build-ios-$BUILD_DIR" + cd "build-ios-$BUILD_DIR" JAMI_CONF="--host=$HOST \ --without-dbus \ @@ -145,7 +218,8 @@ do --enable-static \ --without-natpmp \ --disable-shared \ - --prefix=$IOS_TOP_DIR/DEPS/$ARCH" + --prefix=$IOS_TOP_DIR/DEPS/$BUILD_DIR \ + --with-contrib=$CONTRIB_FOLDER" if [ "$RELEASE" = "0" ] then @@ -167,17 +241,18 @@ do make -j"$NPROC" || exit 1 make install || exit 1 - rsync -ar "$DAEMON_DIR/contrib/$HOST/lib/"*.a "$IOS_TOP_DIR/DEPS/$ARCH/lib/" + # Use the specified contrib folder for copying libraries and headers + rsync -ar "$CONTRIB_FOLDER/lib/"*.a "$IOS_TOP_DIR/DEPS/$BUILD_DIR/lib/" # copy headers for extension - rsync -ar "$DAEMON_DIR/contrib/$HOST/include/opendht" "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/msgpack.hpp "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/gnutls "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/json "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/msgpack "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/yaml-cpp "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/libavutil "$IOS_TOP_DIR/DEPS/$ARCH/include/" - rsync -ar $DAEMON_DIR/contrib/$HOST/include/fmt "$IOS_TOP_DIR/DEPS/$ARCH/include/" - cd "$IOS_TOP_DIR/DEPS/$ARCH/lib/" + rsync -ar "$CONTRIB_FOLDER/include/opendht" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/msgpack.hpp" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/gnutls" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/json" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/msgpack" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/yaml-cpp" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/libavutil" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + rsync -ar "$CONTRIB_FOLDER/include/fmt" "$IOS_TOP_DIR/DEPS/$BUILD_DIR/include/" + cd "$IOS_TOP_DIR/DEPS/$BUILD_DIR/lib/" for i in *.a ; do mv "$i" "${i/-$HOST.a/.a}" ; done cd "$DAEMON_DIR" @@ -185,26 +260,166 @@ done cd "$IOS_TOP_DIR" -FAT_DIR="$IOS_TOP_DIR/fat" -mkdir -p "$FAT_DIR" +# Create XCFrameworks +XCFRAMEWORK_DIR="$IOS_TOP_DIR/xcframework" +mkdir -p "$XCFRAMEWORK_DIR" -if ((${#ARCHS[@]} == "2")) -then - mkdir -p "$FAT_DIR/lib" - echo "Making fat lib for ${ARCHS[0]} and ${ARCHS[1]}" - LIBFILES="$IOS_TOP_DIR/DEPS/${ARCHS[0]}/lib/"*.a - for f in $LIBFILES - do - libFile=${f##*/} - echo "Processing $libFile lib…" - #There is only 2 ARCH max… So let's make it simple - lipo -create "$IOS_TOP_DIR/DEPS/${ARCHS[0]}/lib/$libFile" \ - "$IOS_TOP_DIR/DEPS/${ARCHS[1]}/lib/$libFile" \ - -output "$FAT_DIR/lib/$libFile" - done +# Copy headers to a common location +mkdir -p "$XCFRAMEWORK_DIR/include" +if [ -d "$IOS_TOP_DIR/DEPS/${ARCHS_PLATFORMS[0]%%:*}-${ARCHS_PLATFORMS[0]#*:}/include/" ]; then + rsync -ar --delete "$IOS_TOP_DIR/DEPS/${ARCHS_PLATFORMS[0]%%:*}-${ARCHS_PLATFORMS[0]#*:}/include/"* "$XCFRAMEWORK_DIR/include" else - echo "No need for fat lib" - rsync -ar --delete "$IOS_TOP_DIR/DEPS/${ARCHS[0]}/lib/"*.a "$FAT_DIR/lib" + echo "Warning: No include directory found for ${ARCHS_PLATFORMS[0]}" +fi + +echo "Creating XCFrameworks..." + +# Get list of all libraries from the first build directory +BUILD_DIRS=() +for ARCH_PLATFORM in "${ARCHS_PLATFORMS[@]}" +do + BUILD_DIRS+=("${ARCH_PLATFORM%%:*}-${ARCH_PLATFORM#*:}") +done + +# Group build directories by platform +DEVICE_BUILDS=() +SIMULATOR_BUILDS=() + +for BUILD_DIR in "${BUILD_DIRS[@]}" +do + if [[ "$BUILD_DIR" == *-iPhoneOS ]]; then + DEVICE_BUILDS+=("$BUILD_DIR") + elif [[ "$BUILD_DIR" == *-iPhoneSimulator ]]; then + SIMULATOR_BUILDS+=("$BUILD_DIR") + fi +done + +# Function to create Info.plist for frameworks +create_info_plist() { + local framework_path="$1" + local framework_name="$2" + + cat > "$framework_path/Info.plist" << EOF +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>${framework_name}</string> + <key>CFBundleIdentifier</key> + <string>com.jami.${framework_name}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${framework_name}</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleVersion</key> + <string>1</string> + <key>MinimumOSVersion</key> + <string>${MIN_IOS_VERSION}</string> +</dict> +</plist> +EOF +} + +# Function to create framework for a platform +create_framework() { + local PLATFORM_DIR="$1" + local FRAMEWORK_NAME="$2" + local LIB_FILE="$3" + local SDK="$4" + + mkdir -p "$PLATFORM_DIR/lib" + + # Check if library exists in any of the builds for this platform + local LIB_PATHS=() + local BUILDS=("${@:5}") + + for BUILD in "${BUILDS[@]}"; do + if [ -f "$IOS_TOP_DIR/DEPS/$BUILD/lib/$LIB_FILE" ]; then + LIB_PATHS+=("$IOS_TOP_DIR/DEPS/$BUILD/lib/$LIB_FILE") + echo "Found $LIB_FILE in $BUILD" >&2 + fi + done + + if [ ${#LIB_PATHS[@]} -gt 0 ]; then + if [ ${#LIB_PATHS[@]} -gt 1 ]; then + # Multiple libraries found, use lipo to combine them + echo "Combining multiple $SDK libraries for $FRAMEWORK_NAME" >&2 + lipo -create "${LIB_PATHS[@]}" -output "$PLATFORM_DIR/lib/$LIB_FILE" + else + # Only one library found + cp "${LIB_PATHS[0]}" "$PLATFORM_DIR/lib/$LIB_FILE" + fi + + # Print architectures in the library for debugging + echo "Architectures in $FRAMEWORK_NAME for $SDK:" >&2 + lipo -info "$PLATFORM_DIR/lib/$LIB_FILE" >&2 + else + # Create a dummy library + echo "Creating dummy $SDK library for $FRAMEWORK_NAME" >&2 + echo "void dummy_function() {}" > "$TEMP_DIR/dummy.c" + xcrun -sdk $SDK clang -c "$TEMP_DIR/dummy.c" -o "$TEMP_DIR/dummy.o" + ar -rc "$PLATFORM_DIR/lib/$LIB_FILE" "$TEMP_DIR/dummy.o" + fi + + # Create framework structure + mkdir -p "$PLATFORM_DIR/$FRAMEWORK_NAME.framework" + cp "$PLATFORM_DIR/lib/$LIB_FILE" "$PLATFORM_DIR/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" + create_info_plist "$PLATFORM_DIR/$FRAMEWORK_NAME.framework" "$FRAMEWORK_NAME" + + printf "%s" "-framework $PLATFORM_DIR/$FRAMEWORK_NAME.framework" +} + +# Process each library +LIBFILES="$IOS_TOP_DIR/DEPS/${BUILD_DIRS[0]}/lib/"*.a +for f in $LIBFILES +do + libFile=${f##*/} + FRAMEWORK_NAME="${libFile%.a}" + + echo "Processing $FRAMEWORK_NAME for XCFramework..." + + # Create temporary directory + TEMP_DIR="$IOS_TOP_DIR/temp" + mkdir -p "$TEMP_DIR" + + # Create frameworks for each platform + DEVICE_FRAMEWORK=$(create_framework "$TEMP_DIR/device" "$FRAMEWORK_NAME" "$libFile" "iphoneos" "${DEVICE_BUILDS[@]}") + SIM_FRAMEWORK=$(create_framework "$TEMP_DIR/simulator" "$FRAMEWORK_NAME" "$libFile" "iphonesimulator" "${SIMULATOR_BUILDS[@]}") + + # Create XCFramework + xcrun xcodebuild -create-xcframework $DEVICE_FRAMEWORK $SIM_FRAMEWORK -output "$XCFRAMEWORK_DIR/$FRAMEWORK_NAME.xcframework" + echo "Created $FRAMEWORK_NAME.xcframework" + + # Clean up temporary directories + rm -rf "$TEMP_DIR" +done + +# Special check for libvpx.xcframework, because vpx disabled for arm64 simulator +if [ ! -d "$XCFRAMEWORK_DIR/libvpx.xcframework" ]; then + echo "libvpx.xcframework not found, creating it manually..." + + # Create temporary directory + TEMP_DIR="$IOS_TOP_DIR/temp_vpx" + mkdir -p "$TEMP_DIR" + + # Create frameworks for each platform + DEVICE_FRAMEWORK=$(create_framework "$TEMP_DIR/device" "libvpx" "libvpx.a" "iphoneos" "${DEVICE_BUILDS[@]}") + SIM_FRAMEWORK=$(create_framework "$TEMP_DIR/simulator" "libvpx" "libvpx.a" "iphonesimulator" "${SIMULATOR_BUILDS[@]}") + + # Create XCFramework + xcrun xcodebuild -create-xcframework $DEVICE_FRAMEWORK $SIM_FRAMEWORK -output "$XCFRAMEWORK_DIR/libvpx.xcframework" + echo "Created libvpx.xcframework" + + # Clean up temporary directories + rm -rf "$TEMP_DIR" fi -rsync -ar --delete "$IOS_TOP_DIR/DEPS/${ARCHS[0]}/include/"* "$FAT_DIR/include" +echo "XCFrameworks created in $XCFRAMEWORK_DIR" +echo "Headers copied to $XCFRAMEWORK_DIR/include"