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:
Garvan Keeley 2019-02-13 16:51:03 -05:00 коммит произвёл Edouard Oger
Родитель 9b9c81d08a
Коммит 6539f02a28
30 изменённых файлов: 889 добавлений и 74 удалений

Просмотреть файл

@ -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

77
Cargo.lock сгенерированный
Просмотреть файл

@ -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",
]

9
build-carthage.sh Normal file
Просмотреть файл

@ -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")
}
}

8
megazords/ios/README.md Normal file
Просмотреть файл

@ -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