Skip to content

Commit

Permalink
Merge pull request #3 from DriesVS/master
Browse files Browse the repository at this point in the history
Fixed multiple export issues
  • Loading branch information
DriesVS committed Jun 17, 2018
2 parents a1b52b8 + 0143fa3 commit e20f5c1
Show file tree
Hide file tree
Showing 21 changed files with 123 additions and 47 deletions.
14 changes: 7 additions & 7 deletions Binary/xib2Storyboard.app/Contents/Info.plist
Expand Up @@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>17D102</string>
<string>17F77</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
Expand All @@ -21,27 +21,27 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.2.0</string>
<string>0.3.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>2</string>
<string>3</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9C40b</string>
<string>9E145</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17C76</string>
<string>17E189</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0920</string>
<string>0930</string>
<key>DTXcodeBuild</key>
<string>9C40b</string>
<string>9E145</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
Expand Down
Binary file modified Binary/xib2Storyboard.app/Contents/MacOS/xib2Storyboard
Binary file not shown.
Binary file modified Binary/xib2Storyboard.app/Contents/Resources/AppIcon.icns
Binary file not shown.
Binary file modified Binary/xib2Storyboard.app/Contents/Resources/Assets.car
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 2 additions & 2 deletions Binary/xib2Storyboard.app/Contents/Resources/Info.plist
Expand Up @@ -17,9 +17,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.2.0</string>
<string>0.3.0</string>
<key>CFBundleVersion</key>
<string>2</string>
<string>3</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
Expand Down
42 changes: 21 additions & 21 deletions Binary/xib2Storyboard.app/Contents/_CodeSignature/CodeResources
Expand Up @@ -6,31 +6,31 @@
<dict>
<key>Resources/AppIcon.icns</key>
<data>
JhAPVBEf45M9eLHFHY+xwDLLNzA=
G4PfKexomWW3cjvJhHOrkOQVU90=
</data>
<key>Resources/Assets.car</key>
<data>
JXsfMQ/emcZWl1VX80LQ5Wfh95M=
Ea0O6u1S4FgMUUxNzsJ73FtsG/M=
</data>
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
<data>
/1RtwD2xu2RVZUMaEyby774QORo=
Uo0fsVu2ogPXb2t7mzGKJpVUzk0=
</data>
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
<data>
LqyiCV7xYu/ppOIlqlVPFtMF8yI=
4RbdVpMCy3Rl+kQsXOr4f7Y+RXc=
</data>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
<data>
FvaMfBmfphlzzloosU1yt3utVds=
yLrQYmIiU49czrkvLVHnfux3+ho=
</data>
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-NEu-zX-WhJ.nib</key>
<data>
HhDEycMgsJG30nxwD9fOT0oUjPM=
EsW0ObqHr1wjNWURsGMT+/q0AXI=
</data>
<key>Resources/Info.plist</key>
<data>
kiBxWdwy009aMQdAaQLrteZJDZc=
CMOgYA5IYW4jfFYSe7uePm5EZXc=
</data>
<key>Resources/storyboard_template_ios.xml</key>
<data>
Expand All @@ -47,77 +47,77 @@
<dict>
<key>hash</key>
<data>
JhAPVBEf45M9eLHFHY+xwDLLNzA=
G4PfKexomWW3cjvJhHOrkOQVU90=
</data>
<key>hash2</key>
<data>
818A7Tq/+7IIgMYkbU0C6qB/ldHDlvQH5MR6mkO9Wpc=
Kls21nK0chBReZ/1J/r+4glWa4bObattVcvCLwT3IrE=
</data>
</dict>
<key>Resources/Assets.car</key>
<dict>
<key>hash</key>
<data>
JXsfMQ/emcZWl1VX80LQ5Wfh95M=
Ea0O6u1S4FgMUUxNzsJ73FtsG/M=
</data>
<key>hash2</key>
<data>
iOy28hE9YiYSXbI4H/TvVQXC0gXUAhJs+pJEyKYRKgU=
57IEwFx/xRSF2OFoeV842zHK4MgJZaQQYF33ryeBeB8=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
<dict>
<key>hash</key>
<data>
/1RtwD2xu2RVZUMaEyby774QORo=
Uo0fsVu2ogPXb2t7mzGKJpVUzk0=
</data>
<key>hash2</key>
<data>
eeVXNYSDC2hruEm11/fLUvK8sTfoJKQOC4Zh4FCF0s4=
JLH416W1Fofk5ssI5W27e5ad32LOUD0XaecRKpKYNhI=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
<dict>
<key>hash</key>
<data>
LqyiCV7xYu/ppOIlqlVPFtMF8yI=
4RbdVpMCy3Rl+kQsXOr4f7Y+RXc=
</data>
<key>hash2</key>
<data>
NpXD6AVIhRjqtDmTQknbje8EObhu434FG6PuXFOnGFs=
HwfG2jygI4wd70AVim2r1nE/ZL8q+qGAvYuCovhHKEA=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
<dict>
<key>hash</key>
<data>
FvaMfBmfphlzzloosU1yt3utVds=
yLrQYmIiU49czrkvLVHnfux3+ho=
</data>
<key>hash2</key>
<data>
8V4S828PxA/xdkdIXa45XHn8t+WXp8FPzOxc/6vPlTU=
tOkRn2hHfosI67mLI16LSooZcYl6c5ae1hTRaDYS7Y4=
</data>
</dict>
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-NEu-zX-WhJ.nib</key>
<dict>
<key>hash</key>
<data>
HhDEycMgsJG30nxwD9fOT0oUjPM=
EsW0ObqHr1wjNWURsGMT+/q0AXI=
</data>
<key>hash2</key>
<data>
aDgGq51NqnbbU2YHi4Jwlmhf/BGy3azUQO9nXVT8cj8=
Gp1xYEvtWwEaQYqUpqeBsXZLUP+0HVA4/unfwoENeiA=
</data>
</dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash</key>
<data>
kiBxWdwy009aMQdAaQLrteZJDZc=
CMOgYA5IYW4jfFYSe7uePm5EZXc=
</data>
<key>hash2</key>
<data>
4JPfO3/p1jPL0OE6o+Tl1ZEcYqR8qrw2FGJHygnPPiU=
H6S4BQJd8mquorFvkajIZGCIMXc4bnyCUjw4L7HM21s=
</data>
</dict>
<key>Resources/storyboard_template_ios.xml</key>
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Expand Up @@ -2,6 +2,11 @@

