lanekit 0.6.0 → 0.7.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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZWVmYzA2ZTdlNmQ4ZmEzNzQxYTIxMTUwMjJmOTc2MTIwYjI5OTNiZA==
4
+ Zjk5ZTM1ZGRhNzMzYjRhYjVhMDRhMzQyOTQwNGQxMDUyMTliM2FkMg==
5
5
  data.tar.gz: !binary |-
6
- OGRlOTdmOTY3OGVmYTZlN2RmOWM4OTNjYTVkMmZiN2ExNWFjYzNmNg==
6
+ MzRiMTQzMDJkOGQ4NjQxOTFkZDY4NTU3ODY2MTA1NjAyMWIwZTA1ZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTEzYmVmZjM3ZWViN2RjNWJkYmQ1ZGYxYTk3YjdiZjFjNmQyMGI3OWVhOTcy
10
- NjE0ZWI0YjgyZTY0ODk5M2FlOGE5OWZhYzgzNjEwZTQxM2UyYzQ0Y2IzNzlk
11
- ZmMwZjM5M2RhYTkyM2M0YzE1YWY3ZTU2YjFhYjllYzhjMDEyZGM=
9
+ ZDA3YTFhZDZkMGRiY2I0ZWZlM2JmN2RkNTM3YjJiOWNiMmY2ZThkYzk5Mzg0
10
+ ZmVjMGZjZGE2YmEwOGFlNDU3NjNmMjAwZWU3OThkNjc3MzRhMzNiZDFmOGQ1
11
+ NWUzNDc4MDZkNWRkZjQ0MWIyNGQ1MTUxYzhjNDQwMWM2ZjU5OWQ=
12
12
  data.tar.gz: !binary |-
