i7:~ mobile% pwd
/var/jb/var/mobile
i7:~ mobile% ls -la ~
| async (str) => { | |
| const re = /https?:\/\/[-_.!~*\'a-zA-Z0-9;\/?:\@&=+\$,%#]+/g; | |
| const m = str.match(re); | |
| return `<img src=${m[0]} width=300>`; | |
| } |
| #!/usr/bin/env zx | |
| const aws = require('aws-sdk'); | |
| const lambda = new aws.Lambda({ region: 'ap-northeast-1' }); | |
| const functions = await lambda.listFunctions().promise(); | |
| for (const f of functions.Functions) { | |
| const str = await $`aws lambda list-tags --resource ${f.FunctionArn}` | |
| const json = JSON.parse(str); |
| - run: | |
| name: Install mint | |
| command: | | |
| version=$(curl -s "https://github.com/yonaskolb/Mint/releases/latest" | sed 's/^.*tag\/\([^"]*\).*$/\1/') | |
| echo Installing mint ${version} | |
| curl -Ls -o mint.zip https://github.com/yonaskolb/Mint/releases/download/${version}/mint.zip | |
| unzip mint.zip | |
| rm mint.zip | |
| mv mint /usr/local/bin/ |
coolstar version of PreferenceLoader v3.0.1 no longer support PLFilterKey NSString symbol since this commit https://github.com/coolstar/preferenceloader/commit/8f381e9a0bc1870971603f7411dc1ff0d1d87ea1
So if tweaks that using PLFilterKey not work on Odyssey environment like this.
Injection failed: 'dlopen(/Library/TweakInject/Sleipnizer.dylib, 9): Symbol not found: _PLFilterKey
I just replace PLFilterKey to own impl of NSString to fix this compatibility breaking change.
ある程度まとまっているwikipedia https://en.wikipedia.org/wiki/Safari_version_history#Safari_13_2
http://bedienungsanleitung.elektronotdienst-nuernberg.de/webkit-changeset.html
最近は頭の8がiOS/iPadOSを指す
8xxx.yyy.zzz.aaa.bbb の形式。aaa.bbbのMICRO, NANOバージョンは記載する際には大体省略される
ソースからバージョンを確認する時は https://github.com/WebKit/webkit/blob/master/Source/WebKit/Configurations/Version.xcconfig
| #ifdef DEBUG | |
| #ifdef __cplusplus | |
| extern "C" void MyDebugLog(NSString *formatString, ...); | |
| #else | |
| extern void MyDebugLog(NSString *formatString, ...); | |
| #endif | |
| #define DLog(...) MyDebugLog(__VA_ARGS__) | |
| #else | |
| #define DLog(...) |
| extension Observable { | |
| /// maxAttemptまでdelay間隔をあけてリトライする | |
| /// | |
| /// - Parameters: | |
| /// - maxAttempt: 最大リトライ回数 | |
| /// - delay: 間隔 | |
| /// - Returns: リトライしたObservable | |
| func retry(_ maxAttempt: Int, delay: RxTimeInterval) -> Observable<Element> { | |
| return retryWhen { (err: Observable<Error>) -> Observable<Int> in |
| extension KeyedDecodingContainerProtocol { | |
| func decode<T: Decodable>(into: inout T, forKey key: Self.Key) { | |
| guard let tmp = try? self.decode(T.self, forKey: key) else { return } | |
| into = tmp | |
| } | |
| } | |
| class A: Decodable { | |
| var hoge = "1" | |
| enum CodingKeys: CodingKey { |
| // =========================== | |
| // Pattern1: SEGV in Xcode10(Swift4.2 or Swift4) ~ Xcode10.1(Swift 4.2.1) | |
| // This code compilable in Xcode 9.4.1(Swift 4.1) | |
| // =========================== | |
| class A {} | |
| protocol BProtocol { | |
| associatedtype Info: A | |
| var info: Info? { get set } | |
| } |