All notable changes to this project will be documented in this file.

## v0.3.0 (2018-05-17)

Fixed an issue where not all outlets or object id's are randomized
Fixed an issue where duplicate resources could exist after adding Xib's to an existing Storyboard

## v0.2.0 (2018-03-26)

Added ability to export Xib's to an existing Storyboard
Expand Down
Expand Up @@ -26,7 +26,6 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
Expand All @@ -46,7 +45,6 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
Expand Down
2 changes: 1 addition & 1 deletion xib2Storyboard/Categories/NSXMLNode+Extensions.h
@@ -1,6 +1,6 @@
//
// NSXMLNode+Extensions.h
// xib2storyboard
// xib2Storyboard
//
// Created by David De Bels on 10/12/2017.
// (c) 2017 November Five BVBA
Expand Down
2 changes: 1 addition & 1 deletion xib2Storyboard/Categories/NSXMLNode+Extensions.m
@@ -1,6 +1,6 @@
//
// NSXMLNode+Extensions.m
// xib2storyboard
// xib2Storyboard
//
// Created by David De Bels on 10/12/2017.
// (c) 2017 November Five BVBA
Expand Down
2 changes: 1 addition & 1 deletion xib2Storyboard/General/AppDelegate.h
@@ -1,6 +1,6 @@
//
// AppDelegate.h
// xib2storyboard
// xib2Storyboard
//
// Created by Dries Van Schevensteen on 15/01/2018.
// (c) 2018 November Five BVBA
Expand Down
2 changes: 1 addition & 1 deletion xib2Storyboard/General/AppDelegate.m
@@ -1,6 +1,6 @@
//
// AppDelegate.m
// xib2storyboard
// xib2Storyboard
//
// Created by Dries Van Schevensteen on 15/01/2018.
// (c) 2018 November Five BVBA
Expand Down
5 changes: 4 additions & 1 deletion xib2Storyboard/General/NSXMLLayoutDocument.h
Expand Up @@ -3,7 +3,10 @@
// xib2Storyboard
//
// Created by Dries Van Schevensteen on 25/03/2018.
// Copyright © 2018 November Five. All rights reserved.
// (c) 2018 November Five BVBA
//
// For the full copyright and license information, please view the LICENSE
// file that was distributed with this source code.
//