13
- YmE5NzYzYWQxNDM1YWM0YzQ1N2EyYjViMzcyMDc0NmZhNjNjODE2NjJkYjA1
14
- NzVkY2JmMDI0OGI1MzRmNDM0MGRjYTM3ODQwMGUxODMwNjY4NjM4YjVjY2My
15
- NDk4NWM5M2Q5NzdlMzdmOWQ1OGJlNjIyMzIxYTA3MzJjOWI0MzQ=
13
+ NzFhOTJlOTRmNTJkZGQ5OGRiY2M5MjAxNjQ1NDc5NjI2NDJlZGVmMDJkNzM5
14
+ YjIyZDkxZjNmNjkwNTI5MGQyNzA1OTIxNjZiOTMzMzk1MGMwN2E2ZDAyMzU1
15
+ OWZiMWE5ZjU0NjJlZGM1MGIxZjA1ZmNjMmU4ZWRmMTkyOWNmNzk=
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/lanekit.png)](http://badge.fury.io/rb/lanekit)
4
4
 
5
5
  LaneKit is an iOS Objective-C code generator for integration with [RestKit](https://github.com/RestKit/RestKit). It generates
6
- models, resource providers, table views, and full iOS apps with mimimal effort. There is support for unit testing with SenTestingKit
6
+ models, resource providers, table views, and full iOS apps with mimimal effort. There is support for unit testing with XCTest
7
7
  including fixtures and tests. LaneKit is a command line app written in Ruby and packaged as a Ruby Gem.
8
8
 
9
9
  - [Source code for LaneKit](https://github.com/LarryAasen/LaneKit/zipball/master) from [GitHub](http://github.com).
@@ -13,7 +13,7 @@ including fixtures and tests. LaneKit is a command line app written in Ruby and
13
13
  * properly implemented models, resource providers, and table views
14
14
  * easy integration with RestKit
15
15
  * consistent Objective-C code
16
- * unit tests with OCUnit (SenTestingKit)
16
+ * unit tests with XCTest
17
17
  * test fixtures in JSON and Objective-C
18
18
  * iOS app creation fully integrated with [CocoaPods](https://github.com/CocoaPods/CocoaPods) and RestKit, and .gitignore file
19
19
  * tested code
@@ -19,6 +19,34 @@ class LaneKit::Generate < Thor
19
19
  LaneKit.add_pod_to_podfile(pod_name)
20
20
  end
21
21
 
22
+ desc "flurry", "Adds the Flurry pod to the Podfile and updates the LKAppDelegate"
23
+ def flurry()
24
+ lanefile = LaneKit::Lanefile.new
25
+ lanefile_error = LaneKit.validate_lanefile(lanefile)
26
+ if lanefile_error
27
+ say lanefile_error, :red
28
+ return
29
+ end
30
+ controllers_folder = LaneKit.controllers_folder(lanefile)
31
+ app_delegate_file = "#{controllers_folder}/LKAppDelegate.m"
32
+
33
+ update_file_add_line(app_delegate_file, 'imports', ['#import "Flurry.h"'])
34
+
35
+ text_lines = [
36
+ ' {',
37
+ ' // Load the Flurry SDK',
38
+ ' // TODO: replace your_flurry_key below with your Flurry Key',
39
+ ' [Flurry startSession:@"your_flurry_key"];',
40
+ ' [Flurry logEvent:@"applicationDidFinishLaunching"];',
41
+ ' }',
42
+ ''
43
+ ]
44
+ update_file_add_line(app_delegate_file, 'app-did-finish-loading', text_lines)
45
+
46
+ pod_name = 'FlurrySDK'
47
+ LaneKit.add_pod_to_podfile(pod_name)
48
+ end
49
+
22
50
  no_tasks do
23
51
  def source_paths
24
52
  LaneKit.template_folders
@@ -28,6 +56,44 @@ class LaneKit::Generate < Thor
28
56
  xcworkspace_path = ""
29
57
  Xcodeproj::Workspace.new_from_xcworkspace(xcworkspace_path)
30
58
  end
59
+
60
+ def update_file_add_line(filename, template_tag, text_lines)
61
+ added_lines = false
62
+
63
+ if File.exists?(filename)
64
+ template_tag = "{" + template_tag + "}\n"
65
+
66
+ insert_into_file filename, :after => template_tag do
67
+ text_lines.join("\n") + "\n"
68
+ end
69
+
70
+ added_lines = true
71
+ end
72
+
73
+ ## Open the file to be updated
74
+ #if File.exists?(filename)
75
+ # found = false
76
+ # File.readlines(filename).each do |line|
77
+ # found_template = line.grep(/#{template_tag}/)
78
+ # # If we found a tag
79
+ # if found_template.length > 0
80
+ # # If we are inside a tag
81
+ # if found
82
+ # # We are now finished with the tag
83
+ # break
84
+ # end
85
+ #
86
+ # found = true
87
+ # end
88
+ # end
89
+ # return added_lines
90
+ #else
91
+ # puts "The file '#{filename}' does not exist"
92
+ # return added_lines
93
+ #end
94
+
95
+ return added_lines
96
+ end
31
97
  end
32
98
 
33
99
  @@template_opts = {
data/lib/lanekit/new.rb CHANGED
@@ -89,20 +89,34 @@ module LaneKit
89
89
  end
90
90
 
91
91
  def add_gitignore
92
- # Download the .gitignore file from GitHub
93
92
  require 'net/https'
94
- ignore_file_uri = URI("http://raw.github.com/github/gitignore/master/Objective-C.gitignore")
93
+ # Create an empty .gitignore file
95
94
  ignore_file_path = File.join(@app_path, ".gitignore")
96
95
  say_status :create, ignore_file_path
97
-
96
+
97
+ # Download the Objective-C .gitignore file from GitHub
98
+ ignore_file_uri = URI("http://raw.githubusercontent.com/github/gitignore/master/Objective-C.gitignore")
98
99
  response = Net::HTTP.start(ignore_file_uri.host, use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE) do |http|
99
100
  http.get ignore_file_uri.request_uri
100
101
  end
101
102
 
103
+ # Write the Objective-C .gitignore contents to local .gitignore file
102
104
  require_text = response.body
103
105
  open(ignore_file_path, "wb") do |file|
104
106
  file.write(require_text)
105
107
  end
108
+
109
+ # Download the OSX .gitignore file from GitHub
110
+ ignore_file_uri = URI("http://raw.githubusercontent.com/github/gitignore/master/Global/OSX.gitignore")
111
+ response = Net::HTTP.start(ignore_file_uri.host, use_ssl: true, verify_mode: OpenSSL::SSL::VERIFY_NONE) do |http|
112
+ http.get ignore_file_uri.request_uri
113
+ end
114
+
115
+ # Append the OSK .gitignore contents to local .gitignore file
116
+ require_text = response.body
117
+ open(ignore_file_path, "ab") do |file|
118
+ file.write(require_text)
119
+ end
106
120
 
107
121
  end
108
122
 
@@ -1,3 +1,3 @@
1
1
  module LaneKit
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -1,7 +1,14 @@
1
1
  xcodeproj 'lanekit-ios-project/lanekit-ios-project.xcodeproj'
2
2
 
3
3
  platform :ios, "6.0"
4
+ inhibit_all_warnings!
4
5
 
5
6
  link_with ['lanekit-ios-project', 'lanekit-ios-projectTests']
6
7
 
7
- pod 'RestKit', '0.20.3'
8
+ pod 'RestKit', '0.23.1'
9
+
10
+ post_install do | installer |
11
+ require 'fileutils'
12
+ FileUtils.cp_r('../Pods/Pods-acknowledgements.plist', 'lanekit-ios-project/Resources/Settings.bundle/Acknowledgements.plist', :remove_destination => true)
13
+ end
14
+
@@ -3,16 +3,18 @@
3
3
  //
4
4
 
5
5
  #import "LKAppDelegate.h"
6
+ // Used by LaneKit. Do not remove this: {imports}
6
7
 
7
8
  @implementation LKAppDelegate
8
9
 
9
10
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
10
11
  {
11
- UIViewController *controller = UIViewController.new;
12
- [(UINavigationController *)self.window.rootViewController pushViewController:controller animated:NO];
13
- controller.navigationItem.title = @"lanekit-ios-project";
14
-
15
- return YES;
12
+ UIViewController *controller = UIViewController.new;
13
+ [(UINavigationController *)self.window.rootViewController pushViewController:controller animated:NO];
14
+ controller.navigationItem.title = @"lanekit-ios-project";
15
+
16
+ // Used by LaneKit. Do not remove this: {app-did-finish-loading}
17
+ return YES;
16
18
  }
17
19
 
18
20
  @end
@@ -0,0 +1,19 @@
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>PreferenceSpecifiers</key>
6
+ <array>
7
+ <dict>
8
+ <key>Title</key>
9
+ <string>Acknowledgements</string>
10
+ <key>File</key>
11
+ <string>Acknowledgements</string>
12
+ <key>Type</key>
13
+ <string>PSChildPaneSpecifier</string>
14
+ </dict>
15
+ </array>
16
+ <key>StringsTable</key>
17
+ <string>Root</string>
18
+ </dict>
19
+ </plist>
@@ -16,6 +16,7 @@
16
16
  461263D5180B401300771CF8 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 461263D4180B401300771CF8 /* Images.xcassets */; };
17
17
  466CCC26181CA7CA0028AD47 /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 466CCC22181CA7CA0028AD47 /* Main_iPad.storyboard */; };
18
18
  466CCC27181CA7CA0028AD47 /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 466CCC24181CA7CA0028AD47 /* Main_iPhone.storyboard */; };
19
+ 468AB2E1190DE64100461303 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 468AB2E0190DE64100461303 /* Settings.bundle */; };
19
20
  46B91530182595FA00DC8651 /* placeholder@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 46B9152F182595FA00DC8651 /* placeholder@2x.png */; };
