O3(OzoneWalletIOS)项目
卡哇伊嘉人
发表于 2022-12-18 19:47:49
342
0
0
OzoneWalletIOS:https://github.com/CityOfZion/OzoneWalletIOS
neo-swift:https://github.com/CityOfZion/neo-swift; x7 C" ?# K9 N" r
neo-wallet-address-go:https://github.com/apisit/neo-wallet-address-go% b! t2 M# a1 o1 N, U% a6 e1 r! V
下载 OzoneWalletIOS 项目/ ~6 x% W5 h; S7 q
下载 OzoneWalletIOS 项目到本地:
下载 OzoneWalletIOS 项目) b' j ?6 Z% \7 X2 U& ], p
用 Xcode 打开项目并运行:
# a& u2 |3 ] ^
运行出错
& E: b4 \" `' g5 U# e+ \4 Y
缺少文件 `' u. c' E0 p: k9 A
运行出错,发现缺少文件。打开项目目录,发现有这两个文件 Cartfile、Cartfile.resolved:
z( ^ E# l0 v2 H' W# b
Cartfile 文件
该项目是用 Carthage 管理 iOS 依赖库的,安装使用方法看这里,如果安装不成功请下载 Releases 版本进行安装。
打开终端,cd 到该项目目录,运行如下命令:
$ carthage update --platform iOS
/ E. T9 P# G2 N/ X# f1 n, I
$ carthage update –platform iOS 命令: ?" o! D8 I% f' {# }% D& J! C* d
, O6 u( {( Q7 Q0 Z) i8 E5 q8 p5 _
缺少的文件已下载完成# z; K# b n& x; _3 M, t0 j
命令运行成功之后,再次运行项目:
info.plist 文件错误6 U) y, }7 {+ T m0 l$ c3 A7 ]2 q
发现 info.plist 文件读取错误,无法打开。我的解决方法是,新建一个 Project,然后把新工程里的 info.plist 文件拷贝到该项目里替换掉,然后再次运行:8 t, N8 g. }% V' G2 H
" |- ]' ?* p2 r
Reason image not found 错误0 l" M/ L, P2 X6 A0 ?1 `% i+ a
在 Finder 里前往文件夹 ~/Library/Developer/Xcode/DerivedData ,删除缓存目录下的文件 :
再次运行,发现还是同样的错误,后来发现新加的一个库文件 AutoInsetter 没有加进去:% i" D, l6 N0 V; H
*** Building scheme "AutoInsetter" in AutoInsetter.xcworkspace
1 Z7 y6 X# f3 x" C {* F7 d
添加库文件 1
; Q4 u! [. L6 v6 G" S. \
添加库文件 2
添加好后再次运行:
$ F2 ^1 A+ k/ L& W+ O7 ^: M
“networkKey” 出错7 |& Z6 y9 O, A* m, Y# s
这个错误不知道怎么分析,全局搜索了一下“ networkKey”,发现是跟用户数据有关,后来整体看了一下项目,然后把项目的 Main Interface 改了一下:
修改 Main Interface
再一次运行:7 p7 U7 E4 }. ^) k
8 o0 j' l9 f- v9 q" D2 m
Info.plist 文件缺少 Fabric 字段 16 e+ m9 R* v8 P! m6 e0 k. W4 y
) [! L: o! s2 W+ w+ [& p
Info.plist 文件缺少 Fabric 字段 2$ f# o6 X S3 \# Y' M
开启 Background Modes:
" Y4 n$ k) [8 w$ ]' w4 L# l
开启 Background Modes
向 Info.plist 文件添加 Fabric 字段,包含一个 String 类型的 APIKey 和一个 Array 类型的 Kits:8 }( ?# d! ]. N. ? [6 J3 |8 E
" I' @! [- L/ K/ O2 j# m6 ~
QQ20180131-144207@2x.png7 o2 b- v# W1 o6 D
好了,再次运行:
模拟器运行界面 d2 q6 ? E6 m1 F' s
终于运行成功了!!!/(ㄒoㄒ)/~~
AppDelegate.swift
Channel.framework 大概是跟推送通知有关的库:
func setupChannel() {. k4 @; r. w+ U, H/ n
//O3 Development on Channel app_gUHDmimXT8oXRSpJvCxrz5DZvUisko_mliB61uda9iY: ^3 y- e8 D% V5 U9 H, n3 e+ ~9 k" E
Channel.setup(withApplicationId: "app_gUHDmimXT8oXRSpJvCxrz5DZvUisko_mliB61uda9iY")
}
设置应用的外观样式:) N+ f, u2 W; r7 r ?3 ^8 `
func setupApperances() {8 b) d! F3 F4 o. ?4 W+ d9 ]
UIBarButtonItem.appearance().setTitleTextAttributes([
NSAttributedStringKey.font: ThemeManager.barButtonItemFont,
NSAttributedStringKey.foregroundColor: UserDefaultsManager.theme.primaryColor], for: .normal)
UINavigationBar.appearance().largeTitleTextAttributes = [3 f) F/ J2 l# B' q" j. k3 d& \
NSAttributedStringKey.foregroundColor: UserDefaultsManager.theme.textColor,
NSAttributedStringKey.font: UIFont(name: "Avenir-Heavy", size: 32) as Any]
}
创建用户的默认配置:
func registerDefaults() {
let userDefaultsDefaults: [String: Any] = [
"networkKey": "main",
"usedDefaultSeedKey": false,
"selectedThemeKey": Theme.light.rawValue* ~$ j7 A1 T6 z" _$ H+ U
]
UserDefaults.standard.register(defaults: userDefaultsDefaults)
}
开启网络状态监测:9 |4 Z+ Y% o6 ^# j, x3 d
let alertController = UIAlertController(title: "Uh oh! There is no internet connection.
成为第一个吐槽的人