Swiftpack.co - blockchain/My-Wallet-V3-iOS as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
blockchain/My-Wallet-V3-iOS
Blockchain iOS Wallet
.package(url: "https://github.com/blockchain/My-Wallet-V3-iOS.git", from: "v5.0.1(1)")

Blockchain Wallet for iOS

Banner GitHub last commit GitHub pull requests

Building

Install Xcode

After installing Xcode, open it to begin the Command Line Tools installation. After finished, make sure that a valid CL Tool version is selected in Xcode > Preferences > Locations > Command Line Tools.

Install Git submodules

$ git submodule update --init

If the submodules are not fetched, run:

$ git submodule update --recursive --force

If you don't have read access to My-Wallet-V3-Private:

Open .gitmodules and modify My-Wallet-V3 entry url to the public repo:

.gitmodules from:

[submodule "Submodules/My-Wallet-V3"]
    path = Submodules/My-Wallet-V3
    url = git@github.com:blockchain/My-Wallet-V3-Private.git
    ignore = dirty

to:

[submodule "Submodules/My-Wallet-V3"]
    path = Submodules/My-Wallet-V3
    url = git@github.com:blockchain/My-Wallet-V3.git
    ignore = dirty

Then run:

$ git submodule sync
$ git submodule update --init

Install homebrew

https://brew.sh/

Install Ruby dependencies

Install a Ruby version manager such as rbenv.

$ brew update && brew install rbenv
$ rbenv init

Install a recent ruby version:

$ rbenv install 2.6.5
$ rbenv global 2.6.5
$ eval "$(rbenv init -)"

Then the project ruby dependencies (fastlane, etc.):

$ gem install bundler
$ bundle install

Install build dependencies (brew)

$ sh scripts/install-brew-dependencies.sh

Install JS Dependencies

You will be installing: - nvm - node - yarn

Install nvm and Node

Check nvm installaton instructions.

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Install the correct node version:

$ nvm install 8.17.0
$ nvm use 8.17.0

Install Yarn

$ brew install yarn

Checkout ios branch from Submodules/My-Wallet-V3

$ cd Submodules/My-Wallet-V3
$ git checkout ios
$ cd ../..

Install and build js files

$ sh scripts/install-js.sh && sh scripts/build-js.sh

Prepare OpenSSL

$ cd ./Submodules/OpenSSL-for-iPhone
$ ./build-libssl.sh --cleanup --archs="x86_64 arm64"

Add production Config file

Clone the wallet-ios-credentials repository and copy it's Config directory to this project root directory, it contains a .xcconfig for each environment:

Config/BlockchainConfig/Dev.xcconfig
Config/BlockchainConfig/Production.xcconfig
Config/BlockchainConfig/Staging.xcconfig
Config/BlockchainConfig/Alpha.xcconfig
Config/NetworkKitConfig/Dev.xcconfig
Config/NetworkKitConfig/Production.xcconfig
Config/NetworkKitConfig/Staging.xcconfig
Config/NetworkKitConfig/Alpha.xcconfig

For example, This is how BlockchainConfig/Production.xcconfig looks like:

ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
OPENSSL_CERT_URL = blockchain.info

For example, This is how NetworkKitConfig/Production.xcconfig looks like:

API_URL = api.blockchain.info
BUY_WEBVIEW_URL = blockchain.info/wallet/#/intermediate
COINIFY_URL = app-api.coinify.com
EXCHANGE_URL = exchange.blockchain.com
EXPLORER_SERVER = blockchain.com
RETAIL_CORE_SOCKET_URL = ws.blockchain.info/nabu-gateway/markets/quotes
RETAIL_CORE_URL = api.blockchain.info/nabu-gateway
WALLET_SERVER = blockchain.info

Add Firebase Config Files

Clone wallet-ios-credentials repository and copy it's Firebase directory into Blockchain directory, it contains a GoogleService-Info.plist for each environment.

Firebase/Dev/GoogleService-Info.plist
Firebase/Prod/GoogleService-Info.plist
Firebase/Staging/GoogleService-Info.plist
Firebase/Alpha/GoogleService-Info.plist

Add environment variables for scripts

Clone wallet-ios-credentials repository and copy the env to the root folder of the project, hide the file by using mv env .env

XcodeGen

We are integrating XcodeGen and, despite still committing project files in git, we should generate project files using the following script:

Installing:

$ brew install xcodegen

Generate projects & dependencies:

$ sh scripts/bootstrap.sh

👉 Beware that this will take a while. Feel free to read some docs, a 📖, get a ☕, or go for a 🚶 while it runs…

⚠️ You may need to run the following command if you encounter an xcode-select error:

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

Install mocks for testing:

Install mockingbird mock generator CLI:

$ sh scripts/install-mockingbird.sh

Install mock generation script in targets. It will generate mocks first time the test are run:

$ sh scripts/install-mocks.sh

Build the project

cmd-r

Modules

Please refer to the README in the Modules directory. Please also refer to the README in the TestKit directory.

Contributing

If you would like to contribute code to the Blockchain iOS app, you can do so by forking this repository, making the changes on your fork, and sending a pull request back to this repository.

When submitting a pull request, please make sure that your code compiles correctly and all tests in the BlockchainTests target passes. Be as detailed as possible in the pull request’s summary by describing the problem you solved and your proposed solution.

Additionally, for your change to be included in the subsequent release’s change log, make sure that your pull request’s title and commit message is prefixed using one of the changelog types.

The pull request and commit message format should be:

<changelog type>(<component>): <brief description>

For example:

fix(Create Wallet): Fix email validation

For a full list of supported types, see .changelogrc.

License

Source Code License: LGPL v3

Artwork & images remain Copyright Blockchain Luxembourg S.A.R.L

Security

Security issues can be reported to us in the following venues:

GitHub

link
Stars: 209
Last commit: 16 hours ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

5.0.1
15 hours ago

Blockchain Wallet V3 iOS

f8fc707ddd03b63fdc52d05a45befa26f36cd8cd ( Wed Oct 20 2021 18:19:47 GMT+0300 (EEST) )

Bug Fixes

  • account recovery
    • IOS-5599 - Handle metadata recovery (#2925) 2e9ca2b1
  • background
    • IOS-5603 - Call PortfolioSyncingService sync only for loggedIn users

Generated with git-changelog. If you have any problems or suggestions, create an issue. :) Thanks

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics