Skip to content

Commit

Permalink
fix(ios-build): fix CircleCI buld
Browse files Browse the repository at this point in the history
  • Loading branch information
aeddi committed Oct 4, 2018
1 parent d3f0a08 commit 404fa7f
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 33 deletions.
40 changes: 20 additions & 20 deletions .circleci/config.yml
Expand Up @@ -249,13 +249,13 @@ jobs:
- attach_workspace:
at: ~/go/src/berty.tech/

- restore_cache:
key: ios-golang-{{ .Environment.GOVERSION }}-2
# - restore_cache:
# key: ios-golang-{{ .Environment.GOVERSION }}-2

- run:
name: install-go
command: |
~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
# ~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
if [ ! -f ~/go-install/go/bin/go ]; then
cd ~ && git clone https://github.com/udhos/update-golang
cd ~/update-golang && mkdir ~/go-install && sudo DESTINATION=~/go-install ./update-golang.sh
Expand All @@ -265,56 +265,56 @@ jobs:
- run:
name: install gomobile
command: |
~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
# ~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
if [ ! -f ~/go/bin/gomobile ]; then
go get golang.org/x/mobile/cmd/gomobile
cd ~/go/src/golang.org/x/mobile
git remote add upstream git@github.com:sfroment/mobile
git fetch upstream
git cherry-pick 1b1535a2ec50640fac08cd318cf1d557e198e94d
git cherry-pick af3c051e0603af005260579c432830164f68933b
go install golang.org/x/mobile/cmd/gomobile
gomobile init
fi
- save_cache:
key: ios-golang-{{ .Environment.GOVERSION }}-2
paths:
- ~/go
- ~/go-install
# - save_cache:
# key: ios-golang-{{ .Environment.GOVERSION }}-2
# paths:
# - ~/go
# - ~/go-install

- run:
name: install core
working_directory: ~/go/src/berty.tech/client/react-native/gomobile
command: |
~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
# ~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
make ios
- restore_cache:
key: ios-gems-{{ checksum "~/go/src/berty.tech/client/react-native/Gemfile.lock" }}-3
# - restore_cache:
# key: ios-gems-{{ checksum "~/go/src/berty.tech/client/react-native/Gemfile.lock" }}-3

- run:
working_directory: ~/go/src/berty.tech/client/react-native
command: |
~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
# ~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
bundle check || bundle install --path vendor/bundle
- save_cache:
key: ios-gems-{{ checksum "~/go/src/berty.tech/client/react-native/Gemfile.lock" }}-3
paths:
- client/react-native/vendor/bundle
# - save_cache:
# key: ios-gems-{{ checksum "~/go/src/berty.tech/client/react-native/Gemfile.lock" }}-3
# paths:
# - client/react-native/vendor/bundle

- run:
name: set version
working_directory: ~/go/src/berty.tech/client/react-native
command: |
~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
# ~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
make version
- run:
name: build app
working_directory: ~/go/src/berty.tech/client/react-native
command: |
~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
# ~/go/src/berty.tech/.circleci/paths_changed ^client ^.circle || exit 0
make fastlane.setup_circle \
fastlane.ios.build
Expand Down
6 changes: 4 additions & 2 deletions client/react-native/gomobile/Makefile
Expand Up @@ -9,7 +9,7 @@ CGO_CPPFLAGS ?= -I$(PWD)/../../common/openssl/built/include
LIBS_PATH := $(PWD)/../../common/openssl/built

IOS_BUILD_PATH := $(PWD)/../mobile/ios
IOS_LDFLAGS := -L $(LIBS_PATH)/ios
IOS_LDFLAGS := -L$(LIBS_PATH)/ios

ANDROID_NDK_HOME := /usr/local/share/android-ndk/
ANDROID_ARCHS := aarch64 arm x86_64 x86
Expand All @@ -30,7 +30,7 @@ deps:
cd $(GOPATH)/src/golang.org/x/mobile \
&& (git remote add upstream git@github.com:sfroment/mobile || true) \
&& git fetch upstream \
&& (git cherry-pick 1b1535a2ec50640fac08cd318cf1d557e198e94d || true)
&& (git cherry-pick af3c051e0603af005260579c432830164f68933b || true)
go install golang.org/x/mobile/cmd/gomobile
go get -v golang.org/x/mobile/cmd/gobind
gomobile init
Expand All @@ -44,6 +44,8 @@ ios: $(IOS_BUILD_PATH)/core.framework/Core

$(IOS_BUILD_PATH)/core.framework/Core: $(CORE_SOURCES)
mkdir -p $(IOS_BUILD_PATH)
ls $(PWD)/../../common/openssl/built/include
ls $(LIBS_PATH)/ios
CGO_CPPFLAGS="$(CGO_CPPFLAGS)" CGO_LDFLAGS="$(IOS_LDFLAGS)" \
gomobile bind -v -target=ios -o $(IOS_BUILD_PATH)/core.framework .

