Skip to content

Commit ef0f9f4

Browse files
committed
Linux Support
1 parent 3a5a35c commit ef0f9f4

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

Sources/PBXObject.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import Foundation
1010

11-
public typealias Fields = [String: AnyObject]
11+
public typealias Fields = [String: Any]
1212

1313
public /* abstract */ class PBXObject {
1414
public let id: String

Sources/Serialization.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ internal class Serializer {
9191
]
9292

9393
for key in projectFile.dict.keys.sorted() {
94-
let val: AnyObject = projectFile.dict[key]!
94+
let val: Any = projectFile.dict[key]!
9595

9696
if key == "objects" {
9797

@@ -219,7 +219,7 @@ internal class Serializer {
219219
return "\"\(str)\""
220220
}
221221

222-
func objval(key: String, val: AnyObject, multiline: Bool) -> [String] {
222+
func objval(key: String, val: Any, multiline: Bool) -> [String] {
223223
var parts: [String] = []
224224
let keyStr = valStr(key)
225225

@@ -257,7 +257,7 @@ internal class Serializer {
257257
}
258258

259259
for valKey in valObj.keys.sorted() {
260-
let valVal: AnyObject = valObj[valKey]!
260+
let valVal: Any = valObj[valKey]!
261261
let ps = objval(key: valKey, val: valVal, multiline: multiline)
262262

263263
if multiline {
@@ -282,7 +282,7 @@ internal class Serializer {
282282
parts.append("\(keyStr) = {")
283283

284284
for valKey in valObj.keys.sorted() {
285-
let valVal: AnyObject = valObj[valKey]!
285+
let valVal: Any = valObj[valKey]!
286286
let ps = objval(key: valKey, val: valVal, multiline: multiline)
287287

288288
if multiline {
@@ -335,7 +335,7 @@ internal class Serializer {
335335

336336
for key in fields.keys.sorted() {
337337
if key == "isa" { continue }
338-
let val: AnyObject = fields[key]!
338+
let val: Any = fields[key]!
339339

340340
for p in objval(key: key, val: val, multiline: multiline) {
341341
parts.append(p)

Sources/XCProjectFile.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,18 @@ public class XCProjectFile {
4646
var format: PropertyListSerialization.PropertyListFormat = PropertyListSerialization.PropertyListFormat.binary
4747
let obj = try PropertyListSerialization.propertyList(from: data, options: options, format: &format)
4848

49+
#if os(Linux)
50+
guard let hashDict = obj as? [AnyHashable: Any] else {
51+
throw ProjectFileError.invalidData
52+
}
53+
let dict = hashDict.reduce(into: [String: Any]()) { acc, item in
54+
acc["\(item.0.base)"] = item.1
55+
}
56+
#else
4957
guard let dict = obj as? Fields else {
5058
throw ProjectFileError.invalidData
5159
}
60+
#endif
5261

5362
self.init(dict: dict, format: format)
5463
}

0 commit comments

Comments
 (0)