###### tags:`Work` # Android SABA [TOC] ## 1. 如何把Flutter aar 模組放入專案 1. 把 SABA 提供的 repo資料夾加入到專案的Root 2. 在 Android 的 `settings.gradle` 加入 : ```gradle=== dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() maven { url 'path/repo' //加入前往要使用repo的主要path } maven { url 'https://storage.googleapis.com/download.flutter.io' } } } ``` 3. 在 `app/build.gradle` ```gradle=== defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64' } } dependencies { debugImplementation 'com.sportsapp.sasa.nfdemo.lnad_module:flutter_debug:1.0' releaseImplementation'com.sportsapp.sasa.nfdemo_lnad_module:flutter_release:1.0' } ``` 4. 在 AndroidManifest.xml 加上 FlutterActivity ```gradle=== <activity android:name="io.flutter.embedding.android.FlutterActivity" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize" /> ``` 5. 開啟 FlutterActivity 方式,請在Activity呼叫Intent: ```java=== Intent flutterIntent = FlutterActivity.createDefaultIntent(this); flutterIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(flutterIntent); ``` ## 2. 如何import Firebase 1. 需要把提供的 `google-services.json` 放入專案root/app 底下 2. 在 root/build.gradle 加入: ```gradle=== plugins { id("com.google.gms.google-services") version "4.4.0" apply false id 'com.google.firebase.crashlytics' version '2.9.9' apply false } ``` 4. 在 root/app/build.gradle 加入: ```gradle=== plugins { id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' } defaultConfig { applicationId "Firebase 上對應的 applicationId" // Firebase登記的applicationId } ``` ## 3. 如何使用FlutterActivity? ```java= Intent flutterIntent = FlutterActivity.createDefaultIntent(this); flutterIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(flutterIntent); ``` # iOS SABA ## 1. 如何把「靜態 Framework」放入「iOS專案」? 1. 把 SABA 提供的 靜態 Framework(Flutter/Release 資料夾)放入馬甲專案Root。 2. 把所有 Release下方的Libraries 連接起來。前往 Build Phases > Link Binaries with Libraries,並且改Status為「Required」。 3. 在 「Build Settings」搜尋 「Framework Search Paths」並且設定成: ``$(PROJECT_DIR)/Flutter/Release/``。 >[color=lightblue] 4. 在 `General > Frameworks,Libraries, and Embedded Content` 把全部的Embed狀態改 `Embed & Sign`。 5. 調整Signing設定: `Build Settings` 尋找 `Other Code Signing Flags`,並且設定成`-o runtime --runtime-version $DEPLOYMENT _ TARGET`。 >[color=lightblue] 6. ddd ## 2. 如何加入Firebase到App? ### 2.1 加入 GoogleService-Info.plist 1. 必須提供您 **GoogleService-Info.plist 檔案**,放入位子為專案Root的Sub Folder。如相方圖: >[color=lightblue] ### 2.2 新增**Firebase SDK**到專案裡。 1. 開啟 **File > Add Packages** 2. 使用 `https://github.com/firebase/firebase-ios-sdk` 新增Firebase Apple平台的SDK儲存庫。 3. 選擇要使用的Firebase SDK版本。 4. 選擇要使用的Firebase庫。目前這次使用的有: >[color=lightblue] ## 3. 初始化Flutter與Firebase 備註:此文件事使用**SwiftUI**為例。 ### 3.1 初始化Firebase 1. 新增一個**AppDelegate檔案**。 2. 在App的最上方**連接到AppDelegate**: ```swift= import SwiftUI @main struct NearbyEatApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { ContentView(path: delegate.path) } } } ``` 3. 在 **AppDelegate** 使用 **FirebaseApp.configure()** 初始化Firebase。 ### 3.2 初始化Flutter ```swift= private func _initFlutterEngine(name: String) -> FlutterEngine { let flutterEngine: FlutterEngine = FlutterEngine.init(name: name) flutterEngine.run() GeneratedPluginRegistrant.register(with: flutterEngine); return flutterEngine } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up