Expand Down
55 changes: 54 additions & 1 deletion client/react-native/mobile/ios/berty.xcodeproj/project.pbxproj
Expand Up @@ -38,6 +38,7 @@
2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; };
2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
3CF43BBF511D49BA85A5596B /* libRNImagePicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1723FA72EE2642CC8B2BB388 /* libRNImagePicker.a */; };
5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; };
6E9F74FE768A42B09E52A27E /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1791E0D1F9B346C8A68607FA /* Octicons.ttf */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
Expand Down Expand Up @@ -327,6 +328,13 @@
remoteGlobalIDString = 58B5119B1A9E6C1200147676;
remoteInfo = RCTText;
};
8D63B06A2166335D00442190 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 85FA2536A2C744CF86F40F35 /* RNImagePicker.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 014A3B5C1C6CF33500B6D375;
remoteInfo = RNImagePicker;
};
ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */;
Expand Down Expand Up @@ -378,6 +386,7 @@
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = berty/main.m; sourceTree = "<group>"; };
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
165DE059991944759015999E /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = "<group>"; };
1723FA72EE2642CC8B2BB388 /* libRNImagePicker.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNImagePicker.a; sourceTree = "<group>"; };
1791E0D1F9B346C8A68607FA /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = "<group>"; };
1B56A66221FD44708D3DF553 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = "<group>"; };
2B5D27E5252244899403D47C /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = "<group>"; };
Expand All @@ -391,6 +400,7 @@
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
85FA2536A2C744CF86F40F35 /* RNImagePicker.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNImagePicker.xcodeproj; path = "../../node_modules/react-native-image-picker/ios/RNImagePicker.xcodeproj"; sourceTree = "<group>"; };
9E9EB990FABF44D99028EA66 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; };
BD9D68487EDB415DB1F2605B /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -440,6 +450,7 @@
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */,
139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */,
8E4104F64A4D4265AEEC570E /* libRNVectorIcons.a in Frameworks */,
3CF43BBF511D49BA85A5596B /* libRNImagePicker.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -636,6 +647,7 @@
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */,
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */,
9E9EB990FABF44D99028EA66 /* RNVectorIcons.xcodeproj */,
85FA2536A2C744CF86F40F35 /* RNImagePicker.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
Expand Down Expand Up @@ -676,6 +688,14 @@
name = Products;
sourceTree = "<group>";
};
8D63B0672166335D00442190 /* Products */ = {
isa = PBXGroup;
children = (
8D63B06B2166335D00442190 /* libRNImagePicker.a */,
);
name = Products;
sourceTree = "<group>";
};
ADBDB9201DFEBF0600ED6528 /* Products */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -723,6 +743,7 @@
isa = PBXGroup;
children = (
F667511A0660437B8CFB10EA /* libRNVectorIcons.a */,
1723FA72EE2642CC8B2BB388 /* libRNImagePicker.a */,
);
name = "Recovered References";
sourceTree = "<group>";
Expand Down Expand Up @@ -825,7 +846,7 @@
};
13B07F861A680F5B00A75B9A = {
DevelopmentTeam = WMBQ84HN4T;
LastSwiftMigration = 0940;
LastSwiftMigration = 940;
ProvisioningStyle = Automatic;
};
2D02E47A1E0B4A5D006451C7 = {
Expand Down Expand Up @@ -899,6 +920,10 @@
ProductGroup = 146834001AC3E56700842450 /* Products */;
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
},
{
ProductGroup = 8D63B0672166335D00442190 /* Products */;
ProjectRef = 85FA2536A2C744CF86F40F35 /* RNImagePicker.xcodeproj */;
},
{
ProductGroup = F81633BD215E66A200425F92 /* Products */;
ProjectRef = F81633BC215E66A200425F92 /* RNImagePicker.xcodeproj */;
Expand Down Expand Up @@ -1175,6 +1200,13 @@
remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
8D63B06B2166335D00442190 /* libRNImagePicker.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRNImagePicker.a;
remoteRef = 8D63B06A2166335D00442190 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
Expand Down Expand Up @@ -1359,13 +1391,15 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = bertyTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand All @@ -1385,13 +1419,15 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = bertyTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down Expand Up @@ -1421,6 +1457,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = berty/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
Expand Down Expand Up @@ -1459,6 +1496,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = berty/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
Expand Down Expand Up @@ -1493,12 +1531,14 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = "berty-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down Expand Up @@ -1527,12 +1567,14 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = "berty-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down Expand Up @@ -1560,12 +1602,14 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = "berty-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down Expand Up @@ -1593,12 +1637,14 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = "berty-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down Expand Up @@ -1667,6 +1713,7 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = berty/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
Expand Down Expand Up @@ -1695,13 +1742,15 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = bertyTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand All @@ -1727,12 +1776,14 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = "berty-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down Expand Up @@ -1760,12 +1811,14 @@
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager",
"$(SRCROOT)/../../node_modules/react-native-image-picker/ios",
);
INFOPLIST_FILE = "berty-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
Expand Down

0 comments on commit 404fa7f

Please sign in to comment.