20
21
  46C411911824966400B19AB2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 461263C2180B401300771CF8 /* Foundation.framework */; };
21
22
  46C411921824966400B19AB2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 461263C6180B401300771CF8 /* UIKit.framework */; };
@@ -51,6 +52,7 @@
51
52
  461263E5180B401300771CF8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
52
53
  466CCC23181CA7CA0028AD47 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Resources/Base.lproj/Main_iPad.storyboard; sourceTree = "<group>"; };
53
54
  466CCC25181CA7CA0028AD47 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Resources/Base.lproj/Main_iPhone.storyboard; sourceTree = "<group>"; };
55
+ 468AB2E0190DE64100461303 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Settings.bundle; path = Resources/Settings.bundle; sourceTree = "<group>"; };
54
56
  46B9152F182595FA00DC8651 /* placeholder@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder@2x.png"; path = "Resources/placeholder@2x.png"; sourceTree = "<group>"; };
55
57
  46C4118F1824966400B19AB2 /* lanekit-ios-projectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "lanekit-ios-projectTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
56
58
  46C411A41824995C00B19AB2 /* lanekit-ios-projectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "lanekit-ios-projectTests.m"; sourceTree = "<group>"; };
@@ -207,10 +209,11 @@
207
209
  466CCB7C18192CF30028AD47 /* Resources */ = {
208
210
  isa = PBXGroup;
209
211
  children = (
212
+ 461263D4180B401300771CF8 /* Images.xcassets */,
210
213
  466CCC22181CA7CA0028AD47 /* Main_iPad.storyboard */,
211
214
  466CCC24181CA7CA0028AD47 /* Main_iPhone.storyboard */,
212
- 461263D4180B401300771CF8 /* Images.xcassets */,
213
215
  46B9152F182595FA00DC8651 /* placeholder@2x.png */,
216
+ 468AB2E0190DE64100461303 /* Settings.bundle */,
214
217
  );
215
218
  name = Resources;
216
219
  sourceTree = "<group>";
@@ -306,6 +309,7 @@
306
309
  466CCC27181CA7CA0028AD47 /* Main_iPhone.storyboard in Resources */,
307
310
  466CCC26181CA7CA0028AD47 /* Main_iPad.storyboard in Resources */,
308
311
  461263CD180B401300771CF8 /* InfoPlist.strings in Resources */,
312
+ 468AB2E1190DE64100461303 /* Settings.bundle in Resources */,
309
313
  461263D5180B401300771CF8 /* Images.xcassets in Resources */,
310
314
  );
