xcfit 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![CI Status](http://img.shields.io/travis/Shashikant86/XCFit.svg?style=flat)](https://travis-ci.org/Shashikant86/XCFit)
|
6
|
+
[![Version](https://img.shields.io/cocoapods/v/XCFit.svg?style=flat)](http://cocoapods.org/pods/XCFit)
|
7
|
+
[![License](https://img.shields.io/cocoapods/l/XCFit.svg?style=flat)](http://cocoapods.org/pods/XCFit)
|
8
|
+
[![Platform](https://img.shields.io/cocoapods/p/XCFit.svg?style=flat)](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>
|