Megazord for iOS
The grand patch with all we learned over past 3 days. A key factor is that Xcode legacy build must be used, or the build.sh files need to be changed to not touch the output .a file unless it doesn't exist or the input files have changed. The xcrun is called twice for each project (for device and sim) and the second run fails to access the C/Rust .a files linked in the build script.
This commit is contained in:
Родитель
9b9c81d08a
Коммит
6539f02a28
|
@ -146,10 +146,7 @@ jobs:
|
|||
cargo install cargo-lipo
|
||||
brew update && (brew outdated carthage || brew upgrade carthage)
|
||||
brew install swift-protobuf
|
||||
carthage bootstrap --platform iOS --verbose
|
||||
carthage build --platform iOS --no-skip-current --verbose
|
||||
carthage archive --output ApplicationServices.framework.zip
|
||||
rm -rf Carthage
|
||||
sh build-carthage.sh MozillaAppServices-frameworks.zip
|
||||
- save_cache:
|
||||
key: rust-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
||||
paths:
|
||||
|
@ -157,7 +154,7 @@ jobs:
|
|||
- persist_to_workspace:
|
||||
root: .
|
||||
paths:
|
||||
- ApplicationServices.framework.zip
|
||||
- MozillaAppServices-frameworks.zip
|
||||
Release Carthage archive:
|
||||
macos:
|
||||
xcode: "10.1.0"
|
||||
|
@ -173,7 +170,7 @@ jobs:
|
|||
sudo chown -R `whoami` /Library/Ruby/Gems
|
||||
gem install --user-install dpl
|
||||
PATH=$HOME/.gem/ruby/2.3.0/bin:$PATH
|
||||
dpl --provider=releases --api-key=${GITHUB_TOKEN} --file=ApplicationServices.framework.zip --overwrite --skip-cleanup=true
|
||||
dpl --provider=releases --api-key=${GITHUB_TOKEN} --file=MozillaAppServices-frameworks.zip --overwrite --skip-cleanup=true
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
|
|
|
@ -16,7 +16,7 @@ name = "aho-corasick"
|
|||
version = "0.6.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -255,7 +255,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "criterion"
|
||||
version = "0.2.9"
|
||||
version = "0.2.10"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -298,7 +298,7 @@ dependencies = [
|
|||
"crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -397,7 +397,7 @@ name = "csv-core"
|
|||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -427,7 +427,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "encoding_rs"
|
||||
version = "0.8.15"
|
||||
version = "0.8.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -571,7 +571,7 @@ version = "0.1.8"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -593,7 +593,7 @@ dependencies = [
|
|||
"prost-derive 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ring 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -638,7 +638,7 @@ dependencies = [
|
|||
"base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ring 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
@ -694,7 +694,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "0.12.23"
|
||||
version = "0.12.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -725,7 +725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
dependencies = [
|
||||
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
@ -907,6 +907,15 @@ name = "matches"
|
|||
version = "0.1.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "megazord_ios"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"fxaclient_ffi 0.1.0",
|
||||
"logins_ffi 0.1.0",
|
||||
"places-ffi 0.1.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "1.0.2"
|
||||
|
@ -917,10 +926,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.1.3"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -1001,7 +1009,7 @@ dependencies = [
|
|||
"schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1034,7 +1042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
|
||||
[[package]]
|
||||
name = "num_cpus"
|
||||
version = "1.9.0"
|
||||
version = "1.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1159,7 +1167,7 @@ dependencies = [
|
|||
"caseless 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"cli-support 0.1.0",
|
||||
"criterion 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"criterion 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ffi-support 0.1.7",
|
||||
|
@ -1168,7 +1176,7 @@ dependencies = [
|
|||
"idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"more-asserts 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rusqlite 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1179,7 +1187,7 @@ dependencies = [
|
|||
"structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"sync15 0.1.0",
|
||||
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1454,7 +1462,7 @@ dependencies = [
|
|||
"crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1514,7 +1522,7 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1543,10 +1551,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
dependencies = [
|
||||
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libflate 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1567,7 +1575,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "ring"
|
||||
version = "0.14.5"
|
||||
version = "0.14.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1575,6 +1583,7 @@ dependencies = [
|
|||
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1831,7 +1840,7 @@ dependencies = [
|
|||
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fxa-client 0.1.0",
|
||||
"hawk 2.0.0 (git+https://github.com/eoger/rust-hawk?branch=use-openssl)",
|
||||
"hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1865,7 +1874,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.0.5"
|
||||
version = "3.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -1960,7 +1969,7 @@ dependencies = [
|
|||
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2007,7 +2016,7 @@ dependencies = [
|
|||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2038,7 +2047,7 @@ dependencies = [
|
|||
"crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -2298,7 +2307,7 @@ dependencies = [
|
|||
"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
|
||||
"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
|
||||
"checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192"
|
||||
"checksum criterion 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "4f80c6ccd9d5cdeb74d67d2d5b9ee84e0a2b5eb0331bc2209a9796652dd7fddf"
|
||||
"checksum criterion 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "1c6e5ee5b9652d4f851418c448af105642e1f99e9a2741a8ff45c0d2c911b1e0"
|
||||
"checksum criterion-plot 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4107e4a5abb94267e0149922b8ff49dc70a87cc202820fdbfc0d3e1edbdc4b16"
|
||||
"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94"
|
||||
"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b"
|
||||
|
@ -2315,7 +2324,7 @@ dependencies = [
|
|||
"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
|
||||
"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
|
||||
"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd"
|
||||
"checksum encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)" = "fd251508d65030820f3a4317af2248180db337fdb25d89967956242580277813"
|
||||
"checksum encoding_rs 0.8.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0535f350c60aac0b87ccf28319abc749391e912192255b0c00a2c12c6917bd73"
|
||||
"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
|
||||
"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
|
||||
"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
|
||||
|
@ -2339,7 +2348,7 @@ dependencies = [
|
|||
"checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5"
|
||||
"checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
|
||||
"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
|
||||
"checksum hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)" = "860faf61a9957c9cb0e23e69f1c8290e92f6eb660fcdd1f2d6777043a2ae1a46"
|
||||
"checksum hyper 0.12.24 (registry+https://github.com/rust-lang/crates.io-index)" = "fdfa9b401ef6c4229745bb6e9b2529192d07b920eed624cdee2a82348cd550af"
|
||||
"checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661"
|
||||
"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
|
||||
"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
|
||||
|
@ -2360,7 +2369,7 @@ dependencies = [
|
|||
"checksum lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d06ff7ff06f729ce5f4e227876cb88d10bc59cd4ae1e09fbb2bde15c850dc21"
|
||||
"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
|
||||
"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
|
||||
"checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8"
|
||||
"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
|
||||
"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
|
||||
"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425"
|
||||
"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
|
||||
|
@ -2373,7 +2382,7 @@ dependencies = [
|
|||
"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
|
||||
"checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
|
||||
"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
|
||||
"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
|
||||
"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba"
|
||||
"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9"
|
||||
"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
|
||||
"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6"
|
||||
|
@ -2420,7 +2429,7 @@ dependencies = [
|
|||
"checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861"
|
||||
"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
|
||||
"checksum reqwest 0.9.9 (registry+https://github.com/rust-lang/crates.io-index)" = "09d6e187a58d923ee132fcda141c94e716bcfe301c2ea2bef5c81536e0085376"
|
||||
"checksum ring 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)" = "148fc853f6d85f53f5f315d46701eaacc565cdfb3cb1959730c96e81e7e49999"
|
||||
"checksum ring 0.14.6 (registry+https://github.com/rust-lang/crates.io-index)" = "426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c"
|
||||
"checksum rusqlite 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6381ddfe91dbb659b4b132168da15985bc84162378cf4fcdc4eb99c857d063e2"
|
||||
"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619"
|
||||
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
|
||||
|
@ -2453,7 +2462,7 @@ dependencies = [
|
|||
"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9"
|
||||
"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
|
||||
"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
|
||||
"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2"
|
||||
"checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff"
|
||||
"checksum term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1"
|
||||
"checksum term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561"
|
||||
"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
|
||||
|
|
|
@ -14,6 +14,7 @@ members = [
|
|||
"megazords/fenix",
|
||||
"megazords/lockbox",
|
||||
"megazords/reference-browser",
|
||||
"megazords/ios/rust",
|
||||
"testing/sync-test",
|
||||
]
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
FRAMEWORK_NAME="${1:-MozillaAppServices-frameworks.zip}"
|
||||
carthage update --platform iOS swift-protobuf
|
||||
## When https://github.com/Carthage/Carthage/issues/2623 is fixed,
|
||||
## carthage build --archive should work to produce a zip
|
||||
carthage build --no-skip-current --platform iOS --verbose && \
|
||||
(cd Carthage/Build/iOS | egrep -v 'Static|Logins|FxAClient' | xargs rm -rf) && \
|
||||
zip -r $FRAMEWORK_NAME Carthage/Build/iOS
|
|
@ -16,12 +16,8 @@
|
|||
CEBACFC4220E22C80078D41C /* SwiftProtobuf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEBACFC3220E22C80078D41C /* SwiftProtobuf.framework */; };
|
||||
CECB395D20B5BE0200DB3ED4 /* RustPointer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CECB395B20B5BE0200DB3ED4 /* RustPointer.swift */; };
|
||||
CEE1087620C5ADF9007048AC /* FxAError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEE1087520C5ADF9007048AC /* FxAError.swift */; };
|
||||
EBA8770C21F5FD5D004F63F0 /* base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = EBA8770921F5FD5D004F63F0 /* base.xcconfig */; };
|
||||
EBA8770D21F5FD5D004F63F0 /* debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = EBA8770A21F5FD5D004F63F0 /* debug.xcconfig */; };
|
||||
EBA8770E21F5FD5D004F63F0 /* release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = EBA8770B21F5FD5D004F63F0 /* release.xcconfig */; };
|
||||
EBE26B42220B3DF700D1D99A /* String+Free_FxAClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE26B41220B3DF700D1D99A /* String+Free_FxAClient.swift */; };
|
||||
EBE26B49220B4D0200D1D99A /* CommonErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE26B48220B4D0200D1D99A /* CommonErrors.swift */; };
|
||||
EBE26B4B220B4DE300D1D99A /* SerialQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE26B4A220B4DE300D1D99A /* SerialQueue.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXBuildRule section */
|
||||
|
@ -55,7 +51,6 @@
|
|||
EBA8770B21F5FD5D004F63F0 /* release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = release.xcconfig; sourceTree = "<group>"; };
|
||||
EBE26B41220B3DF700D1D99A /* String+Free_FxAClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Free_FxAClient.swift"; sourceTree = "<group>"; };
|
||||
EBE26B48220B4D0200D1D99A /* CommonErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CommonErrors.swift; path = ../../../../support/ios/CommonErrors.swift; sourceTree = "<group>"; };
|
||||
EBE26B4A220B4DE300D1D99A /* SerialQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SerialQueue.swift; path = ../../../support/ios/SerialQueue.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -102,7 +97,6 @@
|
|||
CE9D202420914D0D00F1C8FA /* Info.plist */,
|
||||
CE9D202B20914D2600F1C8FA /* FirefoxAccount.swift */,
|
||||
CE9D202F20914D2600F1C8FA /* fxa.h */,
|
||||
EBE26B4A220B4DE300D1D99A /* SerialQueue.swift */,
|
||||
);
|
||||
path = FxAClient;
|
||||
sourceTree = "<group>";
|
||||
|
@ -149,8 +143,6 @@
|
|||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CE9D203520914D2600F1C8FA /* fxa.h in Headers */,
|
||||
CE9D202520914D0D00F1C8FA /* FxAClient.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -214,9 +206,6 @@
|
|||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EBA8770E21F5FD5D004F63F0 /* release.xcconfig in Resources */,
|
||||
EBA8770D21F5FD5D004F63F0 /* debug.xcconfig in Resources */,
|
||||
EBA8770C21F5FD5D004F63F0 /* base.xcconfig in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -231,7 +220,6 @@
|
|||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
../../../target/universal/debug/libfxaclient_ffi.a,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
|
@ -246,7 +234,6 @@
|
|||
files = (
|
||||
CE2F4D42220E0014001ECF92 /* ffi_types.proto in Sources */,
|
||||
CECB395D20B5BE0200DB3ED4 /* RustPointer.swift in Sources */,
|
||||
EBE26B4B220B4DE300D1D99A /* SerialQueue.swift in Sources */,
|
||||
EBE26B42220B3DF700D1D99A /* String+Free_FxAClient.swift in Sources */,
|
||||
CE5A6AEF220E2FD300B7F1BC /* RustProtobuf.swift in Sources */,
|
||||
EBE26B49220B4D0200D1D99A /* CommonErrors.swift in Sources */,
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?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>BuildSystemType</key>
|
||||
<string>Original</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -45,6 +45,8 @@ public protocol PersistCallback {
|
|||
func persist(json: String)
|
||||
}
|
||||
|
||||
fileprivate let queue = DispatchQueue(label: "com.mozilla.firefox-account")
|
||||
|
||||
open class FirefoxAccount: RustHandle {
|
||||
fileprivate static var persistCallback: PersistCallback?
|
||||
|
||||
|
|
|
@ -10,4 +10,4 @@ FOUNDATION_EXPORT double FxAClientVersionNumber;
|
|||
//! Project version string for FxAClient.
|
||||
FOUNDATION_EXPORT const unsigned char FxAClientVersionString[];
|
||||
|
||||
#import <FxAClient/fxa.h>
|
||||
#import "fxa.h"
|
||||
|
|
|
@ -3,3 +3,4 @@
|
|||
INFOPLIST_FILE = FxAClient/Info.plist
|
||||
LIBRARY_SEARCH_PATHS = "../../../target/universal/$(buildvariant)"
|
||||
FRAMEWORK_SEARCH_PATHS = "../../../Carthage/Build/iOS"
|
||||
SWIFT_OBJC_BRIDGING_HEADER = FxAClient/FxAClient.h
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
|
||||
/* Begin PBXBuildFile section */
|
||||
CDB5AAED21535E7F00B66D7E /* LoginRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDB5AAEC21535E7F00B66D7E /* LoginRecord.swift */; };
|
||||
CDFA91EE2153568E0074CABF /* RustPasswordAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CDFA91ED2153568E0074CABF /* RustPasswordAPI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
CE9D202520914D0D00F1C8FA /* Logins.h in Headers */ = {isa = PBXBuildFile; fileRef = CE9D202320914D0D00F1C8FA /* Logins.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
CE9D203120914D2600F1C8FA /* LoginsStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE9D202B20914D2600F1C8FA /* LoginsStorage.swift */; };
|
||||
CECB395420B5B92500DB3ED4 /* LockError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CECB395220B5B77E00DB3ED4 /* LockError.swift */; };
|
||||
CEE1087620C5ADF9007048AC /* LoginStoreError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEE1087520C5ADF9007048AC /* LoginStoreError.swift */; };
|
||||
|
@ -19,7 +17,6 @@
|
|||
EB348E432204EA0C00788CD3 /* LoginsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB348E422204EA0C00788CD3 /* LoginsTests.swift */; };
|
||||
EB348E452204EA0C00788CD3 /* Logins.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9D202020914D0D00F1C8FA /* Logins.framework */; };
|
||||
EBE26B47220B4CE400D1D99A /* CommonErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE26B46220B4CE400D1D99A /* CommonErrors.swift */; };
|
||||
EBE26B4D220B4DF100D1D99A /* SerialQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE26B4C220B4DF100D1D99A /* SerialQueue.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
@ -51,7 +48,6 @@
|
|||
EBA8770721F5FB9A004F63F0 /* debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = debug.xcconfig; sourceTree = "<group>"; };
|
||||
EBA8770821F5FB9A004F63F0 /* release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = release.xcconfig; sourceTree = "<group>"; };
|
||||
EBE26B46220B4CE400D1D99A /* CommonErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CommonErrors.swift; path = ../../../../support/ios/CommonErrors.swift; sourceTree = "<group>"; };
|
||||
EBE26B4C220B4DF100D1D99A /* SerialQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SerialQueue.swift; path = ../../../support/ios/SerialQueue.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -107,7 +103,6 @@
|
|||
CE9D202420914D0D00F1C8FA /* Info.plist */,
|
||||
CE9D202B20914D2600F1C8FA /* LoginsStorage.swift */,
|
||||
CDB5AAEC21535E7F00B66D7E /* LoginRecord.swift */,
|
||||
EBE26B4C220B4DF100D1D99A /* SerialQueue.swift */,
|
||||
);
|
||||
path = Logins;
|
||||
sourceTree = "<group>";
|
||||
|
@ -155,8 +150,6 @@
|
|||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CE9D202520914D0D00F1C8FA /* Logins.h in Headers */,
|
||||
CDFA91EE2153568E0074CABF /* RustPasswordAPI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -263,7 +256,6 @@
|
|||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(SRCROOT)/../../../target/universal/release/liblogins_ffi.a",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
|
@ -282,7 +274,6 @@
|
|||
EBE26B47220B4CE400D1D99A /* CommonErrors.swift in Sources */,
|
||||
CDB5AAED21535E7F00B66D7E /* LoginRecord.swift in Sources */,
|
||||
CEE1087620C5ADF9007048AC /* LoginStoreError.swift in Sources */,
|
||||
EBE26B4D220B4DF100D1D99A /* SerialQueue.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<?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>BuildSystemType</key>
|
||||
<string>Original</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -10,4 +10,4 @@ FOUNDATION_EXPORT double LoginsVersionNumber;
|
|||
//! Project version string for Logins.
|
||||
FOUNDATION_EXPORT const unsigned char LoginsVersionString[];
|
||||
|
||||
#import <Logins/RustPasswordAPI.h>
|
||||
#import "RustPasswordAPI.h"
|
||||
|
|
|
@ -20,6 +20,8 @@ open class SyncUnlockInfo {
|
|||
}
|
||||
}
|
||||
|
||||
fileprivate let queue = DispatchQueue(label: "com.mozilla.logins-storage")
|
||||
|
||||
open class LoginsStorage {
|
||||
private var raw: UInt64 = 0
|
||||
let dbPath: String
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
|
||||
INFOPLIST_FILE = Logins/Info.plist
|
||||
LIBRARY_SEARCH_PATHS = "../../../target/universal/release" "../../../libs/ios/universal/sqlcipher/lib"
|
||||
SWIFT_OBJC_BRIDGING_HEADER = Logins/Logins.h
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import Foundation
|
||||
|
||||
// We use a serial queue to protect access to the rust object.
|
||||
let queue = DispatchQueue(label: "com.mozilla.rustappservices")
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
FOUNDATION_EXPORT double MegazordClientVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char MegazordClientVersionString[];
|
||||
|
||||
#import <fxa.h>
|
||||
#import <RustPasswordAPI.h>
|
||||
|
|
@ -0,0 +1,494 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 51;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
C852EE9E220A283200A6E79A /* libsqlcipher.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C852EE9D220A283200A6E79A /* libsqlcipher.a */; };
|
||||
C852EED3220A29FE00A6E79A /* String+Free_Logins.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EECA220A29FE00A6E79A /* String+Free_Logins.swift */; };
|
||||
C852EED5220A29FE00A6E79A /* LoginRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EECC220A29FE00A6E79A /* LoginRecord.swift */; };
|
||||
C852EED6220A29FE00A6E79A /* LoginsStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EECD220A29FE00A6E79A /* LoginsStorage.swift */; };
|
||||
C852EED7220A29FE00A6E79A /* LoginStoreError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EECF220A29FE00A6E79A /* LoginStoreError.swift */; };
|
||||
C852EED8220A29FE00A6E79A /* LockError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EED0220A29FE00A6E79A /* LockError.swift */; };
|
||||
C852EEE6220A2A2B00A6E79A /* RustPointer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EEDC220A2A2B00A6E79A /* RustPointer.swift */; };
|
||||
C852EEE7220A2A2B00A6E79A /* FirefoxAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EEDD220A2A2B00A6E79A /* FirefoxAccount.swift */; };
|
||||
C852EEE8220A2A2B00A6E79A /* String+Free_FxAClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EEDF220A2A2B00A6E79A /* String+Free_FxAClient.swift */; };
|
||||
C852EEEB220A2A2B00A6E79A /* FxAError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C852EEE3220A2A2B00A6E79A /* FxAError.swift */; };
|
||||
C852EEEF220A2E9400A6E79A /* libmegazord_ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C852EEEE220A2E9400A6E79A /* libmegazord_ios.a */; };
|
||||
EB7DE84D2214D30B00E7CF17 /* SwiftProtobuf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB7DE84C2214D30B00E7CF17 /* SwiftProtobuf.framework */; };
|
||||
EB7DE84F2214D39600E7CF17 /* RustProtobuf.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB7DE84E2214D39600E7CF17 /* RustProtobuf.swift */; };
|
||||
EB879D64221231F400753DC9 /* CommonErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB879D4D221231F400753DC9 /* CommonErrors.swift */; };
|
||||
EB879D7F221234EB00753DC9 /* MozillaAppServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9D202020914D0D00F1C8FA /* MozillaAppServices.framework */; };
|
||||
EB879D8B22123FD900753DC9 /* MozillaAppServicesTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB879D8A22123FD900753DC9 /* MozillaAppServicesTest.swift */; };
|
||||
EBB0D55E2214D10A00C8B2F9 /* ffi_types.proto in Sources */ = {isa = PBXBuildFile; fileRef = EBB0D55D2214D10900C8B2F9 /* ffi_types.proto */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXBuildRule section */
|
||||
EB7DE84A2214D28C00E7CF17 /* PBXBuildRule */ = {
|
||||
isa = PBXBuildRule;
|
||||
compilerSpec = com.apple.compilers.proxy.script;
|
||||
filePatterns = "*.proto";
|
||||
fileType = pattern.proxy;
|
||||
isEditable = 1;
|
||||
outputFiles = (
|
||||
"$(DERIVED_FILE_DIR)/$(INPUT_FILE_BASE).pb.swift",
|
||||
);
|
||||
script = "protoc --proto_path=$INPUT_FILE_DIR --swift_out=$DERIVED_FILE_DIR $INPUT_FILE_PATH\n";
|
||||
};
|
||||
/* End PBXBuildRule section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
EB879D80221234EB00753DC9 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = CE9D201720914D0D00F1C8FA /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = CE9D201F20914D0D00F1C8FA;
|
||||
remoteInfo = MozillaAppServices;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
C852EE9A220A26E600A6E79A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
C852EE9D220A283200A6E79A /* libsqlcipher.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsqlcipher.a; path = ../../libs/ios/universal/sqlcipher/lib/libsqlcipher.a; sourceTree = "<group>"; };
|
||||
C852EEC8220A29FE00A6E79A /* RustPasswordAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RustPasswordAPI.h; sourceTree = "<group>"; };
|
||||
C852EECA220A29FE00A6E79A /* String+Free_Logins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Free_Logins.swift"; sourceTree = "<group>"; };
|
||||
C852EECC220A29FE00A6E79A /* LoginRecord.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginRecord.swift; sourceTree = "<group>"; };
|
||||
C852EECD220A29FE00A6E79A /* LoginsStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginsStorage.swift; sourceTree = "<group>"; };
|
||||
C852EECF220A29FE00A6E79A /* LoginStoreError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginStoreError.swift; sourceTree = "<group>"; };
|
||||
C852EED0220A29FE00A6E79A /* LockError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LockError.swift; sourceTree = "<group>"; };
|
||||
C852EEDC220A2A2B00A6E79A /* RustPointer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RustPointer.swift; sourceTree = "<group>"; };
|
||||
C852EEDD220A2A2B00A6E79A /* FirefoxAccount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirefoxAccount.swift; sourceTree = "<group>"; };
|
||||
C852EEDF220A2A2B00A6E79A /* String+Free_FxAClient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Free_FxAClient.swift"; sourceTree = "<group>"; };
|
||||
C852EEE0220A2A2B00A6E79A /* fxa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fxa.h; sourceTree = "<group>"; };
|
||||
C852EEE3220A2A2B00A6E79A /* FxAError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FxAError.swift; sourceTree = "<group>"; };
|
||||
C852EEEE220A2E9400A6E79A /* libmegazord_ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmegazord_ios.a; path = ../../target/universal/release/libmegazord_ios.a; sourceTree = "<group>"; };
|
||||
C852EEF2220A3C6800A6E79A /* MozillaAppServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MozillaAppServices.h; sourceTree = "<group>"; };
|
||||
CE9D202020914D0D00F1C8FA /* MozillaAppServices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MozillaAppServices.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EB7DE84C2214D30B00E7CF17 /* SwiftProtobuf.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftProtobuf.framework; path = ../../Carthage/Build/iOS/SwiftProtobuf.framework; sourceTree = "<group>"; };
|
||||
EB7DE84E2214D39600E7CF17 /* RustProtobuf.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RustProtobuf.swift; sourceTree = "<group>"; };
|
||||
EB879D4D221231F400753DC9 /* CommonErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonErrors.swift; sourceTree = "<group>"; };
|
||||
EB879D7A221234EB00753DC9 /* MozillaAppServicesTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MozillaAppServicesTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EB879D7E221234EB00753DC9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
EB879D8A22123FD900753DC9 /* MozillaAppServicesTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MozillaAppServicesTest.swift; sourceTree = "<group>"; };
|
||||
EBA8770621F5FB9A004F63F0 /* base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = base.xcconfig; sourceTree = "<group>"; };
|
||||
EBA8770721F5FB9A004F63F0 /* debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = debug.xcconfig; sourceTree = "<group>"; };
|
||||
EBA8770821F5FB9A004F63F0 /* release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = release.xcconfig; sourceTree = "<group>"; };
|
||||
EBB0D55D2214D10900C8B2F9 /* ffi_types.proto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.protobuf; name = ffi_types.proto; path = ../../src/ffi_types.proto; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
CE9D201C20914D0D00F1C8FA /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
C852EEEF220A2E9400A6E79A /* libmegazord_ios.a in Frameworks */,
|
||||
EB7DE84D2214D30B00E7CF17 /* SwiftProtobuf.framework in Frameworks */,
|
||||
C852EE9E220A283200A6E79A /* libsqlcipher.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EB879D77221234EB00753DC9 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EB879D7F221234EB00753DC9 /* MozillaAppServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
C852EEB2220A285B00A6E79A /* config */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EE9A220A26E600A6E79A /* Info.plist */,
|
||||
EBA8770621F5FB9A004F63F0 /* base.xcconfig */,
|
||||
EBA8770721F5FB9A004F63F0 /* debug.xcconfig */,
|
||||
EBA8770821F5FB9A004F63F0 /* release.xcconfig */,
|
||||
);
|
||||
path = config;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EEC7220A29FE00A6E79A /* Logins */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EEC8220A29FE00A6E79A /* RustPasswordAPI.h */,
|
||||
C852EEC9220A29FE00A6E79A /* Extensions */,
|
||||
C852EECC220A29FE00A6E79A /* LoginRecord.swift */,
|
||||
C852EECD220A29FE00A6E79A /* LoginsStorage.swift */,
|
||||
C852EECE220A29FE00A6E79A /* Errors */,
|
||||
);
|
||||
name = Logins;
|
||||
path = ../../components/logins/ios/Logins;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EEC9220A29FE00A6E79A /* Extensions */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EECA220A29FE00A6E79A /* String+Free_Logins.swift */,
|
||||
);
|
||||
path = Extensions;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EECE220A29FE00A6E79A /* Errors */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EECF220A29FE00A6E79A /* LoginStoreError.swift */,
|
||||
C852EED0220A29FE00A6E79A /* LockError.swift */,
|
||||
);
|
||||
path = Errors;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EEDA220A2A2B00A6E79A /* FxAClient */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EBB0D55D2214D10900C8B2F9 /* ffi_types.proto */,
|
||||
C852EEDB220A2A2B00A6E79A /* Rust */,
|
||||
C852EEDD220A2A2B00A6E79A /* FirefoxAccount.swift */,
|
||||
C852EEDE220A2A2B00A6E79A /* Extensions */,
|
||||
C852EEE0220A2A2B00A6E79A /* fxa.h */,
|
||||
C852EEE2220A2A2B00A6E79A /* Errors */,
|
||||
);
|
||||
name = FxAClient;
|
||||
path = "../../components/fxa-client/ios/FxAClient";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EEDB220A2A2B00A6E79A /* Rust */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EB7DE84E2214D39600E7CF17 /* RustProtobuf.swift */,
|
||||
C852EEDC220A2A2B00A6E79A /* RustPointer.swift */,
|
||||
);
|
||||
path = Rust;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EEDE220A2A2B00A6E79A /* Extensions */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EEDF220A2A2B00A6E79A /* String+Free_FxAClient.swift */,
|
||||
);
|
||||
path = Extensions;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C852EEE2220A2A2B00A6E79A /* Errors */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EEE3220A2A2B00A6E79A /* FxAError.swift */,
|
||||
);
|
||||
path = Errors;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE9D201620914D0D00F1C8FA = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C852EEF2220A3C6800A6E79A /* MozillaAppServices.h */,
|
||||
C852EEB2220A285B00A6E79A /* config */,
|
||||
EB879D4B221231F400753DC9 /* support */,
|
||||
C852EEDA220A2A2B00A6E79A /* FxAClient */,
|
||||
C852EEC7220A29FE00A6E79A /* Logins */,
|
||||
EB879D7B221234EB00753DC9 /* MozillaAppServicesTests */,
|
||||
CE9D202120914D0D00F1C8FA /* Products */,
|
||||
CE9D203720914D4800F1C8FA /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE9D202120914D0D00F1C8FA /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE9D202020914D0D00F1C8FA /* MozillaAppServices.framework */,
|
||||
EB879D7A221234EB00753DC9 /* MozillaAppServicesTests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE9D203720914D4800F1C8FA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EB7DE84C2214D30B00E7CF17 /* SwiftProtobuf.framework */,
|
||||
C852EE9D220A283200A6E79A /* libsqlcipher.a */,
|
||||
C852EEEE220A2E9400A6E79A /* libmegazord_ios.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EB879D4B221231F400753DC9 /* support */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EB879D4C221231F400753DC9 /* ios */,
|
||||
);
|
||||
name = support;
|
||||
path = ../../components/support;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EB879D4C221231F400753DC9 /* ios */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EB879D4D221231F400753DC9 /* CommonErrors.swift */,
|
||||
);
|
||||
path = ios;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EB879D7B221234EB00753DC9 /* MozillaAppServicesTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EB879D7E221234EB00753DC9 /* Info.plist */,
|
||||
EB879D8A22123FD900753DC9 /* MozillaAppServicesTest.swift */,
|
||||
);
|
||||
path = MozillaAppServicesTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
CE9D201D20914D0D00F1C8FA /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
CE9D201F20914D0D00F1C8FA /* MozillaAppServices */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CE9D202820914D0D00F1C8FA /* Build configuration list for PBXNativeTarget "MozillaAppServices" */;
|
||||
buildPhases = (
|
||||
CEEA12EF20AA1D630018998A /* ShellScript */,
|
||||
CE9D201B20914D0D00F1C8FA /* Sources */,
|
||||
CE9D201C20914D0D00F1C8FA /* Frameworks */,
|
||||
CE9D201D20914D0D00F1C8FA /* Headers */,
|
||||
CE9D201E20914D0D00F1C8FA /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
EB7DE84A2214D28C00E7CF17 /* PBXBuildRule */,
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = MozillaAppServices;
|
||||
productName = Logins;
|
||||
productReference = CE9D202020914D0D00F1C8FA /* MozillaAppServices.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
EB879D79221234EB00753DC9 /* MozillaAppServicesTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = EB879D84221234EB00753DC9 /* Build configuration list for PBXNativeTarget "MozillaAppServicesTests" */;
|
||||
buildPhases = (
|
||||
EB879D76221234EB00753DC9 /* Sources */,
|
||||
EB879D77221234EB00753DC9 /* Frameworks */,
|
||||
EB879D78221234EB00753DC9 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
EB879D81221234EB00753DC9 /* PBXTargetDependency */,
|
||||
);
|
||||
name = MozillaAppServicesTests;
|
||||
productName = MozillaAppServicesTests;
|
||||
productReference = EB879D7A221234EB00753DC9 /* MozillaAppServicesTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
CE9D201720914D0D00F1C8FA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 1010;
|
||||
LastUpgradeCheck = 1010;
|
||||
ORGANIZATIONNAME = Mozilla;
|
||||
TargetAttributes = {
|
||||
CE9D201F20914D0D00F1C8FA = {
|
||||
CreatedOnToolsVersion = 9.3;
|
||||
LastSwiftMigration = 0930;
|
||||
};
|
||||
EB879D79221234EB00753DC9 = {
|
||||
CreatedOnToolsVersion = 10.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = CE9D201A20914D0D00F1C8FA /* Build configuration list for PBXProject "MozillaAppServices" */;
|
||||
compatibilityVersion = "Xcode 10.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = CE9D201620914D0D00F1C8FA;
|
||||
productRefGroup = CE9D202120914D0D00F1C8FA /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
CE9D201F20914D0D00F1C8FA /* MozillaAppServices */,
|
||||
EB879D79221234EB00753DC9 /* MozillaAppServicesTests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
CE9D201E20914D0D00F1C8FA /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EB879D78221234EB00753DC9 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
CEEA12EF20AA1D630018998A /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "sh ./build_megazord.sh\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
CE9D201B20914D0D00F1C8FA /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
C852EEE8220A2A2B00A6E79A /* String+Free_FxAClient.swift in Sources */,
|
||||
C852EEEB220A2A2B00A6E79A /* FxAError.swift in Sources */,
|
||||
C852EED7220A29FE00A6E79A /* LoginStoreError.swift in Sources */,
|
||||
EBB0D55E2214D10A00C8B2F9 /* ffi_types.proto in Sources */,
|
||||
EB7DE84F2214D39600E7CF17 /* RustProtobuf.swift in Sources */,
|
||||
EB879D64221231F400753DC9 /* CommonErrors.swift in Sources */,
|
||||
C852EEE6220A2A2B00A6E79A /* RustPointer.swift in Sources */,
|
||||
C852EED8220A29FE00A6E79A /* LockError.swift in Sources */,
|
||||
C852EED5220A29FE00A6E79A /* LoginRecord.swift in Sources */,
|
||||
C852EEE7220A2A2B00A6E79A /* FirefoxAccount.swift in Sources */,
|
||||
C852EED6220A29FE00A6E79A /* LoginsStorage.swift in Sources */,
|
||||
C852EED3220A29FE00A6E79A /* String+Free_Logins.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EB879D76221234EB00753DC9 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EB879D8B22123FD900753DC9 /* MozillaAppServicesTest.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
EB879D81221234EB00753DC9 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = CE9D201F20914D0D00F1C8FA /* MozillaAppServices */;
|
||||
targetProxy = EB879D80221234EB00753DC9 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
CE9D202620914D0D00F1C8FA /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EBA8770721F5FB9A004F63F0 /* debug.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CE9D202720914D0D00F1C8FA /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EBA8770821F5FB9A004F63F0 /* release.xcconfig */;
|
||||
buildSettings = {
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CE9D202920914D0D00F1C8FA /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.MozillaAppServices;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CE9D202A20914D0D00F1C8FA /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.mozilla.MozillaAppServices;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
EB879D82221234EB00753DC9 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
INFOPLIST_FILE = MozillaAppServicesTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = mozilla.org.MozillaAppServicesTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EB879D83221234EB00753DC9 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
INFOPLIST_FILE = MozillaAppServicesTests/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = mozilla.org.MozillaAppServicesTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
CE9D201A20914D0D00F1C8FA /* Build configuration list for PBXProject "MozillaAppServices" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CE9D202620914D0D00F1C8FA /* Debug */,
|
||||
CE9D202720914D0D00F1C8FA /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
CE9D202820914D0D00F1C8FA /* Build configuration list for PBXNativeTarget "MozillaAppServices" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CE9D202920914D0D00F1C8FA /* Debug */,
|
||||
CE9D202A20914D0D00F1C8FA /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
EB879D84221234EB00753DC9 /* Build configuration list for PBXNativeTarget "MozillaAppServicesTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EB879D82221234EB00753DC9 /* Debug */,
|
||||
EB879D83221234EB00753DC9 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = CE9D201720914D0D00F1C8FA /* Project object */;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
<?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>BuildSystemType</key>
|
||||
<string>Original</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,99 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1010"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CE9D201F20914D0D00F1C8FA"
|
||||
BuildableName = "MozillaAppServices.framework"
|
||||
BlueprintName = "MozillaAppServices"
|
||||
ReferencedContainer = "container:MozillaAppServices.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EB879D79221234EB00753DC9"
|
||||
BuildableName = "MozillaAppServicesTests.xctest"
|
||||
BlueprintName = "MozillaAppServicesTests"
|
||||
ReferencedContainer = "container:MozillaAppServices.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CE9D201F20914D0D00F1C8FA"
|
||||
BuildableName = "MozillaAppServices.framework"
|
||||
BlueprintName = "MozillaAppServices"
|
||||
ReferencedContainer = "container:MozillaAppServices.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CE9D201F20914D0D00F1C8FA"
|
||||
BuildableName = "MozillaAppServices.framework"
|
||||
BlueprintName = "MozillaAppServices"
|
||||
ReferencedContainer = "container:MozillaAppServices.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CE9D201F20914D0D00F1C8FA"
|
||||
BuildableName = "MozillaAppServices.framework"
|
||||
BlueprintName = "MozillaAppServices"
|
||||
ReferencedContainer = "container:MozillaAppServices.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,22 @@
|
|||
<?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>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,88 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
import XCTest
|
||||
|
||||
@testable import MozillaAppServices
|
||||
|
||||
class LoginsTests: XCTestCase {
|
||||
func getTestStorage() -> LoginsStorage {
|
||||
let directory = NSTemporaryDirectory()
|
||||
let filename = "testdb-\(UUID().uuidString).db"
|
||||
let fileURL = URL(fileURLWithPath: directory).appendingPathComponent(filename)
|
||||
// Note: SQLite supports using file: urls, so this works. (Maybe we should allow
|
||||
// passing in a URL argument too?)
|
||||
return LoginsStorage(databasePath: fileURL.absoluteString)
|
||||
}
|
||||
|
||||
override func setUp() {
|
||||
// This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
// This method is called after the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
func testBadEncryptionKey() {
|
||||
let storage = getTestStorage()
|
||||
var dbOpened = true
|
||||
do {
|
||||
try storage.unlock(withEncryptionKey: "foofoofoo")
|
||||
} catch {
|
||||
XCTFail("Failed to setup db")
|
||||
}
|
||||
|
||||
try! storage.lock()
|
||||
|
||||
do {
|
||||
try storage.unlock(withEncryptionKey: "zebra")
|
||||
} catch {
|
||||
dbOpened = false
|
||||
}
|
||||
|
||||
XCTAssertFalse(dbOpened, "Bad key unlocked the db!")
|
||||
}
|
||||
|
||||
func testLoginRecordNil() {
|
||||
let storage = getTestStorage()
|
||||
try! storage.unlock(withEncryptionKey: "test123")
|
||||
let id0 = try! storage.add(login: LoginRecord(
|
||||
id: "",
|
||||
password: "hunter2",
|
||||
hostname: "https://www.example.com",
|
||||
username: "cooluser33",
|
||||
formSubmitURL: "https://www.example.com/login",
|
||||
httpRealm: nil,
|
||||
timesUsed: nil,
|
||||
timeLastUsed: nil,
|
||||
timeCreated: nil,
|
||||
timePasswordChanged: nil,
|
||||
usernameField: nil,
|
||||
passwordField: nil
|
||||
))
|
||||
|
||||
let record0 = try! storage.get(id: id0)!
|
||||
XCTAssertNil(record0.httpRealm)
|
||||
XCTAssertEqual(record0.formSubmitURL, "https://www.example.com/login")
|
||||
|
||||
let id1 = try! storage.add(login: LoginRecord(
|
||||
id: "",
|
||||
password: "hunter3",
|
||||
hostname: "https://www.example2.com",
|
||||
username: "cooluser44",
|
||||
formSubmitURL: nil,
|
||||
httpRealm: "Something Something",
|
||||
timesUsed: nil,
|
||||
timeLastUsed: nil,
|
||||
timeCreated: nil,
|
||||
timePasswordChanged: nil,
|
||||
usernameField: nil,
|
||||
passwordField: nil
|
||||
))
|
||||
|
||||
let record1 = try! storage.get(id: id1)!
|
||||
|
||||
XCTAssertNil(record1.formSubmitURL)
|
||||
XCTAssertEqual(record1.httpRealm, "Something Something")
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
The iOS 'megazord' builds all the components into a single library. This is built as a static framework.
|
||||
|
||||
### Adding new components
|
||||
|
||||
- Update `base.xcconfig` HEADER_SEARCH_PATHS to search for headers in the added component
|
||||
- Add any C bridging headers to the includes in `MozillaAppServices.h`.
|
||||
- drag and drop all the swift files from the new component into this project
|
||||
- update `rust/Cargo.toml` and `rust/src/lib.rs` with the new ffi path
|
|
@ -0,0 +1,23 @@
|
|||
SRCROOT=`pwd`
|
||||
APPSVCROOT="$SRCROOT/../.."
|
||||
pushd "$APPSVCROOT/libs"
|
||||
env -i PATH="$PATH" HOME="$HOME" ./build-all.sh ios
|
||||
popd
|
||||
cd "$SRCROOT/rust"
|
||||
# We can't use cargo lipo because we can't link to universal libraries :(
|
||||
# https://github.com/rust-lang/rust/issues/55235
|
||||
LIBS_ARCHS=("x86_64" "arm64")
|
||||
IOS_TRIPLES=("x86_64-apple-ios" "aarch64-apple-ios")
|
||||
for i in "${!LIBS_ARCHS[@]}"; do
|
||||
LIB_ARCH=${LIBS_ARCHS[$i]}
|
||||
env -i PATH="$PATH" \
|
||||
OPENSSL_STATIC=1 \
|
||||
OPENSSL_DIR="$APPSVCROOT/libs/ios/$LIB_ARCH/openssl" \
|
||||
SQLCIPHER_LIB_DIR="$APPSVCROOT/libs/ios/$LIB_ARCH/sqlcipher/lib" \
|
||||
SQLCIPHER_INCLUDE_DIR="$APPSVCROOT/libs/ios/$LIB_ARCH/sqlcipher/include" \
|
||||
"$HOME"/.cargo/bin/cargo build --lib --release --target ${IOS_TRIPLES[$i]}
|
||||
done
|
||||
mkdir -p "$APPSVCROOT/target/universal/release"
|
||||
lipo -create -output "$APPSVCROOT/target/universal/release/libmegazord_ios.a" \
|
||||
"$APPSVCROOT/target/x86_64-apple-ios/release/libmegazord_ios.a" \
|
||||
"$APPSVCROOT/target/aarch64-apple-ios/release/libmegazord_ios.a" \
|
|
@ -0,0 +1,24 @@
|
|||
<?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>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,7 @@
|
|||
#include "../../xcconfig/common.xcconfig"
|
||||
|
||||
INFOPLIST_FILE = config/Info.plist
|
||||
HEADER_SEARCH_PATHS = "../../components/fxa-client/ios/FxAClient" "../../components/logins/ios/Logins"
|
||||
LIBRARY_SEARCH_PATHS = "../../target/universal/release" "../../libs/ios/universal/sqlcipher/lib"
|
||||
FRAMEWORK_SEARCH_PATHS = "../../Carthage/Build/iOS"
|
||||
SWIFT_OBJC_BRIDGING_HEADER = MozillaAppServices.h
|
|
@ -0,0 +1,2 @@
|
|||
buildvariant = debug
|
||||
#include "base.xcconfig"
|
|
@ -0,0 +1,2 @@
|
|||
buildvariant = release
|
||||
#include "base.xcconfig"
|
|
@ -0,0 +1,13 @@
|
|||
[package]
|
||||
name = "megazord_ios"
|
||||
edition = "2018"
|
||||
version = "0.1.0"
|
||||
authors = ["application-services <application-services@mozilla.com>"]
|
||||
|
||||
[lib]
|
||||
crate-type = ["staticlib"]
|
||||
|
||||
[dependencies]
|
||||
fxaclient_ffi = { path = "../../../components/fxa-client/ffi" }
|
||||
logins_ffi = { path = "../../../components/logins/ffi" }
|
||||
places-ffi = { path = "../../../components/places/ffi" }
|
|
@ -0,0 +1,7 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
pub extern crate fxaclient_ffi;
|
||||
pub extern crate logins_ffi;
|
||||
pub extern crate places_ffi;
|
|
@ -45,7 +45,6 @@ GCC_NO_COMMON_BLOCKS = YES
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11
|
||||
CLANG_CXX_LANGUAGE_STANDARD = gnu++14
|
||||
CLANG_CXX_LIBRARY = libc++
|
||||
CLANG_ENABLE_MODULES = YES
|
||||
CLANG_ENABLE_OBJC_ARC = YES
|
||||
CLANG_ENABLE_OBJC_WEAK = YES
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES
|
||||
|
|
Загрузка…
Ссылка в новой задаче