O3(OzoneWalletIOS)项目
卡哇伊嘉人
发表于 2022-12-18 19:47:49
431
0
0
OzoneWalletIOS:https://github.com/CityOfZion/OzoneWalletIOS l8 g5 l1 P$ V# {, X
neo-swift:https://github.com/CityOfZion/neo-swift
neo-wallet-address-go:https://github.com/apisit/neo-wallet-address-go
下载 OzoneWalletIOS 项目
下载 OzoneWalletIOS 项目到本地:8 e& f9 C( y- ^1 V9 c
2 ]# {% u: Z0 R. n8 A6 H
下载 OzoneWalletIOS 项目
用 Xcode 打开项目并运行:; F+ P' }- ?" k/ ^7 [8 i8 q
) G; m1 ]7 _$ t, t: }+ Q9 p
运行出错
缺少文件
运行出错,发现缺少文件。打开项目目录,发现有这两个文件 Cartfile、Cartfile.resolved:
Cartfile 文件0 H4 ~" B+ n$ e* a& s
该项目是用 Carthage 管理 iOS 依赖库的,安装使用方法看这里,如果安装不成功请下载 Releases 版本进行安装。3 t, B, m$ |# `$ y+ ?- ]6 ^( @" Z
打开终端,cd 到该项目目录,运行如下命令:" s& w: w1 c6 [4 X i6 F5 q3 }& m
$ carthage update --platform iOS/ Y; o& M+ {. @8 n) w" T6 y
$ carthage update –platform iOS 命令
2 C9 F2 _. K% [ |
缺少的文件已下载完成
命令运行成功之后,再次运行项目:
8 }- w: j9 Q; v7 T
info.plist 文件错误0 s3 i( C, }8 K0 H- j2 |) x s
发现 info.plist 文件读取错误,无法打开。我的解决方法是,新建一个 Project,然后把新工程里的 info.plist 文件拷贝到该项目里替换掉,然后再次运行:
Reason image not found 错误' F: b0 C/ B, K' i7 r
在 Finder 里前往文件夹 ~/Library/Developer/Xcode/DerivedData ,删除缓存目录下的文件 :6 T2 `, @3 B! F- |
! m3 h7 c; }+ ~, a/ W
再次运行,发现还是同样的错误,后来发现新加的一个库文件 AutoInsetter 没有加进去:+ i2 F2 H y2 O4 N9 T( a
*** Building scheme "AutoInsetter" in AutoInsetter.xcworkspace
6 Z5 O6 {/ ~$ C) S7 p( o$ B+ k2 K
添加库文件 10 {: W* G( P$ z8 c
* [5 {/ v( o( ~3 C( W
添加库文件 2
添加好后再次运行:) Q0 m# x' L- }0 X1 y/ { T1 N
“networkKey” 出错1 Q$ }! @& C" F1 o$ ]
这个错误不知道怎么分析,全局搜索了一下“ networkKey”,发现是跟用户数据有关,后来整体看了一下项目,然后把项目的 Main Interface 改了一下:! [/ h" e0 H/ H- n' c* H3 |. y
修改 Main Interface
再一次运行:; T3 z; @6 T+ D/ T, t3 R' T
& G' Y8 u" j8 U' n0 X5 v3 t7 [
Info.plist 文件缺少 Fabric 字段 1
5 q% G9 n* |1 k
Info.plist 文件缺少 Fabric 字段 2
开启 Background Modes:4 ]. A+ S* G g( L) o' \+ ~& m
开启 Background Modes: n/ x1 k: S9 t1 V3 w- m
向 Info.plist 文件添加 Fabric 字段,包含一个 String 类型的 APIKey 和一个 Array 类型的 Kits:
9 k8 U9 e: A& U r& J. f+ [( z
QQ20180131-144207@2x.png
好了,再次运行:
模拟器运行界面& O% c; _7 C, B4 t& X4 h( W" p( z
终于运行成功了!!!/(ㄒoㄒ)/~~, U$ H, x7 O% v- ?, A" { k" F. o w3 _: z
AppDelegate.swift
Channel.framework 大概是跟推送通知有关的库:
func setupChannel() {5 }8 z {# f0 {' b7 w
//O3 Development on Channel app_gUHDmimXT8oXRSpJvCxrz5DZvUisko_mliB61uda9iY8 U6 P8 J" O( k( K; v5 R$ t, W9 l
Channel.setup(withApplicationId: "app_gUHDmimXT8oXRSpJvCxrz5DZvUisko_mliB61uda9iY")
}+ X( Q7 i# z0 W0 b# M" g6 L; P
设置应用的外观样式:& R; `% [- g* t) S' K# c7 p
func setupApperances() {; c7 J; U) `2 {+ p! D8 P' C
UIBarButtonItem.appearance().setTitleTextAttributes([9 W2 l$ P3 K: _! M9 j- H0 l
NSAttributedStringKey.font: ThemeManager.barButtonItemFont,0 m+ Z) ^/ k: G8 K5 H6 u1 _& C
NSAttributedStringKey.foregroundColor: UserDefaultsManager.theme.primaryColor], for: .normal)1 F$ u7 x: Z. w: p$ _
UINavigationBar.appearance().largeTitleTextAttributes = [
NSAttributedStringKey.foregroundColor: UserDefaultsManager.theme.textColor,9 D, D$ R/ O/ {
NSAttributedStringKey.font: UIFont(name: "Avenir-Heavy", size: 32) as Any]
}
创建用户的默认配置:+ F9 V0 j* b9 X, W5 s7 _4 \. |, ^
func registerDefaults() {/ j2 R9 E: g9 k( T
let userDefaultsDefaults: [String: Any] = [3 ?1 p6 G- l- k# F
"networkKey": "main",) \5 C6 _9 V) {% S' f
"usedDefaultSeedKey": false,
"selectedThemeKey": Theme.light.rawValue" `% O7 b7 n7 A6 h t
]
UserDefaults.standard.register(defaults: userDefaultsDefaults): N8 U0 `' {- b6 q* m, i, d; d
}( K8 S6 \( M2 D I% ?; [2 F6 [
开启网络状态监测:+ H/ A ?7 ^; z# a
let alertController = UIAlertController(title: "Uh oh! There is no internet connection.
成为第一个吐槽的人