Skip to content

Commit a5dc274

Browse files
committed
switch to swift 3
1 parent 7b5c3be commit a5dc274

File tree

7 files changed

+126
-122
lines changed

7 files changed

+126
-122
lines changed

AppResign/AppResign.xcodeproj/project.pbxproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,12 @@
9898
isa = PBXProject;
9999
attributes = {
100100
LastSwiftUpdateCheck = 0730;
101-
LastUpgradeCheck = 0730;
101+
LastUpgradeCheck = 0800;
102102
ORGANIZATIONNAME = Eular;
103103
TargetAttributes = {
104104
BBBFAE211D06B5CD0041F3FB = {
105105
CreatedOnToolsVersion = 7.3.1;
106+
LastSwiftMigration = 0800;
106107
};
107108
};
108109
};
@@ -224,13 +225,16 @@
224225
isa = XCBuildConfiguration;
225226
buildSettings = {
226227
PRODUCT_NAME = "$(TARGET_NAME)";
228+
SWIFT_VERSION = 3.0;
227229
};
228230
name = Debug;
229231
};
230232
BBBFAE2B1D06B5CD0041F3FB /* Release */ = {
231233
isa = XCBuildConfiguration;
232234
buildSettings = {
233235
PRODUCT_NAME = "$(TARGET_NAME)";
236+
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
237+
SWIFT_VERSION = 3.0;
234238
};
235239
name = Release;
236240
};

AppResign/AppResign.xcodeproj/xcuserdata/eular.xcuserdatad/xcschemes/AppResign.xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0730"
3+
LastUpgradeVersion = "0800"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"

AppResign/AppResign/AppResign.swift

Lines changed: 78 additions & 78 deletions
Large diffs are not rendered by default.

AppResign/AppResign/Extension.swift

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
import Foundation
1010

1111
var LogMode = false
12-
func Log<T>(message: T, file: String = #file, function: String = #function, line: Int = #line) {
12+
func Log<T>(_ message: T, file: String = #file, function: String = #function, line: Int = #line) {
1313
if LogMode {
14-
let formatter = NSDateFormatter()
14+
let formatter = DateFormatter()
1515
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
1616

17-
print("\(formatter.stringFromDate(NSDate())) \(file.lastPathComponent)[\(line)], \(function): \(message)")
17+
print("\(formatter.string(from: Date())) \(file.lastPathComponent)[\(line)], \(function): \(message)")
1818
}
1919
}
2020

@@ -27,27 +27,27 @@ struct AppSignerTaskOutput {
2727
}
2828
}
2929