typedef NS_ENUM(NSInteger, Platform) {
Expand Down
82 changes: 76 additions & 6 deletions xib2Storyboard/General/NSXMLLayoutDocument.m
Expand Up @@ -3,7 +3,10 @@
// xib2Storyboard
//
// Created by Dries Van Schevensteen on 25/03/2018.
// Copyright © 2018 November Five. All rights reserved.
// (c) 2018 November Five BVBA
//
// For the full copyright and license information, please view the LICENSE
// file that was distributed with this source code.
//

#import "NSXMLLayoutDocument.h"
Expand Down Expand Up @@ -290,6 +293,46 @@ + (NSString *)randomCharacter {
return [NSString stringWithCharacters:character length:1];
}

+ (NSXMLElement *)randomizeIDsAndLinks:(NSXMLElement *)element {

NSArray<NSString *> *IDs = [self getIDsFromElement:element];

NSString *elementString = [element XMLString];

NSArray<NSString *> *keysToReplace = @[@"id", @"destination", @"firstItem", @"secondItem"];

for (NSString *ID in IDs) {
NSString *newID = [self generateUniqueObjectID];

for (NSString *keyToReplace in keysToReplace) {
NSString *oldKeyString = [NSString stringWithFormat:@"%@=\"%@\"", keyToReplace, ID];
NSString *newKeyString = [NSString stringWithFormat:@"%@=\"%@\"", keyToReplace, newID];

elementString = [elementString stringByReplacingOccurrencesOfString:oldKeyString withString:newKeyString];
}
}

return [[NSXMLElement alloc] initWithXMLString:elementString error:nil];
}

+ (NSArray<NSString *> *)getIDsFromElement:(NSXMLElement *)parentElement {

NSMutableArray *IDs = [NSMutableArray new];

NSXMLNode *elementID = [parentElement attributeForName:@"id"];
if (elementID) {
[IDs addObject:[elementID stringValue]];
}

for (id element in parentElement.children) {
if ([element isKindOfClass:[NSXMLElement class]]) {
[IDs addObjectsFromArray:[self getIDsFromElement:element]];
}
}

return [IDs copy];
}



#pragma mark Manipulate Views
Expand Down Expand Up @@ -322,8 +365,30 @@ + (void)addXib:(NSXMLLayoutDocument *)xib atCanvasPosition:(CGPoint)canvasPositi
NSXMLElement *sbResourcesElement = [[storyboardDocumentNode elementsForName:@"resources"] firstObject];
NSXMLElement *xibResourcesElement = [[xibDocumentElement elementsForName:@"resources"] firstObject];

for (NSXMLNode *node in xibResourcesElement.children) {
[sbResourcesElement addChild:[node copy]];


for (NSXMLNode *xibNode in xibResourcesElement.children) {

NSString *xibNodeName = [[[xibNode xmlElementOrNil] attributeForName:@"name"] stringValue];

// Only add new resource if not yet in list
BOOL canAddNode = YES;
if (xibNodeName) {

for (NSXMLNode *sbNode in sbResourcesElement.children) {

NSString *sbNodeName = [[[sbNode xmlElementOrNil] attributeForName:@"name"] stringValue];
if ([xibNodeName isEqualToString:sbNodeName]) {

canAddNode = NO;
}
}
}

if (canAddNode) {

[sbResourcesElement addChild:[xibNode copy]];
}
}

// Check for a file owner
Expand Down Expand Up @@ -358,10 +423,8 @@ + (void)addXib:(NSXMLLayoutDocument *)xib atCanvasPosition:(CGPoint)canvasPositi
if (xibFileOwnerElement) {

// Create scene
NSXMLElement *sbScenesElement = [[storyboardDocumentNode elementsForName:@"scenes"] firstObject];
NSString *sceneID = [self generateUniqueObjectID];
NSXMLElement *sceneElement = [NSXMLElement elementWithName:@"scene" children:nil attributes:@[ [NSXMLNode attributeWithName:@"sceneID" stringValue:sceneID] ]];
[sbScenesElement addChild:sceneElement];

NSXMLElement *objectsElement = [NSXMLElement elementWithName:@"objects"];
[sceneElement addChild:objectsElement];
Expand Down Expand Up @@ -433,9 +496,16 @@ + (void)addXib:(NSXMLLayoutDocument *)xib atCanvasPosition:(CGPoint)canvasPositi

[viewcontrollerElement addChild:connectionsElement];

for (NSXMLElement* otherElement in xibOtherElements) {
for (NSXMLElement *otherElement in xibOtherElements) {
[objectsElement addChild:[otherElement copy]];
}

// Randomize ID's
sceneElement = [self randomizeIDsAndLinks:sceneElement];

// Add new scene to storyboard
NSXMLElement *sbScenesElement = [[storyboardDocumentNode elementsForName:@"scenes"] firstObject];
[sbScenesElement addChild:sceneElement];
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion xib2Storyboard/General/ViewController.h
@@ -1,6 +1,6 @@
//
// ViewController.h
// xib2storyboard
// xib2Storyboard
//
// Created by Dries Van Schevensteen on 15/01/2018.
// (c) 2018 November Five BVBA
Expand Down
2 changes: 1 addition & 1 deletion xib2Storyboard/General/ViewController.m
@@ -1,6 +1,6 @@
//
// ViewController.m
// xib2storyboard
// xib2Storyboard
//
// Created by Dries Van Schevensteen on 15/01/2018.
// (c) 2018 November Five BVBA
Expand Down

0 comments on commit e20f5c1

Please sign in to comment.