311
315
  runOnlyForDeploymentPostprocessing = 0;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lanekit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Larry Aasen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-12 00:00:00.000000000 Z
11
+ date: 2014-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocoapods
@@ -110,6 +110,8 @@ files:
110
110
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/Images.xcassets/AppIcon.appiconset/Contents.json
111
111
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json
112
112
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/placeholder@2x.png
113
+ - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/Settings.bundle/en.lproj/Root.strings
114
+ - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Resources/Settings.bundle/Root.plist
113
115
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Supporting
114
116
  Files/lanekit-ios-project-Info.plist
115
117
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project/Supporting
@@ -118,9 +120,6 @@ files:
118
120
  Files/main.m
119
121
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project.xcodeproj/project.pbxproj
120
122
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project.xcodeproj/project.xcworkspace/contents.xcworkspacedata
121
- - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project.xcodeproj/project.xcworkspace/xcuserdata/larry.xcuserdatad/UserInterfaceState.xcuserstate
122
- - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project.xcodeproj/xcuserdata/larry.xcuserdatad/xcschemes/lanekit-ios-project.xcscheme
123
- - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-project.xcodeproj/xcuserdata/larry.xcuserdatad/xcschemes/xcschememanagement.plist
124
123
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-projectTests/en.lproj/InfoPlist.strings
125
124
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-projectTests/lanekit-ios-projectTests-Info.plist
126
125
  - lib/template/lanekit-ios-project/lanekit-ios-project/lanekit-ios-projectTests/lanekit-ios-projectTests-Prefix.pch
