`);
}
const inviteSecretRegex = /^[a-z0-9]+$/i;
// On native, if this responder is called, it means that the app isn't
// installed.
async function inviteResponder(req: $Request, res: $Response): Promise {
const { secret } = req.params;
const userAgent = req.get('User-Agent');
const detectionResult = detectBrowser(userAgent);
if (detectionResult.os === 'Android OS') {
const isSecretValid = inviteSecretRegex.test(secret);
const referrer = isSecretValid
? `&referrer=${encodeURIComponent(`utm_source=invite/${secret}`)}`
: '';
const redirectUrl = `${stores.googlePlayUrl}${referrer}`;
res.writeHead(301, {
Location: redirectUrl,
});
res.end();
return;
} else if (detectionResult.os !== 'iOS') {
const urlFacts = getCommAppURLFacts();
const baseDomain = urlFacts?.baseDomain ?? '';
const basePath = urlFacts?.basePath ?? '/';
const redirectUrl = `${baseDomain}${basePath}handle/invite/${secret}`;
res.writeHead(301, {
Location: redirectUrl,
});
res.end();
return;
}
const fontsURL = await getFontsURL();
res.end(html`
Comm
Comm
To join this community, download the Comm app and reopen this invite
link
Download Comm
-
+
Invite Link
Visit Comm’s website
`);
}
export { websiteResponder, inviteResponder };
diff --git a/native/ios/Comm/Info.debug.plist b/native/ios/Comm/Info.debug.plist
index ecf65e121..0467652f2 100644
--- a/native/ios/Comm/Info.debug.plist
+++ b/native/ios/Comm/Info.debug.plist
@@ -1,116 +1,120 @@
ITSAppUsesNonExemptEncryptionCFBundleDevelopmentRegionenCFBundleDisplayNameCommCFBundleExecutable$(EXECUTABLE_NAME)CFBundleIdentifier$(PRODUCT_BUNDLE_IDENTIFIER)CFBundleInfoDictionaryVersion6.0CFBundleName$(PRODUCT_NAME)CFBundlePackageTypeAPPLCFBundleShortVersionString1.0.238CFBundleSignature????CFBundleVersion238CFBundleURLTypes
+ CFBundleTypeRole
+ Editor
+ CFBundleURLName
+ commCFBundleURLSchemescommLSApplicationQueriesSchemesrainboworg-appextension-feature-password-managementhttpsLSRequiresIPhoneOSNSAppTransportSecurityNSAllowsArbitraryLoadsNSExceptionDomainslocalhostNSExceptionAllowsInsecureHTTPLoadsNSLocationAlwaysUsageDescriptionAllow $(PRODUCT_NAME) to use your locationNSLocationWhenInUseUsageDescriptionAllow $(PRODUCT_NAME) to access your locationNSPhotoLibraryUsageDescriptionAllow $(PRODUCT_NAME) to access your photo library so you can send images.NSPhotoLibraryAddUsageDescriptionAllow $(PRODUCT_NAME) to save images to your photo library.NSCameraUsageDescriptionAllow $(PRODUCT_NAME) to access the camera so you can capture and send photos.NSMicrophoneUsageDescriptionAllow $(PRODUCT_NAME) to access the microphone so you can capture videos with audioUIAppFontsOpenSans-Semibold.ttfOpenSans-Regular.ttfAnaheim-Regular.ttfAntDesign.ttfEntypo.ttfEvilIcons.ttfFeather.ttfFontAwesome.ttfFontAwesome5_Brands.ttfFontAwesome5_Regular.ttfFontAwesome5_Solid.ttfFontisto.ttfFoundation.ttfIonicons.ttfMaterialCommunityIcons.ttfMaterialIcons.ttfOcticons.ttfSimpleLineIcons.ttfZocial.ttfIBMPlexSans-Regular.ttfIBMPlexSans-Medium.ttfIBMPlexSans-Bold.ttfSWMansionIcons.ttfCommIcons.ttfUIBackgroundModesfetchremote-notificationUILaunchStoryboardNameSplashScreenUIRequiredDeviceCapabilitiesarmv7UIStatusBarStyleUIStatusBarStyleLightContentUISupportedInterfaceOrientationsUIInterfaceOrientationPortraitUIViewControllerBasedStatusBarAppearance
diff --git a/native/ios/Comm/Info.release.plist b/native/ios/Comm/Info.release.plist
index 7654d8e98..7db90d318 100644
--- a/native/ios/Comm/Info.release.plist
+++ b/native/ios/Comm/Info.release.plist
@@ -1,94 +1,107 @@
ITSAppUsesNonExemptEncryptionCFBundleDevelopmentRegionenCFBundleDisplayNameCommCFBundleExecutable$(EXECUTABLE_NAME)CFBundleIdentifier$(PRODUCT_BUNDLE_IDENTIFIER)CFBundleInfoDictionaryVersion6.0CFBundleName$(PRODUCT_NAME)CFBundlePackageTypeAPPLCFBundleShortVersionString1.0.238CFBundleSignature????CFBundleVersion238
+ CFBundleURLTypes
+
+
+ CFBundleTypeRole
+ Editor
+ CFBundleURLName
+ comm
+ CFBundleURLSchemes
+
+ comm
+
+
+ LSApplicationQueriesSchemesrainboworg-appextension-feature-password-managementhttpsLSRequiresIPhoneOSNSLocationAlwaysUsageDescriptionAllow $(PRODUCT_NAME) to use your locationNSLocationWhenInUseUsageDescriptionAllow $(PRODUCT_NAME) to access your locationNSPhotoLibraryUsageDescriptionAllow $(PRODUCT_NAME) to access your photo library so you can send images.NSPhotoLibraryAddUsageDescriptionAllow $(PRODUCT_NAME) to save images to your photo library.NSMicrophoneUsageDescriptionAllow $(PRODUCT_NAME) to access the microphone so you can capture videos with audioNSCameraUsageDescriptionAllow $(PRODUCT_NAME) to access the camera so you can capture and send photos.UIAppFontsOpenSans-Semibold.ttfOpenSans-Regular.ttfAnaheim-Regular.ttfAntDesign.ttfEntypo.ttfEvilIcons.ttfFeather.ttfFontAwesome.ttfFontAwesome5_Brands.ttfFontAwesome5_Regular.ttfFontAwesome5_Solid.ttfFontisto.ttfFoundation.ttfIonicons.ttfMaterialCommunityIcons.ttfMaterialIcons.ttfOcticons.ttfSimpleLineIcons.ttfZocial.ttfIBMPlexSans-Regular.ttfIBMPlexSans-Medium.ttfIBMPlexSans-Bold.ttfSWMansionIcons.ttfCommIcons.ttfUIBackgroundModesfetchremote-notificationUILaunchStoryboardNameSplashScreenUIRequiredDeviceCapabilitiesarmv7UIStatusBarStyleUIStatusBarStyleLightContentUISupportedInterfaceOrientationsUIInterfaceOrientationPortraitUIViewControllerBasedStatusBarAppearance