Compare commits

...

9 Commits

Author SHA1 Message Date
Elias Nahum
b4f474a74e Include build folders in make clean 2017-07-19 20:20:27 -04:00
Elias Nahum
50ce8b6974 Update fastlane 2017-07-19 18:40:07 -04:00
Elias Nahum
910b67d47a Version bump to 41 2017-07-19 18:39:51 -04:00
Elias Nahum
85b7f3703f Make release 1.0.1 to use com.mattermost.rnbeta 2017-07-19 17:13:35 -04:00
enahum
da3a0a22b2 Fix SSO login (#754)
* Fix SSO login

* Update style

* Fix stripTrailingSlashes
2017-07-19 15:33:41 -04:00
enahum
408d184dea RN-261 Fix app crashing when badge is unmounted before it displays (#743) 2017-07-18 13:26:10 -04:00
enahum
03488f6010 fix for huawei not rendering posts (#751) 2017-07-17 16:02:40 -04:00
Elias Nahum
b0ff189147 Set build number 2017-07-17 16:00:14 -04:00
Elias Nahum
0bd69fcd6b Prepare for dot release 1.0.1 2017-07-17 12:45:58 -04:00
24 changed files with 401 additions and 188 deletions

View File

@@ -90,6 +90,8 @@ clean:
rm -rf node_modules
rm -f .yarninstall
rm -rf dist
rm -rf ios/build
rm -rf android/app/build
post-install:
./node_modules/.bin/remotedev-debugger --hostname localhost --port 5678 --injectserver

View File

@@ -46,13 +46,13 @@ android_library(
android_build_config(
name = 'build_config',
package = 'com.mattermost',
package = 'com.mattermost.rnbeta',
)
android_resource(
name = 'res',
res = 'src/main/res',
package = 'com.mattermost',
package = 'com.mattermost.rnbeta',
)
android_binary(

View File

@@ -88,11 +88,11 @@ android {
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "com.mattermost.react.native"
applicationId "com.mattermost.rnbeta"
minSdkVersion 16
targetSdkVersion 23
versionCode 39
versionName "1.0"
versionCode 41
versionName "1.0.1"
multiDexEnabled true
ndk {
abiFilters "armeabi-v7a", "x86"

View File

@@ -36,6 +36,68 @@
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:184930218130:android:c7debfa7ea3f75a7",
"android_client_info": {
"package_name": "com.mattermost.rnbeta"
}
},
"oauth_client": [
{
"client_id": "184930218130-8nahrspll1opff0uogtkh2qsv8coqngo.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCkZkU2ECVg-mmdCG5OoHHQXtKiENuvWPE"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:184930218130:android:2db4058a5b5d6506",
"android_client_info": {
"package_name": "com.mattermost.rn"
}
},
"oauth_client": [
{
"client_id": "184930218130-8nahrspll1opff0uogtkh2qsv8coqngo.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCkZkU2ECVg-mmdCG5OoHHQXtKiENuvWPE"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"

View File

@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mattermost"
package="com.mattermost.rnbeta"
android:versionCode="1"
android:versionName="1.0">

View File

@@ -1,4 +1,4 @@
package com.mattermost;
package com.mattermost.rnbeta;
import android.app.PendingIntent;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.mattermost;
package com.mattermost.rnbeta;
import com.github.yamill.orientation.OrientationPackage;
import com.psykar.cookiemanager.CookieManagerPackage;

View File

@@ -1,4 +1,4 @@
package com.mattermost;
package com.mattermost.rnbeta;
import android.app.Application;
import android.util.Log;

View File

@@ -1,4 +1,4 @@
package com.mattermost;
package com.mattermost.rnbeta;
import android.app.Activity;
import android.util.Log;

View File

@@ -1,5 +1,6 @@
<?xml version="1.0"?>
<resources>
<string name="app_name">Mattermost</string>
<string name="app_name">Mattermost Beta</string>
</resources>

View File

@@ -6,7 +6,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.+'
classpath 'com.google.gms:google-services:3.0.0'
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files

View File

@@ -33,6 +33,7 @@ export default class Badge extends PureComponent {
super(props);
this.width = 0;
this.mounted = false;
}
componentWillMount() {
@@ -45,12 +46,26 @@ export default class Badge extends PureComponent {
});
}
componentDidMount() {
this.mounted = true;
}
componentWillUnmount() {
this.mounted = false;
}
handlePress = () => {
if (this.props.onPress) {
this.props.onPress();
}
};
setNativeProps = (props) => {
if (this.mounted && this.refs.badgeContainer) {
this.refs.badgeContainer.setNativeProps(props);
}
};
onLayout = (e) => {
let width;
@@ -66,7 +81,7 @@ export default class Badge extends PureComponent {
this.width = width;
const height = Math.max(e.nativeEvent.layout.height, this.props.minHeight);
const borderRadius = height / 2;
this.refs.badgeContainer.setNativeProps({
this.setNativeProps({
style: {
width,
height,
@@ -74,7 +89,7 @@ export default class Badge extends PureComponent {
}
});
setTimeout(() => {
this.refs.badgeContainer.setNativeProps({
this.setNativeProps({
style: {
display: 'flex'
}

View File

@@ -3,7 +3,7 @@
import React, {PureComponent} from 'react';
import PropTypes from 'prop-types';
import {FlatList, RefreshControl, ScrollView, StyleSheet, View} from 'react-native';
import {FlatList, Platform, RefreshControl, ScrollView, StyleSheet, View} from 'react-native';
import VirtualList from './virtual_list';
@@ -129,11 +129,21 @@ const styles = StyleSheet.create({
container: {
flex: 1
},
vertical: {
transform: [{scaleY: -1}]
},
horizontal: {
transform: [{scaleX: -1}]
}
vertical: Platform.select({
android: {
scaleY: -1
},
ios: {
transform: [{scaleY: -1}]
}
}),
horizontal: Platform.select({
android: {
scaleX: -1
},
ios: {
transform: [{scaleX: -1}]
}
})
});

View File

@@ -118,14 +118,15 @@ class SelectServer extends PureComponent {
onClick = async () => {
const preUrl = urlParse(this.props.serverUrl, true);
const url = preUrl.protocol + '//' + preUrl.host;
const url = stripTrailingSlashes(preUrl.protocol + '//' + preUrl.host);
let error = null;
Keyboard.dismiss();
if (isValidUrl(url)) {
Client4.setUrl(stripTrailingSlashes(url));
Client.setUrl(stripTrailingSlashes(url));
Client4.setUrl(url);
Client.setUrl(url);
this.props.actions.handleServerUrlChanged(url);
await this.props.actions.getPing();
} else {
error = {

View File

@@ -6,6 +6,8 @@ import PropTypes from 'prop-types';
import {injectIntl, intlShape} from 'react-intl';
import {
InteractionManager,
Text,
StyleSheet,
View,
WebView
} from 'react-native';
@@ -17,6 +19,9 @@ import {ViewTypes} from 'app/constants';
import Loading from 'app/components/loading';
import StatusBar from 'app/components/status_bar';
import PushNotifications from 'app/push_notifications';
import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
const jsCode = 'window.postMessage(document.body.innerText)';
class SSO extends PureComponent {
static propTypes = {
@@ -35,6 +40,11 @@ class SSO extends PureComponent {
constructor(props) {
super(props);
this.state = {
error: null,
renderWebView: false
};
switch (props.ssoType) {
case ViewTypes.GITLAB:
this.loginUrl = `${props.serverUrl}/oauth/gitlab/mobile_login`;
@@ -49,7 +59,7 @@ class SSO extends PureComponent {
componentDidMount() {
InteractionManager.runAfterInteractions(() => {
this.setState({renderWebview: true});
this.setState({renderWebView: true});
});
}
@@ -85,6 +95,25 @@ class SSO extends PureComponent {
});
};
onMessage = (event) => {
try {
const response = JSON.parse(event.nativeEvent.data);
if (response) {
const {
id,
message,
request_id: rId,
status_code: statusCode
} = response;
if (rId && id && message && statusCode !== 200) {
this.setState({error: message});
}
}
} catch (e) {
// do nothing
}
};
onNavigationStateChange = (navState) => {
const {url} = navState;
@@ -93,7 +122,7 @@ class SSO extends PureComponent {
const token = res.MMAUTHTOKEN;
if (token) {
this.setState({renderWebview: false});
this.setState({renderWebView: false});
const {
getSession,
handleSuccessfulLogin,
@@ -111,18 +140,23 @@ class SSO extends PureComponent {
};
render() {
if (!this.state || !this.state.renderWebview) {
return (
<View style={{flex: 1}}>
<StatusBar/>
<Loading/>
const {theme} = this.props;
const {error, renderWebView} = this.state;
const style = getStyleSheet(theme);
let content;
if (!renderWebView) {
content = (
<Loading/>
);
} else if (error) {
content = (
<View style={style.errorContainer}>
<Text style={style.errorText}>{error}</Text>
</View>
);
}
return (
<View style={{flex: 1}}>
<StatusBar/>
} else {
content = (
<WebView
source={{uri: this.loginUrl}}
javaScriptEnabledAndroid={true}
@@ -132,10 +166,36 @@ class SSO extends PureComponent {
onNavigationStateChange={this.onNavigationStateChange}
onShouldStartLoadWithRequest={() => true}
renderLoading={() => (<Loading/>)}
onMessage={this.onMessage}
injectedJavaScript={jsCode}
/>
);
}
return (
<View style={{flex: 1}}>
<StatusBar/>
{content}
</View>
);
}
}
const getStyleSheet = makeStyleSheetFromTheme((theme) => {
return StyleSheet.create({
errorContainer: {
alignItems: 'center',
flex: 1,
marginTop: 40
},
errorText: {
color: changeOpacity(theme.centerChannelColor, 0.4),
fontSize: 16,
fontWeight: '400',
lineHeight: 23,
paddingHorizontal: 30
}
});
});
export default injectIntl(SSO);

View File

@@ -7,7 +7,7 @@ export function isValidUrl(url = '') {
}
export function stripTrailingSlashes(url = '') {
return url.replace(/\/+$/, '').trim();
return url.trim().replace(/\/+$/, '');
}
export function removeProtocol(url = '') {

View File

@@ -3,7 +3,7 @@ skip_docs
platform :ios do
before_all do |lane|
if lane == :beta or lane == :release
if lane == :beta
ensure_git_branch(
branch: 'master'
)
@@ -12,7 +12,7 @@ platform :ios do
end
after_all do |lane|
if lane == :beta or lane == :release
if lane == :beta
reset_git_repo(
force: true,
skip_clean: true
@@ -26,7 +26,7 @@ platform :ios do
desc 'Build Release file'
desc 'This will also make sure the profile is up to date'
lane :dev do
match(type: 'adhoc')
match(type: 'adhoc', app_identifier: 'com.mattermost.rnbeta')
build_ios({
release: false,
@@ -39,7 +39,7 @@ platform :ios do
desc 'Submit a new Beta Build to Apple TestFlight'
desc 'This will also make sure the profile is up to date'
lane :beta do
match(type: 'appstore')
match(type: 'appstore', app_identifier: 'com.mattermost.rnbeta')
build_ios({
release: true,
@@ -83,40 +83,52 @@ platform :ios do
desc 'Deploy a new version to the App Store'
lane :release do
match(type: 'appstore')
ensure_git_branch(
branch: 'master'
)
match(type: 'appstore', app_identifier: 'com.mattermost.rn')
# snapshot
update_app_identifier(
xcodeproj: './ios/Mattermost.xcodeproj',
plist_path: 'Mattermost/Info.plist',
app_identifier: 'com.mattermost.rn'
)
update_info_plist(
xcodeproj: './ios/Mattermost.xcodeproj',
plist_path: 'Mattermost/Info.plist',
display_name: 'Mattermost'
)
sh 'cp -R ../assets/release/icons/ios/* ../ios/Mattermost/Images.xcassets/AppIcon.appiconset/'
build_ios({
release: true,
increment_build: true,
ensure_git_status_clean: true,
increment_build: false,
ensure_git_status_clean: false,
method: 'app-store'
})
deliver(force: true)
# deliver(
# force: true,
# skip_screenshots: true,
# skip_metadata: true,
# submit_for_review: false, #lets try this after the first release
# automatic_release: false #lets try this after the first release
# )
commit = last_git_commit
push_to_git_remote(
remote: 'origin',
local_branch: 'ios-release',
force: false,
tags: false
)
unless ENV['GITHUB_TOKEN'].nil?
create_pull_request(
api_token: ENV['GITHUB_TOKEN'],
repo: 'mattermost/mattermost-mobile',
head: 'mattermost:ios-release',
base: 'master',
title: "IOS #{commit[:message]}"
)
end
### We are going to publish the app to the testflight first and not deliver it directly to the app store
pilot(skip_waiting_for_build_processing: true)
# frameit
reset_git_repo(
force: true,
skip_clean: true
)
if ENV['MATTERMOST_WEBHOOK_URL']
appstore_url = ENV['APPSTORE_URL']
send_message_for_ios(
@@ -198,7 +210,7 @@ end
platform :android do
before_all do |lane|
if lane == :alpha or lane == :release
if lane == :alpha
ensure_git_branch(
branch: 'master'
)
@@ -207,7 +219,7 @@ platform :android do
end
after_all do |lane|
if lane == :alpha or lane == :release
if lane == :alpha
reset_git_repo(
force: true,
skip_clean: true
@@ -268,36 +280,84 @@ platform :android do
desc 'Deploy a new version to Google Play'
lane :release do
ensure_git_branch(
branch: 'master'
)
android_change_package_identifier(newIdentifier: 'com.mattermost.rn', manifest: './android/app/src/main/AndroidManifest.xml')
android_change_string_app_name(newName: 'Mattermost', stringsFile: './android/app/src/main/res/values/strings.xml')
android_update_application_id(app_folder_name: 'android/app', application_id: 'com.mattermost.rn')
sh 'mv ../android/app/src/main/java/com/mattermost/rnbeta/ ../android/app/src/main/java/com/mattermost/rn/'
sh 'cp -R ../assets/release/icons/android/* ../android/app/src/main/res/'
find_replace_string(
path_to_file: './android/app/src/main/java/com/mattermost/rn/MainApplication.java',
old_string: 'return BuildConfig.DEBUG;',
new_string: 'return false;'
)
find_replace_string(
path_to_file: './android/app/src/main/java/com/mattermost/rn/MainApplication.java',
old_string: 'package com.mattermost.rnbeta;',
new_string: 'package com.mattermost.rn;'
)
find_replace_string(
path_to_file: './android/app/src/main/java/com/mattermost/rn/CustomPushNotification.java',
old_string: 'package com.mattermost.rnbeta;',
new_string: 'package com.mattermost.rn;'
)
find_replace_string(
path_to_file: './android/app/src/main/java/com/mattermost/rn/MainActivity.java',
old_string: 'package com.mattermost.rnbeta;',
new_string: 'package com.mattermost.rn;'
)
find_replace_string(
path_to_file: './android/app/src/main/java/com/mattermost/rn/NotificationsLifecycleFacade.java',
old_string: 'package com.mattermost.rnbeta;',
new_string: 'package com.mattermost.rn;'
)
find_replace_string(
path_to_file: './android/app/BUCK',
old_string: 'package com.mattermost.rnbeta;',
new_string: 'package com.mattermost.rn;'
)
find_replace_string(
path_to_file: './fastlane/metadata/android/en-US/title.txt',
old_string: 'Mattermost Beta',
new_string: 'Mattermost;'
)
build_android({
release: true,
increment_build: true,
ensure_git_status_clean: true
increment_build: false,
ensure_git_status_clean: false
})
# supply(
# track: "production",
# apk: "#{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}",
# )
# We are going to upload the build to the beta lane and not directly to production so it can be promoted later
supply(
track: "production",
track: 'beta',
apk: "#{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}",
)
commit = last_git_commit
push_to_git_remote(
remote: 'origin',
local_branch: 'android-release',
force: false,
tags: false
sh 'mv ../android/app/src/main/java/com/mattermost/rn/ ../android/app/src/main/java/com/mattermost/rnbeta/'
reset_git_repo(
force: true,
skip_clean: true
)
unless ENV['GITHUB_TOKEN'].nil?
create_pull_request(
api_token: ENV['GITHUB_TOKEN'],
repo: 'mattermost/mattermost-mobile',
head: 'mattermost:android-release',
base: 'master',
title: "Android #{commit[:message]}"
)
end
if ENV['MATTERMOST_WEBHOOK_URL']
google_play_url = ENV['GOOGLE_PLAY_URL']
send_message_for_android(

View File

@@ -24,7 +24,7 @@ GEM
faraday_middleware (0.11.0.1)
faraday (>= 0.7.4, < 1.0)
fastimage (2.1.0)
fastlane (2.44.1)
fastlane (2.47.0)
CFPropertyList (>= 2.3, < 3.0.0)
addressable (>= 2.3, < 3.0.0)
babosa (>= 1.0.2, < 2.0.0)
@@ -64,8 +64,8 @@ GEM
mime-types (~> 3.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
googleauth (0.5.1)
faraday (~> 0.9)
googleauth (0.5.2)
faraday (~> 0.12)
jwt (~> 1.4)
logging (~> 2.0)
memoist (~> 0.12)
@@ -118,7 +118,7 @@ GEM
unf_ext (0.0.7.4)
unicode-display_width (1.3.0)
word_wrap (1.0.0)
xcodeproj (1.5.0)
xcodeproj (1.5.1)
CFPropertyList (~> 2.3.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)

View File

@@ -1 +1 @@
Mattermost 2017 - Beta
Mattermost Beta

View File

@@ -1320,7 +1320,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 39;
CURRENT_PROJECT_VERSION = 41;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
HEADER_SEARCH_PATHS = (
@@ -1338,7 +1338,7 @@
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.react.native;
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta;
PRODUCT_NAME = Mattermost;
PROVISIONING_PROFILE = "";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1353,7 +1353,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 39;
CURRENT_PROJECT_VERSION = 41;
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
HEADER_SEARCH_PATHS = (
@@ -1371,7 +1371,7 @@
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.react.native;
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.rnbeta;
PRODUCT_NAME = Mattermost;
PROVISIONING_PROFILE = "";
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -1,94 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>39</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<key>NSCameraUsageDescription</key>
<string>Take a Photo or Video and upload it to your mattermost instance</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string/>
<key>NSPhotoLibraryUsageDescription</key>
<string>Upload Photos and Videos to your Mattermost instance</string>
<key>UIAppFonts</key>
<array>
<string>Entypo.ttf</string>
<string>EvilIcons.ttf</string>
<string>FontAwesome.ttf</string>
<string>Foundation.ttf</string>
<string>Ionicons.ttf</string>
<string>MaterialIcons.ttf</string>
<string>Octicons.ttf</string>
<string>Zocial.ttf</string>
<string>Entypo.ttf</string>
<string>EvilIcons.ttf</string>
<string>FontAwesome.ttf</string>
<string>Foundation.ttf</string>
<string>Ionicons.ttf</string>
<string>MaterialCommunityIcons.ttf</string>
<string>MaterialIcons.ttf</string>
<string>Octicons.ttf</string>
<string>SimpleLineIcons.ttf</string>
<string>Zocial.ttf</string>
<string>OpenSans-Bold.ttf</string>
<string>OpenSans-BoldItalic.ttf</string>
<string>OpenSans-ExtraBold.ttf</string>
<string>OpenSans-ExtraBoldItalic.ttf</string>
<string>OpenSans-Italic.ttf</string>
<string>OpenSans-Light.ttf</string>
<string>OpenSans-LightItalic.ttf</string>
<string>OpenSans-Regular.ttf</string>
<string>OpenSans-Semibold.ttf</string>
<string>OpenSans-SemiboldItalic.ttf</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Mattermost Beta</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>41</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<key>NSCameraUsageDescription</key>
<string>Take a Photo or Video and upload it to your mattermost instance</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Upload Photos and Videos to your Mattermost instance</string>
<key>UIAppFonts</key>
<array>
<string>Entypo.ttf</string>
<string>EvilIcons.ttf</string>
<string>FontAwesome.ttf</string>
<string>Foundation.ttf</string>
<string>Ionicons.ttf</string>
<string>MaterialIcons.ttf</string>
<string>Octicons.ttf</string>
<string>Zocial.ttf</string>
<string>Entypo.ttf</string>
<string>EvilIcons.ttf</string>
<string>FontAwesome.ttf</string>
<string>Foundation.ttf</string>
<string>Ionicons.ttf</string>
<string>MaterialCommunityIcons.ttf</string>
<string>MaterialIcons.ttf</string>
<string>Octicons.ttf</string>
<string>SimpleLineIcons.ttf</string>
<string>Zocial.ttf</string>
<string>OpenSans-Bold.ttf</string>
<string>OpenSans-BoldItalic.ttf</string>
<string>OpenSans-ExtraBold.ttf</string>
<string>OpenSans-ExtraBoldItalic.ttf</string>
<string>OpenSans-Italic.ttf</string>
<string>OpenSans-Light.ttf</string>
<string>OpenSans-LightItalic.ttf</string>
<string>OpenSans-Regular.ttf</string>
<string>OpenSans-Semibold.ttf</string>
<string>OpenSans-SemiboldItalic.ttf</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

View File

@@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<string>1.0.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>39</string>
<string>41</string>
</dict>
</plist>

View File

@@ -12,7 +12,7 @@
"commonmark-react-renderer": "hmhealey/commonmark-react-renderer#11bf3a089900eda6f3e951f8b8c80663cff4d6a3",
"deep-equal": "1.0.1",
"intl": "1.2.5",
"mattermost-redux": "mattermost/mattermost-redux#master",
"mattermost-redux": "mattermost/mattermost-redux#rn-release-1.0.1",
"prop-types": "15.5.10",
"react": "16.0.0-alpha.6",
"react-intl": "2.3.0",

View File

@@ -3643,9 +3643,9 @@ makeerror@1.0.x:
dependencies:
tmpl "1.0.x"
mattermost-redux@mattermost/mattermost-redux#master:
mattermost-redux@mattermost/mattermost-redux#rn-release-1.0.1:
version "0.0.1"
resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/26b897a943a2095bdc793f28c10415441859ad6f"
resolved "https://codeload.github.com/mattermost/mattermost-redux/tar.gz/af1095f4b6bbeec4004daa2fe879472de90d85e0"
dependencies:
deep-equal "1.0.1"
harmony-reflect "1.5.1"