xcfit 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/XCFit.podspec +3 -5
- data/XCFit/Classes/CliSwift.swift +87 -0
- data/XCFit/Classes/CopyDir.swift +26 -0
- data/XCFitDemo/FitNesseRoot/RecentChanges/content.txt +1 -1
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716220147_1_0_0_0.xml +242 -0
- data/XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716220147_1_0_0_0.xml +49 -0
- data/XCFitDemo/LaunchFitnesse +47 -6
- data/XCFitDemo/Podfile +2 -2
- data/XCFitDemo/Podfile.lock +5 -9
- data/XCFitDemo/Pods/Manifest.lock +5 -9
- data/XCFitDemo/Pods/OCSlimProject/Pod/Support/SharedSupport/LICENCE.txt +214 -0
- data/XCFitDemo/Pods/OCSlimProject/Pod/Support/SharedSupport/LaunchFitnesse +47 -6
- data/XCFitDemo/Pods/OCSlimProject/Pod/Support/SharedSupport/fitnesse-standalone.jar +0 -0
- data/XCFitDemo/Pods/OCSlimProject/README.md +44 -45
- data/XCFitDemo/Pods/Pods.xcodeproj/project.pbxproj +290 -413
- data/XCFitDemo/Pods/Target Support Files/OCSlimProject/ResourceBundle-OCSlimProject-Info.plist +1 -1
- data/XCFitDemo/Pods/XCFit/LICENSE +19 -0
- data/XCFitDemo/Pods/XCFit/README.md +33 -0
- data/XCFitDemo/Pods/XCFit/XCFit/Classes/CliSwift.swift +87 -0
- data/XCFitDemo/Pods/XCFit/XCFit/Classes/CopyDir.swift +26 -0
- data/lib/XCFit/main.rb +41 -3
- data/lib/XCFit/version.rb +1 -1
- metadata +12 -5
- data/XCFit/Classes/ReplaceMe.swift +0 -0
- data/XCFitDemo/Pods/Local Podspecs/XCFit.podspec.json +0 -33
- data/XCFitDemo/Pods/Target Support Files/XCFit/ResourceBundle-XCFit-Info.plist +0 -24
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2016 Shashikant86 <shashikant.jagtap@aol.co.uk>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# XCFit
|
2
|
+
|
3
|
+
Full Docs Coming Soon ....
|
4
|
+
|
5
|
+
[](https://travis-ci.org/Shashikant86/XCFit)
|
6
|
+
[](http://cocoapods.org/pods/XCFit)
|
7
|
+
[](http://cocoapods.org/pods/XCFit)
|
8
|
+
[](http://cocoapods.org/pods/XCFit)
|
9
|
+
|
10
|
+
## Example
|
11
|
+
Coming Soon !
|
12
|
+
To run the example project, clone the repo, and run `pod install` from the Example directory first.
|
13
|
+
|
14
|
+
## Requirements
|
15
|
+
|
16
|
+
## Installation
|
17
|
+
|
18
|
+
Comming Soon !
|
19
|
+
|
20
|
+
XCFit is available through [CocoaPods](http://cocoapods.org) and RubyGems. To install
|
21
|
+
it, simply add the following line to your Podfile:
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
pod "XCFit"
|
25
|
+
```
|
26
|
+
|
27
|
+
## Author
|
28
|
+
|
29
|
+
Shashikant86, shashikant.jagtap@aicloud.com
|
30
|
+
|
31
|
+
## License
|
32
|
+
|
33
|
+
XCFit is available under the MIT license. See the LICENSE file for more info.
|
@@ -0,0 +1,87 @@
|
|
1
|
+
// import Foundation
|
2
|
+
|
3
|
+
// func printShell(launchPath launchPath: String, arguments: [String], output: String?) {
|
4
|
+
// let args = arguments.reduce("") {
|
5
|
+
// $0 + $1 + " "
|
6
|
+
// }
|
7
|
+
// print("Ran shell script: \(launchPath) \(args)\nOutput:\n" + (output ?? "--No Output--"))
|
8
|
+
// }
|
9
|
+
|
10
|
+
// func shell(launchPath launchPath: String, arguments: [String] = [], debugPrint: Bool = false) -> String? {
|
11
|
+
|
12
|
+
// let task = NSTask()
|
13
|
+
// task.launchPath = launchPath
|
14
|
+
// task.arguments = arguments
|
15
|
+
|
16
|
+
// let pipe = NSPipe()
|
17
|
+
// task.standardOutput = pipe
|
18
|
+
// task.launch()
|
19
|
+
|
20
|
+
// let data = pipe.fileHandleForReading.readDataToEndOfFile()
|
21
|
+
// let output: String? = NSString(data: data, encoding: NSUTF8StringEncoding) as String?
|
22
|
+
|
23
|
+
// if debugPrint {
|
24
|
+
// printShell(launchPath: launchPath, arguments: arguments, output: output)
|
25
|
+
// }
|
26
|
+
// return output
|
27
|
+
// }
|
28
|
+
|
29
|
+
// func environmentVariable(named named: String) -> String? {
|
30
|
+
// return NSProcessInfo.processInfo().environment[named]
|
31
|
+
// }
|
32
|
+
|
33
|
+
// func say(message: String) {
|
34
|
+
// print("😀 " + TerminalColor.Green + message + TerminalColor.Default)
|
35
|
+
// }
|
36
|
+
|
37
|
+
// func warn(message: String) {
|
38
|
+
// print("😰 " + TerminalColor.Yellow + message + TerminalColor.Default)
|
39
|
+
// }
|
40
|
+
|
41
|
+
// @noreturn
|
42
|
+
// func fail(message: String) {
|
43
|
+
// print("😭 " + TerminalColor.Red + message + TerminalColor.Default)
|
44
|
+
// exit(1)
|
45
|
+
// }
|
46
|
+
|
47
|
+
// protocol Script {
|
48
|
+
// var usage: String { get }
|
49
|
+
// var expectedNumberOfArguments: Int { get }
|
50
|
+
// func run(arguments arguments: [String])
|
51
|
+
|
52
|
+
// func run()
|
53
|
+
// }
|
54
|
+
|
55
|
+
// extension Script {
|
56
|
+
|
57
|
+
// func run() {
|
58
|
+
// let args = createArguments()
|
59
|
+
// guard expectedNumberOfArguments == args.count else {
|
60
|
+
// fail("Expected \(expectedNumberOfArguments) arguments. Got: \(args). \n\nUsage: \(usage)")
|
61
|
+
// }
|
62
|
+
// run(arguments: args)
|
63
|
+
// }
|
64
|
+
|
65
|
+
// func createArguments() -> [String] {
|
66
|
+
// let args = Process.arguments
|
67
|
+
// guard args.count > 1 else {
|
68
|
+
// return []
|
69
|
+
// }
|
70
|
+
// return Array(args[1 ..< args.count])
|
71
|
+
// }
|
72
|
+
// }
|
73
|
+
|
74
|
+
// enum TerminalColor: String {
|
75
|
+
// case Red = "\u{001B}[0;31m"
|
76
|
+
// case Yellow = "\u{001B}[0;33m"
|
77
|
+
// case Green = "\u{001B}[0;32m"
|
78
|
+
// case Default = "\u{001B}[0m"
|
79
|
+
// }
|
80
|
+
|
81
|
+
// func +(lhs: TerminalColor, rhs: String) -> String {
|
82
|
+
// return lhs.rawValue + rhs
|
83
|
+
// }
|
84
|
+
|
85
|
+
// func +(lhs: String, rhs: TerminalColor) -> String {
|
86
|
+
// return lhs + rhs.rawValue
|
87
|
+
// }
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// import Foundation
|
2
|
+
|
3
|
+
// struct CopyDir: Script {
|
4
|
+
|
5
|
+
// var usage: String {
|
6
|
+
// return "Usage: swift CopyDir.swift <DIR1> <DIR2>"
|
7
|
+
// }
|
8
|
+
|
9
|
+
// var expectedNumberOfArguments = 2
|
10
|
+
|
11
|
+
// func run(arguments arguments: [String]) {
|
12
|
+
// let dir1 = arguments[0]
|
13
|
+
// let dir2 = arguments[1]
|
14
|
+
// }
|
15
|
+
|
16
|
+
// func copyDir(dir1: String, dir2: String) {
|
17
|
+
// let sourcePath = "XCFit_Template/"
|
18
|
+
// let destinationPath = "~/Library/Developer/Xcode/Templates/"
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
// shell(launchPath: "/bin/cp", arguments: ["-rf", sourcePath, destinationPath)
|
23
|
+
// }
|
24
|
+
// }
|
25
|
+
|
26
|
+
// CopyDir().run()
|
data/lib/XCFit/main.rb
CHANGED
@@ -8,6 +8,7 @@ module XCFit
|
|
8
8
|
$source_dir = File.expand_path '../../..', __FILE__
|
9
9
|
$source_template_dir = File.join($source_dir, 'XCFit_Templates')
|
10
10
|
$source_xcfit_dir = File.join($source_template_dir, 'XCFit')
|
11
|
+
$source_cucumberish_template_dir = File.join($source_xcfit_dir, 'Cucumberish\ UI\ Test\ Bundle\ Base.xctemplate')
|
11
12
|
$source_gherkin_dir = File.join($source_template_dir, 'Gherkin')
|
12
13
|
$root_dir = File.expand_path('~')
|
13
14
|
$root_lib_dir = File.join($root_dir, 'Library')
|
@@ -68,11 +69,48 @@ module XCFit
|
|
68
69
|
puts " ***************** Enjoy XCFit *****************"
|
69
70
|
end
|
70
71
|
|
71
|
-
desc '
|
72
|
-
def
|
72
|
+
desc 'setall_templates', 'Generate All Xcode Templates for the Gherkin Feature Files & targets for Cucumberish and Fitnesse'
|
73
|
+
def setall_templates
|
73
74
|
create_xctargets
|
74
75
|
create_xcgherkin
|
75
76
|
end
|
76
|
-
|
77
|
+
|
78
|
+
desc 'get_cucumberish VERSION', 'Downloads Cucumberish version and Create Features directory. You must execute this from Cucumberish Xcode Target directory'
|
79
|
+
def get_cucumberish(version="0.0.7")
|
80
|
+
puts "==================XXXXXXXX==========================="
|
81
|
+
puts 'Downloading Cucumberish in the current working directory'
|
82
|
+
puts 'You Should execute this command from Cucumberish Xcode target directory'
|
83
|
+
puts "==================XXXXXXXX==========================="
|
84
|
+
system("curl -sL https://github.com/Ahmed-Ali/Cucumberish/archive/v#{version}.tar.gz | tar xz")
|
85
|
+
cucumberish_dir = "Cucumberish-#{version}" + "/Cucumberish/"
|
86
|
+
system("mv #{cucumberish_dir} .")
|
87
|
+
system("rm -rf Cucumberish-#{version}")
|
88
|
+
puts "==================XXXXXXXX==========================="
|
89
|
+
puts "=======Now creating Feature Directory with Demo Feature ===="
|
90
|
+
puts "==================XXXXXXXX==========================="
|
91
|
+
system("mkdir -p Features")
|
92
|
+
demo_feature_file = $source_cucumberish_template_dir + "/demo.feature"
|
93
|
+
system("cp #{demo_feature_file} Features/")
|
94
|
+
puts $source_cucumberish_template_dir
|
95
|
+
puts "==================XXXXXXXX==========================="
|
96
|
+
puts "=======Created Feature Directory with Demo Feature ===="
|
97
|
+
puts "==================XXXXXXXX==========================="
|
98
|
+
end
|
99
|
+
|
100
|
+
desc 'get_fitnesse', "Download Fitnesse JAR file from Internet. You must execute this from Xcode Fitnesse Acceptance Test Xcode Target directory"
|
101
|
+
def get_fitnesse
|
102
|
+
puts "==================XXXXXXXX==========================="
|
103
|
+
puts 'Downloading Fitnesse JAR file in the current working directory'
|
104
|
+
puts 'You Should execute this command from Fitnesse Acceptance Test Xcode target directory'
|
105
|
+
puts "==================XXXXXXXX==========================="
|
106
|
+
system('curl -H "Accept: application/zip" http://fitnesse.org/fitnesse-standalone.jar\?responder\=releaseDownload\&release\=20160618 -o fitnesse-standalone.jar')
|
107
|
+
if File.exist?("fitnesse-standalone.jar")
|
108
|
+
puts "==================XXXXXXXX==========================="
|
109
|
+
puts "=======SUccessfuly Downloaded Fitnesse JAR===="
|
110
|
+
puts "==================XXXXXXXX==========================="
|
111
|
+
else
|
112
|
+
puts "=======Error downloading Fitnesse JAR===="
|
113
|
+
end
|
114
|
+
end
|
77
115
|
end
|
78
116
|
end
|
data/lib/XCFit/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcfit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shashikant86
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -108,7 +108,8 @@ files:
|
|
108
108
|
- XCFit/Assets/XCFit/iOS Acceptance Tests.xctemplate/TemplateInfo.plist
|
109
109
|
- XCFit/Assets/XCFit/iOS UI Cucumberish Testing Bundle.xctemplate/TemplateInfo.plist
|
110
110
|
- XCFit/Classes/.gitkeep
|
111
|
-
- XCFit/Classes/
|
111
|
+
- XCFit/Classes/CliSwift.swift
|
112
|
+
- XCFit/Classes/CopyDir.swift
|
112
113
|
- XCFitDemo/FitNesseRoot/FitNesse/ComponentsAndLicenses/content.txt
|
113
114
|
- XCFitDemo/FitNesseRoot/FitNesse/ComponentsAndLicenses/properties.xml
|
114
115
|
- XCFitDemo/FitNesseRoot/FitNesse/FullReferenceGuide/content.txt
|
@@ -1399,6 +1400,7 @@ files:
|
|
1399
1400
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716103912_0_1_0_0.xml
|
1400
1401
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716104103_0_1_0_0.xml
|
1401
1402
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716104135_1_0_0_0.xml
|
1403
|
+
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage.ShoudIBuyMilk/20160716220147_1_0_0_0.xml
|
1402
1404
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160715235803_0_0_1_0.xml
|
1403
1405
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160715235936_0_0_1_0.xml
|
1404
1406
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160715235959_0_0_0_2.xml
|
@@ -1408,6 +1410,7 @@ files:
|
|
1408
1410
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716103627_0_0_0_2.xml
|
1409
1411
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716103912_0_2_0_0.xml
|
1410
1412
|
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716104103_0_1_0_0.xml
|
1413
|
+
- XCFitDemo/FitNesseRoot/files/testResults/FrontPage/20160716220147_1_0_0_0.xml
|
1411
1414
|
- XCFitDemo/FitNesseRoot/properties
|
1412
1415
|
- XCFitDemo/LaunchFitnesse
|
1413
1416
|
- XCFitDemo/OCSlimProjectTestRunner.sh
|
@@ -1415,11 +1418,12 @@ files:
|
|
1415
1418
|
- XCFitDemo/Podfile.lock
|
1416
1419
|
- XCFitDemo/Pods/Headers/Private/OCSlimProject/OCSlimProject.h
|
1417
1420
|
- XCFitDemo/Pods/Headers/Public/OCSlimProject/OCSlimProject.h
|
1418
|
-
- XCFitDemo/Pods/Local Podspecs/XCFit.podspec.json
|
1419
1421
|
- XCFitDemo/Pods/Manifest.lock
|
1420
1422
|
- XCFitDemo/Pods/OCSlimProject/LICENSE
|
1421
1423
|
- XCFitDemo/Pods/OCSlimProject/Pod/Classes/OCSlimProject.h
|
1424
|
+
- XCFitDemo/Pods/OCSlimProject/Pod/Support/SharedSupport/LICENCE.txt
|
1422
1425
|
- XCFitDemo/Pods/OCSlimProject/Pod/Support/SharedSupport/LaunchFitnesse
|
1426
|
+
- XCFitDemo/Pods/OCSlimProject/Pod/Support/SharedSupport/fitnesse-standalone.jar
|
1423
1427
|
- XCFitDemo/Pods/OCSlimProject/Pod/Support/iOS/RunTestsTargetWithSlimPort
|
1424
1428
|
- XCFitDemo/Pods/OCSlimProject/Pod/Support/iOS/ios-sim
|
1425
1429
|
- XCFitDemo/Pods/OCSlimProject/README.md
|
@@ -1446,7 +1450,6 @@ files:
|
|
1446
1450
|
- XCFitDemo/Pods/Target Support Files/Pods-XCFitDemoTests/Pods-XCFitDemoTests.modulemap
|
1447
1451
|
- XCFitDemo/Pods/Target Support Files/Pods-XCFitDemoTests/Pods-XCFitDemoTests.release.xcconfig
|
1448
1452
|
- XCFitDemo/Pods/Target Support Files/XCFit/Info.plist
|
1449
|
-
- XCFitDemo/Pods/Target Support Files/XCFit/ResourceBundle-XCFit-Info.plist
|
1450
1453
|
- XCFitDemo/Pods/Target Support Files/XCFit/XCFit-dummy.m
|
1451
1454
|
- XCFitDemo/Pods/Target Support Files/XCFit/XCFit-prefix.pch
|
1452
1455
|
- XCFitDemo/Pods/Target Support Files/XCFit/XCFit-umbrella.h
|
@@ -1458,6 +1461,10 @@ files:
|
|
1458
1461
|
- XCFitDemo/Pods/Target Support Files/cslim/cslim-umbrella.h
|
1459
1462
|
- XCFitDemo/Pods/Target Support Files/cslim/cslim.modulemap
|
1460
1463
|
- XCFitDemo/Pods/Target Support Files/cslim/cslim.xcconfig
|
1464
|
+
- XCFitDemo/Pods/XCFit/LICENSE
|
1465
|
+
- XCFitDemo/Pods/XCFit/README.md
|
1466
|
+
- XCFitDemo/Pods/XCFit/XCFit/Classes/CliSwift.swift
|
1467
|
+
- XCFitDemo/Pods/XCFit/XCFit/Classes/CopyDir.swift
|
1461
1468
|
- XCFitDemo/Pods/cslim/LICENSE
|
1462
1469
|
- XCFitDemo/Pods/cslim/README.txt
|
1463
1470
|
- XCFitDemo/Pods/cslim/fixtures/Main.c
|
File without changes
|
@@ -1,33 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "XCFit",
|
3
|
-
"version": "0.1.0",
|
4
|
-
"summary": "Full Stack BDD for iOS and macOS Apps with Swift, Xcode using XCUITest, Cucumberish, FitNesse and friends.",
|
5
|
-
"description": "XCFit is a full stack BDD framework for iOS and macOS apps with Swift using Cucumberish and Fitnesse. Native Xcode implementation, No Appium, No Calabash, No Ruby or any other non iOS language.",
|
6
|
-
"homepage": "https://github.com/Shashikant86/XCFit",
|
7
|
-
"license": {
|
8
|
-
"type": "MIT",
|
9
|
-
"file": "LICENSE"
|
10
|
-
},
|
11
|
-
"authors": {
|
12
|
-
"Shashikant86": "shashikant.jagtap@icloud.com"
|
13
|
-
},
|
14
|
-
"source": {
|
15
|
-
"git": "https://github.com/Shashikant86/XCFit.git",
|
16
|
-
"tag": "0.1.0"
|
17
|
-
},
|
18
|
-
"social_media_url": "https://twitter.com/Shashikant86",
|
19
|
-
"platforms": {
|
20
|
-
"ios": "8.0"
|
21
|
-
},
|
22
|
-
"source_files": "XCFit/Classes/**/*",
|
23
|
-
"resource_bundles": {
|
24
|
-
"XCFit": [
|
25
|
-
"XCFit/Assets/*.png"
|
26
|
-
]
|
27
|
-
},
|
28
|
-
"dependencies": {
|
29
|
-
"OCSlimProject": [
|
30
|
-
|
31
|
-
]
|
32
|
-
}
|
33
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
-
<plist version="1.0">
|
4
|
-
<dict>
|
5
|
-
<key>CFBundleDevelopmentRegion</key>
|
6
|
-
<string>en</string>
|
7
|
-
<key>CFBundleIdentifier</key>
|
8
|
-
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
9
|
-
<key>CFBundleInfoDictionaryVersion</key>
|
10
|
-
<string>6.0</string>
|
11
|
-
<key>CFBundleName</key>
|
12
|
-
<string>${PRODUCT_NAME}</string>
|
13
|
-
<key>CFBundlePackageType</key>
|
14
|
-
<string>BNDL</string>
|
15
|
-
<key>CFBundleShortVersionString</key>
|
16
|
-
<string>0.1.0</string>
|
17
|
-
<key>CFBundleSignature</key>
|
18
|
-
<string>????</string>
|
19
|
-
<key>CFBundleVersion</key>
|
20
|
-
<string>1</string>
|
21
|
-
<key>NSPrincipalClass</key>
|
22
|
-
<string></string>
|
23
|
-
</dict>
|
24
|
-
</plist>
|