30-
extension NSTask {
30+
extension Task {
3131
func launchSyncronous() -> AppSignerTaskOutput {
32-
self.standardInput = NSFileHandle.fileHandleWithNullDevice()
33-
let pipe = NSPipe()
32+
self.standardInput = FileHandle.nullDevice()
33+
let pipe = Pipe()
3434
self.standardOutput = pipe
3535
self.standardError = pipe
3636
let pipeFile = pipe.fileHandleForReading
3737
self.launch()
3838

3939
let data = NSMutableData()
40-
while self.running {
41-
data.appendData(pipeFile.availableData)
40+
while self.isRunning {
41+
data.append(pipeFile.availableData)
4242
}
4343

44-
let output = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
44+
let output = NSString(data: data as Data, encoding: String.Encoding.utf8.rawValue) as! String
4545

4646
return AppSignerTaskOutput(status: self.terminationStatus, output: output)
4747

4848
}
4949

50-
func execute(launchPath: String, workingDirectory: String?, arguments: [String]?)->AppSignerTaskOutput{
50+
func execute(_ launchPath: String, workingDirectory: String?, arguments: [String]?)->AppSignerTaskOutput{
5151
self.launchPath = launchPath
5252
if arguments != nil {
5353
self.arguments = arguments
@@ -79,14 +79,14 @@ extension String {
7979

8080
get {
8181

82-
return (self as NSString).stringByDeletingLastPathComponent
82+
return (self as NSString).deletingLastPathComponent
8383
}
8484
}
8585
var stringByDeletingPathExtension: String {
8686

8787
get {
8888

89-
return (self as NSString).stringByDeletingPathExtension
89+
return (self as NSString).deletingPathExtension
9090
}
9191
}
9292
var pathComponents: [String] {
@@ -97,21 +97,21 @@ extension String {
9797
}
9898
}
9999

100-
func stringByAppendingPathComponent(path: String) -> String {
100+
func stringByAppendingPathComponent(_ path: String) -> String {
101101

102102
let nsSt = self as NSString
103103

104-
return nsSt.stringByAppendingPathComponent(path)
104+
return nsSt.appendingPathComponent(path)
105105
}
106106

107-
func stringByAppendingPathExtension(ext: String) -> String? {
107+
func stringByAppendingPathExtension(_ ext: String) -> String? {
108108

109109
let nsSt = self as NSString
110110

111-
return nsSt.stringByAppendingPathExtension(ext)
111+
return nsSt.appendingPathExtension(ext)
112112
}
113113

114114
func trim() -> String {
115-
return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
115+
return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
116116
}
117-
}
117+
}

AppResign/AppResign/ProvisioningProfile.swift

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ struct ProvisioningProfile {
1212

1313
var filename: String,
1414
name: String,
15-
created: NSDate,
16-
expires: NSDate,
15+
created: Date,
16+
expires: Date,
1717
appID: String,
1818
teamID: String,
1919
rawXML: String,
@@ -22,14 +22,14 @@ struct ProvisioningProfile {
2222
static func getProfiles() -> [ProvisioningProfile] {
2323
var output: [ProvisioningProfile] = []
2424

25-
let fileManager = NSFileManager()
26-
if let libraryDirectory = fileManager.URLsForDirectory(.LibraryDirectory, inDomains: .UserDomainMask).first, libraryPath = libraryDirectory.path {
25+
let fileManager = FileManager()
26+
if let libraryDirectory = fileManager.urlsForDirectory(.libraryDirectory, inDomains: .userDomainMask).first, libraryPath = libraryDirectory.path {
2727
let provisioningProfilesPath = libraryPath.stringByAppendingPathComponent("MobileDevice/Provisioning Profiles") as NSString
2828

29-
if let provisioningProfiles = try? fileManager.contentsOfDirectoryAtPath(provisioningProfilesPath as String) {
29+
if let provisioningProfiles = try? fileManager.contentsOfDirectory(atPath: provisioningProfilesPath as String) {
3030
for provFile in provisioningProfiles {
3131
if provFile.pathExtension == "mobileprovision" {
32-
let profileFilename = provisioningProfilesPath.stringByAppendingPathComponent(provFile)
32+
let profileFilename = provisioningProfilesPath.appendingPathComponent(provFile)
3333
if let profile = ProvisioningProfile(filename: profileFilename) {
3434
output.append(profile)
3535
}
@@ -44,24 +44,24 @@ struct ProvisioningProfile {
4444
init?(filename: String){
4545
let securityArgs = ["cms","-D","-i", filename]
4646

47-
let taskOutput = NSTask().execute("/usr/bin/security", workingDirectory: nil, arguments: securityArgs)
47+
let taskOutput = Task().execute("/usr/bin/security", workingDirectory: nil, arguments: securityArgs)
4848
if taskOutput.status == 0 {
4949
self.rawXML = taskOutput.output
5050

51-
if let results = try? NSPropertyListSerialization.propertyListWithData(taskOutput.output.dataUsingEncoding(NSUTF8StringEncoding)!, options: .Immutable, format: nil) {
51+
if let results = try? PropertyListSerialization.propertyList(from: taskOutput.output.data(using: String.Encoding.utf8)!, options: PropertyListSerialization.MutabilityOptions(), format: nil) {
5252

53-
if let expirationDate = results.valueForKey("ExpirationDate") as? NSDate,
54-
creationDate = results.valueForKey("CreationDate") as? NSDate,
55-
name = results.valueForKey("Name") as? String,
56-
entitlements = results.valueForKey("Entitlements"),
57-
applicationIdentifier = entitlements.valueForKey("application-identifier") as? String,
58-
periodIndex = applicationIdentifier.characters.indexOf(".") {
53+
if let expirationDate = results.value(forKey: "ExpirationDate") as? Date,
54+
creationDate = results.value(forKey: "CreationDate") as? Date,
55+
name = results.value(forKey: "Name") as? String,
56+
entitlements = results.value(forKey: "Entitlements"),
57+
applicationIdentifier = entitlements.value(forKey: "application-identifier") as? String,
58+
periodIndex = applicationIdentifier.characters.index(of: ".") {
5959

6060
self.filename = filename
6161
self.expires = expirationDate
6262
self.created = creationDate
63-
self.appID = applicationIdentifier.substringFromIndex(periodIndex.advancedBy(1))
64-
self.teamID = applicationIdentifier.substringToIndex(periodIndex)
63+
self.appID = applicationIdentifier.substring(from: applicationIdentifier.index(periodIndex, offsetBy: 1))
64+
self.teamID = applicationIdentifier.substring(to: periodIndex)
6565
self.name = name
6666
self.entitlements = entitlements
6767

@@ -81,11 +81,11 @@ struct ProvisioningProfile {
8181
}
8282
}
8383

84-
func getEntitlementsPlist(tempFolder: String) -> NSString? {
84+
func getEntitlementsPlist(_ tempFolder: String) -> NSString? {
8585
let mobileProvisionPlist = tempFolder.stringByAppendingPathComponent("mobileprovision.plist")
8686
do {
87-
try self.rawXML.writeToFile(mobileProvisionPlist, atomically: false, encoding: NSUTF8StringEncoding)
88-
let plistBuddy = NSTask().execute("/usr/libexec/PlistBuddy", workingDirectory: nil, arguments: ["-c", "Print :Entitlements", mobileProvisionPlist, "-x"])
87+
try self.rawXML.write(toFile: mobileProvisionPlist, atomically: false, encoding: String.Encoding.utf8)
88+
let plistBuddy = Task().execute("/usr/libexec/PlistBuddy", workingDirectory: nil, arguments: ["-c", "Print :Entitlements", mobileProvisionPlist, "-x"])
8989
if plistBuddy.status == 0 {
9090
return plistBuddy.output
9191
} else {
@@ -99,4 +99,4 @@ struct ProvisioningProfile {
9999
return nil
100100
}
101101
}
102-
}
102+
}

AppResign/AppResign/main.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func Usage() {
2323
print("./\(appName) -v xxx.ipa xxx-out.ipa")
2424
}
2525

26-
func raw_input(prompt: String = "> ") -> String {
26+
func raw_input(_ prompt: String = "> ") -> String {
2727
print(prompt, terminator:"")
2828
var input: String = ""
2929

@@ -37,7 +37,7 @@ func raw_input(prompt: String = "> ") -> String {
3737
}
3838
}
3939

40-
func mainRoutine(input: String, output: String) {
40+
func mainRoutine(_ input: String, output: String) {
4141
let support = ["deb", "ipa", "app", "xcarchive"]
4242
if support.contains(input.pathExtension) {
4343
if output.pathExtension == "ipa" {
@@ -99,7 +99,7 @@ func mainRoutine(input: String, output: String) {
9999
}
100100

101101
// Set app bundle ID
102-
if profile!.appID.characters.indexOf("*") == nil {
102+
if profile!.appID.characters.index(of: "*") == nil {
103103
// Not a wildcard profile
104104
appResign.newApplicationID = profile!.appID
105105
print("Use default bundle ID: \(profile!.appID)\n")
@@ -126,7 +126,7 @@ func mainRoutine(input: String, output: String) {
126126
print("[*] Error! \nOnly support output ipa file.")
127127
}
128128
} else {
129-
print("[*] Error! \nThis tool can only support input file with format: \(support.joinWithSeparator(", ")).")
129+
print("[*] Error! \nThis tool can only support input file with format: \(support.joined(separator: ", ")).")
130130
}
131131
}
132132

0 commit comments

Comments
 (0)