@@ -1,96 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "0510"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "461263BE180B401300771CF8"
18
- BuildableName = "lanekit-ios-project.app"
19
- BlueprintName = "lanekit-ios-project"
20
- ReferencedContainer = "container:lanekit-ios-project.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
27
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
28
- shouldUseLaunchSchemeArgsEnv = "YES"
29
- buildConfiguration = "Debug">
30
- <Testables>
31
- <TestableReference
32
- skipped = "NO">
33
- <BuildableReference
34
- BuildableIdentifier = "primary"
35
- BlueprintIdentifier = "46C4118E1824966400B19AB2"
36
- BuildableName = "lanekit-ios-projectTests.octest"
37
- BlueprintName = "lanekit-ios-projectTests"
38
- ReferencedContainer = "container:lanekit-ios-project.xcodeproj">
39
- </BuildableReference>
40
- </TestableReference>
41
- </Testables>
42
- <MacroExpansion>
43
- <BuildableReference
44
- BuildableIdentifier = "primary"
45
- BlueprintIdentifier = "461263BE180B401300771CF8"
46
- BuildableName = "lanekit-ios-project.app"
47
- BlueprintName = "lanekit-ios-project"
48
- ReferencedContainer = "container:lanekit-ios-project.xcodeproj">
49
- </BuildableReference>
50
- </MacroExpansion>
51
- </TestAction>
52
- <LaunchAction
53
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
54
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
55
- launchStyle = "0"
56
- useCustomWorkingDirectory = "NO"
57
- buildConfiguration = "Debug"
58
- ignoresPersistentStateOnLaunch = "NO"
59
- debugDocumentVersioning = "YES"
60
- allowLocationSimulation = "YES">
61
- <BuildableProductRunnable>
62
- <BuildableReference
63
- BuildableIdentifier = "primary"
64
- BlueprintIdentifier = "461263BE180B401300771CF8"
65
- BuildableName = "lanekit-ios-project.app"
66
- BlueprintName = "lanekit-ios-project"
67
- ReferencedContainer = "container:lanekit-ios-project.xcodeproj">
68
- </BuildableReference>
69
- </BuildableProductRunnable>
70
- <AdditionalOptions>
71
- </AdditionalOptions>
72
- </LaunchAction>
73
- <ProfileAction
74
- shouldUseLaunchSchemeArgsEnv = "YES"
75
- savedToolIdentifier = ""
76
- useCustomWorkingDirectory = "NO"
77
- buildConfiguration = "Release"
78
- debugDocumentVersioning = "YES">
79
- <BuildableProductRunnable>
80
- <BuildableReference
81
- BuildableIdentifier = "primary"
82
- BlueprintIdentifier = "461263BE180B401300771CF8"
83
- BuildableName = "lanekit-ios-project.app"
84
- BlueprintName = "lanekit-ios-project"
85
- ReferencedContainer = "container:lanekit-ios-project.xcodeproj">
86
- </BuildableReference>
87
- </BuildableProductRunnable>
88
- </ProfileAction>
89
- <AnalyzeAction
90
- buildConfiguration = "Debug">
91
- </AnalyzeAction>
92
- <ArchiveAction
93
- buildConfiguration = "Release"
94
- revealArchiveInOrganizer = "YES">
95
- </ArchiveAction>
96
- </Scheme>
@@ -1,27 +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>SchemeUserState</key>
6
- <dict>
7
- <key>lanekit-ios-project.xcscheme</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>0</integer>
11
- </dict>
12
- </dict>
13
- <key>SuppressBuildableAutocreation</key>
14
- <dict>
15
- <key>461263BE180B401300771CF8</key>
16
- <dict>
17
- <key>primary</key>
18
- <true/>
19
- </dict>
20
- <key>46C4118E1824966400B19AB2</key>
21
- <dict>
22
- <key>primary</key>
23
- <true/>
24
- </dict>
25
- </dict>
26
- </dict>
27
- </plist>