Particle-Network / particle-ios

Particle iOS SDK
https://particle.network
Apache License 2.0
17 stars 3 forks source link
arbitrum aurora avalanche bsc ethereum evm evm-chains fantom harmony heco moonbeam optimism polygon solana web3 web3wallet

Particle iOS

Swift Platforms CocoaPods Compatible License

This repository contains Auth Service and Wallet Service sample source. It supports Solana and all EVM-compatiable chains now, more chains and more features coming soon! Learn more visit Particle Network.

image

Note

Please note that the AuthCore SDKs only support ios-arm64 (iOS devices). We currently do not support ios-x86_64-simulator (Intel chip simulators) and ios-arm64-simulator (M-series chip simulators).

Prerequisites

Install the following:

Xcode 15.0 or higher iOS 14 or higher

Xcode version 15.0 or higher
ParticleConnectKit 2.0.3
ParticleNetworkBase 2.0.3
ParticleWalletAPI 2.0.3
ParticleWalletGUI 2.0.3
ParticleWalletConnect 2.0.3
ParticleAA 2.0.3
ParticleAuthCore 2.0.3
ParticleMPCCore 2.0.3
AuthCoreAdapter 2.0.3
Thresh 2.0.3
ParticleAuthService(deprecated) ---

🎯 Support Apple Privacy Manifests

From version 1.4.0, all SDKs have been adapted to Apple's privacy requirements.

The following third-party SDKs require the use of specific versions.

pod 'SwiftyUserDefaults', :git => 'https://github.com/SunZhiC/SwiftyUserDefaults.git', :branch => 'master'
# if you need ParticleWalletConnect, you should add this line.
pod 'WalletConnectSwiftV2', :git => 'https://github.com/SunZhiC/WalletConnectSwiftV2.git', :branch => 'particle'
# if you need ParticleAuthCore or ParticleWalletGUI, you should add this line.
pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main'

Migrating to WalletConnect v2

Starting from version 0.14.0, WalletConnectV2 is supported.

πŸ”Œ Podfile request

From 0.9.12, you should add more in Podfile If you use PartcleWalletGUI, you need add this one.

pod 'SkeletonView', :git => 'https://github.com/SunZhiC/SkeletonView.git', :branch => 'main'

πŸ§‚ Update Podfile

From 0.8.6, we start to build SDK with XCFramework, that request copy the following text into Podfile.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
    config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
      end
    end
   end

πŸ”§ Getting Started

* Config your app scheme url, select your app target, in the info section, click add URL Type, past your scheme in URL Schemes. 
your scheme url should be "pn" + your project app id.

    for example, if you project app id is "63bfa427-cf5f-4742-9ff1-e8f5a1b9826f", you scheme url is "pn63bfa427-cf5f-4742-9ff1-e8f5a1b9826f".
![image](https://user-images.githubusercontent.com/18244874/168455432-f25796b0-3a6a-4fa7-8ec6-adc5f8a0c46e.png)

* Add Privacy - Camera Usage Description to your info.plist file

## πŸ’Ώ Build

pod install --repo-update



## πŸš΄β€β™‚οΈ Other Demo

- **GuideSeries:** follow [iOS Guide](https://developers.particle.network/guides/wallet-as-a-service/waas/mobile-quickstart) step to step, add ParticleSDK to your project.

- **ParticleWalletConnectDemo** show how to integrate with ParticleWalletConnect, it use ParticleAuthService to handle request from dapp.
- **ParticleAuthDemo_deprecated** show how to integrate ParticleAuthService with a few code.

- **ParticleAuthDemo_Scene_deprecated** start from SceneDelegate.swift, show how to integrate ParticleAuthService when app start from SceneDelagate.swift with a few code.

## πŸ”¬ Features

1. Login with email, phone, facebook, google, apple etc.
2. Logout.
3. Open Wallet.
4. Change Chain Id.
5. Check our official dev docs: https://developers.particle.network/

## πŸ“„ Docs
1. https://developers.particle.network/api-reference/connect/mobile/ios
2. https://developers.particle.network/api-reference/auth/mobile-sdks/ios
3. https://developers.particle.network/api-reference/wallet/mobile/ios
4. https://developers.particle.network/api-reference/aa/sdks/mobile/ios

## πŸ’Ό Give Feedback
Please report bugs or issues to [particle-ios/issues](https://github.com/Particle-Network/particle-ios/issues)

You can also join our [Discord](https://discord.gg/2y44qr6CR2).