Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testflight #41

Closed
wants to merge 14 commits into from
22 changes: 18 additions & 4 deletions ios/XmtpMobileChat.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
331A34C09CDF74F0FC0CF2E9 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A92300ADBC27B47A39B6CF1 /* ExpoModulesProvider.swift */; };
42683F2D9EA5DDC49A85CEC0 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78611DF31EED3FF745D00249 /* ExpoModulesProvider.swift */; };
638ED9512B7D419B009F369B /* Assests.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 638ED9502B7D419B009F369B /* Assests.xcassets */; };
7699B88040F8A987B510C191 /* libPods-XmtpMobileChat-XmtpMobileChatTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-XmtpMobileChat-XmtpMobileChatTests.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -43,6 +44,8 @@
5709B34CF0A7D63546082F79 /* Pods-XmtpMobileChat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XmtpMobileChat.release.xcconfig"; path = "Target Support Files/Pods-XmtpMobileChat/Pods-XmtpMobileChat.release.xcconfig"; sourceTree = "<group>"; };
5B7EB9410499542E8C5724F5 /* Pods-XmtpMobileChat-XmtpMobileChatTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XmtpMobileChat-XmtpMobileChatTests.debug.xcconfig"; path = "Target Support Files/Pods-XmtpMobileChat-XmtpMobileChatTests/Pods-XmtpMobileChat-XmtpMobileChatTests.debug.xcconfig"; sourceTree = "<group>"; };
5DCACB8F33CDC322A6C60F78 /* libPods-XmtpMobileChat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-XmtpMobileChat.a"; sourceTree = BUILT_PRODUCTS_DIR; };
638ED9502B7D419B009F369B /* Assests.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assests.xcassets; path = XmtpMobileChat/Assests.xcassets; sourceTree = "<group>"; };
638ED9522B7D4755009F369B /* XmtpMobileChat.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = XmtpMobileChat.entitlements; path = XmtpMobileChat/XmtpMobileChat.entitlements; sourceTree = "<group>"; };
78611DF31EED3FF745D00249 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-XmtpMobileChat/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = XmtpMobileChat/LaunchScreen.storyboard; sourceTree = "<group>"; };
89C6BE57DB24E9ADA2F236DE /* Pods-XmtpMobileChat-XmtpMobileChatTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-XmtpMobileChat-XmtpMobileChatTests.release.xcconfig"; path = "Target Support Files/Pods-XmtpMobileChat-XmtpMobileChatTests/Pods-XmtpMobileChat-XmtpMobileChatTests.release.xcconfig"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -90,12 +93,14 @@
13B07FAE1A68108700A75B9A /* XmtpMobileChat */ = {
isa = PBXGroup;
children = (
638ED9522B7D4755009F369B /* XmtpMobileChat.entitlements */,
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.mm */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
13B07FB71A68108700A75B9A /* main.m */,
638ED9502B7D419B009F369B /* Assests.xcassets */,
);
name = XmtpMobileChat;
sourceTree = "<group>";
Expand Down Expand Up @@ -275,6 +280,7 @@
files = (
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
638ED9512B7D419B009F369B /* Assests.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -504,6 +510,7 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/XmtpMobileChat.app/XmtpMobileChat";
};
name = Debug;
Expand All @@ -529,6 +536,7 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/XmtpMobileChat.app/XmtpMobileChat";
};
name = Release;
Expand All @@ -539,9 +547,12 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
CODE_SIGN_ENTITLEMENTS = XmtpMobileChat/XmtpMobileChat.entitlements;
CURRENT_PROJECT_VERSION = 14;
DEVELOPMENT_TEAM = 2WDZQW8444;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = XmtpMobileChat/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "XMTP Inbox";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -554,7 +565,7 @@
"-lc++",
);
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_BUNDLE_IDENTIFIER = io.xmtp.XMTPiOSExampleApp;
PRODUCT_NAME = XmtpMobileChat;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
Expand All @@ -568,8 +579,11 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 1;
CODE_SIGN_ENTITLEMENTS = XmtpMobileChat/XmtpMobileChat.entitlements;
CURRENT_PROJECT_VERSION = 14;
DEVELOPMENT_TEAM = 2WDZQW8444;
INFOPLIST_FILE = XmtpMobileChat/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "XMTP Inbox";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
Expand All @@ -582,7 +596,7 @@
"-lc++",
);
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_BUNDLE_IDENTIFIER = io.xmtp.XMTPiOSExampleApp;
PRODUCT_NAME = XmtpMobileChat;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"images" : [
{
"filename" : "App Icon.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
6 changes: 6 additions & 0 deletions ios/XmtpMobileChat/Assests.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
6 changes: 6 additions & 0 deletions ios/XmtpMobileChat/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,12 @@
<key>NSAllowsLocalNetworking</key>
<true/>
</dict>
<key>NSCameraUsageDescription</key>
<string>This application uses the camer to enable QR code scanning.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This application uses the photo library to enable saving QR codes captured via the camera.</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
Expand All @@ -56,5 +60,7 @@
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
</dict>
</plist>
8 changes: 8 additions & 0 deletions ios/XmtpMobileChat/XmtpMobileChat.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?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>aps-environment</key>
<string>development</string>
</dict>
</plist>
13 changes: 13 additions & 0 deletions ios/ci_scripts/ci_post_clone.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# !/bin/sh

# include helpers
source retry.sh

echo "###===== Installing Cocoapods"
retry 5 brew install node

echo "###===== Installing Homebrew"
retry 5 brew install cocoapods

echo "###===== Installing Yarn"
npm install --global yarn
24 changes: 24 additions & 0 deletions ios/ci_scripts/ci_pre_xcodebuild.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh

echo "####===== Stage: PRE-Xcode Build is activated .... "

cat > ../../.env <<EOF
XMTP_ENV=${XMTP_ENV}
THRID_WEB_CLIENT_ID=${THRID_WEB_CLIENT_ID}
AWS_S3_REGION=${AWS_S3_REGION}
AWS_S3_BUCKET=${AWS_S3_BUCKET}
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
EOF

# Debug output for ENV variables
# Note: Values are encrypted in CI host.
# Output will result as: XMTP_ENV=****
#
# echo "####===== Temporary ENV Debug"
# cat ../../.env

echo "####===== Run Yarn Install"
yarn install

exit 0
35 changes: 35 additions & 0 deletions ios/ci_scripts/retry.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Retry a command up to a specific number of times until it exits successfully,
# with exponential backoff.
#
# $ retry 5 echo Hello
# Hello
#
# $ retry 5 false
# Retry 1/5 exited 1, retrying in 1 seconds...
# Retry 2/5 exited 1, retrying in 2 seconds...
# Retry 3/5 exited 1, retrying in 4 seconds...
# Retry 4/5 exited 1, retrying in 8 seconds...
# Retry 5/5 exited 1, no more retries left.
#
function retry {
local retries=$1
shift

local count=0
until "$@"; do
exit=$?
# Enable this following line if the backoff feature is needed.
# Default behavior is to wait 5 seconds
# wait=$((2 ** $count))
wait=$((5))
count=$(($count + 1))
if [ $count -lt $retries ]; then
echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
sleep $wait
else
echo "Retry $count/$retries exited $exit, no more retries left."
return $exit
fi
done
return 0
}
Loading