-
Notifications
You must be signed in to change notification settings - Fork 9
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
CioTracking has a minimum deployment target of iOS 13.4 / Expo 50 #122
Comments
Thank you for reaching us and highlighting this issue. Unfortunately, we haven't tested the plugin with Expo 50 as of yet. Can you please confirm whether you're using the bare or managed workflow? If it's the bare workflow, have you tried raising the minimum deployment target for pod giving the error to Do let us know if this works for you. If you need further assistance, please don't hesitate to reach out. |
Hey @mrehan27, we are using the managed workflow. I've tried setting the ios deployment target to 13.4 with the expo-build-properties plugin but I'm still seeing the above error. It seems that in some of the CIO packages the deployment target is hardcoded at 13.0 |
Thank you for the confirmation @joeyhotz. I've tried to reproduce the issue using a new app with Expo 50 but have not been successful. The plugin seems to work fine in a newly created app with Expo 50. Can you provide more details on what might have been done differently in your app? Or if you could share a simple sample app that reproduces this issue, it would help a lot. This way, we can reproduce the problem on our end to investigate further, and help you better. Appreciate your cooperation! |
looks like this needs to be updated to 13.4 |
Thanks for the suggestion, @MaxAst. We have continued internally to reproduce issues with the Customer.io Expo plugin and Expo 50. Unfortunately, we continue to not encounter compilation errors. If someone is able to provide more information or reproduce the error in a sample app, we would be able to move forward to providing a fix for everyone. |
Following from the last issue, I'm running into |
@darnfish, that error message is probably related to a Notification Service Extension target added to your Xcode project for the iOS app. Could you try |
Running
|
Hi @joeyhotz I'm filling in for Levi. I apologize for the difficulties you're experiencing with upgrading to Expo SDK 50. Please note that we do not currently support Expo SDK 50, but it is on our roadmap in the future. In the meantime, we recommend using Expo SDK version 49 or earlier. |
No worries. We absolutely need support for Expo 50 for compatibility with other libraries we use, so we will look at migrating off customer.io as a next step |
@giaset and the team here, I hope my reply didn't feel dismissive. We've been researching as a team and so far confirmed that there are two issues with Expo SDK 50 upgrade and they are:
(Both the issues have been reported in the threads above.) For the issue #1 i.e.
#2 issue: Okay, then what happened? Expo SDK 50 makes use of React native version In our case , it fetches two files namely How did we confirm this? We copied the file So what now? This issue seems to be coming from react native > 0.73.0 version. An issue has been reproduced and raised with the RN repo and we're following it while continuing to explore ways around this. Thank you and to this group for your patience and help with the investigation. We know it's a painful one and will be working to find an option while trying to avoid brute force hacks until we've exhausted all options. Let's keep the ideas and conversations going-- we're all ears here, too! |
Thank you so much for your help here :~) for the plist issue, do you know if you could provide a git patch that we could temporarily use with |
This includes fix for deployment target and plist Copy to diff --git a/node_modules/customerio-expo-plugin/lib/commonjs/helpers/constants/ios.js b/node_modules/customerio-expo-plugin/lib/commonjs/helpers/constants/ios.js
index 5426e1f..95c5420 100644
--- a/node_modules/customerio-expo-plugin/lib/commonjs/helpers/constants/ios.js
+++ b/node_modules/customerio-expo-plugin/lib/commonjs/helpers/constants/ios.js
@@ -18,7 +18,7 @@ exports.LOCAL_PATH_TO_CIO_NSE_FILES = LOCAL_PATH_TO_CIO_NSE_FILES;
function getRelativePathToRNSDK(currentFile) {
return path.relative(path.dirname(currentFile), LOCAL_PATH_TO_RN_SDK);
}
-const IOS_DEPLOYMENT_TARGET = '13.0';
+const IOS_DEPLOYMENT_TARGET = '13.4';
exports.IOS_DEPLOYMENT_TARGET = IOS_DEPLOYMENT_TARGET;
const GROUP_IDENTIFIER_TEMPLATE_REGEX = /{{GROUP_IDENTIFIER}}/gm;
exports.GROUP_IDENTIFIER_TEMPLATE_REGEX = GROUP_IDENTIFIER_TEMPLATE_REGEX;
diff --git a/node_modules/customerio-expo-plugin/lib/commonjs/ios/withNotificationsXcodeProject.js b/node_modules/customerio-expo-plugin/lib/commonjs/ios/withNotificationsXcodeProject.js
index 1c20031..2cb320b 100644
--- a/node_modules/customerio-expo-plugin/lib/commonjs/ios/withNotificationsXcodeProject.js
+++ b/node_modules/customerio-expo-plugin/lib/commonjs/ios/withNotificationsXcodeProject.js
@@ -108,13 +108,15 @@ const addRichPushXcodeProj = async (options, xcodeProject) => {
const targetFile = getTargetFile(filename);
_fileManagement.FileManagement.copyFile(`${_ios.LOCAL_PATH_TO_CIO_NSE_FILES}/${filename}`, targetFile);
});
-
+ const infoPlistTargetFileFix = `${iosPath}/${PLIST_FILENAME}`;
+ _fileManagement.FileManagement.copyFile(`${_ios.LOCAL_PATH_TO_CIO_NSE_FILES}/${PLIST_FILENAME}`, infoPlistTargetFileFix);
/* MODIFY COPIED EXTENSION FILES */
const infoPlistTargetFile = getTargetFile(PLIST_FILENAME);
updateNseInfoPlist({
bundleVersion,
bundleShortVersion,
- infoPlistTargetFile
+ infoPlistTargetFile,
+ infoPlistTargetFileFix
});
updateNseEnv(options, getTargetFile(ENV_FILENAME));
@@ -157,7 +159,7 @@ const addRichPushXcodeProj = async (options, xcodeProject) => {
if (typeof configurations[key].buildSettings !== 'undefined' && configurations[key].buildSettings.PRODUCT_NAME === `"${_ios.CIO_NOTIFICATION_TARGET_NAME}"`) {
const buildSettingsObj = configurations[key].buildSettings;
buildSettingsObj.DEVELOPMENT_TEAM = appleTeamId;
- buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = iosDeploymentTarget || '13.0';
+ buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = iosDeploymentTarget || '13.4';
buildSettingsObj.TARGETED_DEVICE_FAMILY = TARGETED_DEVICE_FAMILY;
buildSettingsObj.CODE_SIGN_STYLE = 'Automatic';
buildSettingsObj.SWIFT_VERSION = 4.2;
@@ -172,13 +174,17 @@ const updateNseInfoPlist = payload => {
const BUNDLE_SHORT_VERSION_RE = /\{\{BUNDLE_SHORT_VERSION\}\}/;
const BUNDLE_VERSION_RE = /\{\{BUNDLE_VERSION\}\}/;
let plistFileString = _fileManagement.FileManagement.readFile(payload.infoPlistTargetFile);
+ let plistFileFixString = _fileManagement.FileManagement.readFile(payload.infoPlistTargetFileFix);
if (payload.bundleVersion) {
plistFileString = (0, _codeInjection.replaceCodeByRegex)(plistFileString, BUNDLE_VERSION_RE, payload.bundleVersion);
+ plistFileFixString = (0, _codeInjection.replaceCodeByRegex)(plistFileFixString, BUNDLE_VERSION_RE, payload.bundleVersion);
}
if (payload.bundleShortVersion) {
plistFileString = (0, _codeInjection.replaceCodeByRegex)(plistFileString, BUNDLE_SHORT_VERSION_RE, payload.bundleShortVersion);
+ plistFileFixString = (0, _codeInjection.replaceCodeByRegex)(plistFileFixString, BUNDLE_SHORT_VERSION_RE, payload.bundleShortVersion);
}
_fileManagement.FileManagement.writeFile(payload.infoPlistTargetFile, plistFileString);
+ _fileManagement.FileManagement.writeFile(payload.infoPlistTargetFileFix, plistFileString);
};
const updateNseEnv = (options, envFileName) => {
var _options$pushNotifica2, _options$pushNotifica4, _options$pushNotifica6;
diff --git a/node_modules/customerio-expo-plugin/lib/module/helpers/constants/ios.js b/node_modules/customerio-expo-plugin/lib/module/helpers/constants/ios.js
index 37e7393..4976cca 100644
--- a/node_modules/customerio-expo-plugin/lib/module/helpers/constants/ios.js
+++ b/node_modules/customerio-expo-plugin/lib/module/helpers/constants/ios.js
@@ -9,7 +9,7 @@ export const LOCAL_PATH_TO_CIO_NSE_FILES = path.join(pluginPackageRoot, 'src/hel
export function getRelativePathToRNSDK(currentFile) {
return path.relative(path.dirname(currentFile), LOCAL_PATH_TO_RN_SDK);
}
-export const IOS_DEPLOYMENT_TARGET = '13.0';
+export const IOS_DEPLOYMENT_TARGET = '13.4';
export const GROUP_IDENTIFIER_TEMPLATE_REGEX = /{{GROUP_IDENTIFIER}}/gm;
export const BUNDLE_SHORT_VERSION_TEMPLATE_REGEX = /{{BUNDLE_SHORT_VERSION}}/gm;
export const BUNDLE_VERSION_TEMPLATE_REGEX = /{{BUNDLE_VERSION}}/gm;
diff --git a/node_modules/customerio-expo-plugin/lib/module/ios/withNotificationsXcodeProject.js b/node_modules/customerio-expo-plugin/lib/module/ios/withNotificationsXcodeProject.js
index 11452de..9e70398 100644
--- a/node_modules/customerio-expo-plugin/lib/module/ios/withNotificationsXcodeProject.js
+++ b/node_modules/customerio-expo-plugin/lib/module/ios/withNotificationsXcodeProject.js
@@ -150,7 +150,7 @@ const addRichPushXcodeProj = async (options, xcodeProject) => {
if (typeof configurations[key].buildSettings !== 'undefined' && configurations[key].buildSettings.PRODUCT_NAME === `"${CIO_NOTIFICATION_TARGET_NAME}"`) {
const buildSettingsObj = configurations[key].buildSettings;
buildSettingsObj.DEVELOPMENT_TEAM = appleTeamId;
- buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = iosDeploymentTarget || '13.0';
+ buildSettingsObj.IPHONEOS_DEPLOYMENT_TARGET = iosDeploymentTarget || '13.4';
buildSettingsObj.TARGETED_DEVICE_FAMILY = TARGETED_DEVICE_FAMILY;
buildSettingsObj.CODE_SIGN_STYLE = 'Automatic';
buildSettingsObj.SWIFT_VERSION = 4.2;
|
Thank you, appreciate the detailed write-up. We ended up writing a similar patch on our end rather than wait for a new release -- that's unblocked us for the time being! |
Thanks all! The patch worked for us :) We also found a customerio-expo-plugin prop that lets you set the ios deployment target without having to patch the module for iOS 13.4.
|
I'm happy to share that React Native has released version Rest assured, we're closely monitoring the Expo releases and actively checking for plugin compatibility with Expo SDK 50. We'll keep you updated every step of the way. Thank you for your continued patience and understanding. |
This got merged: expo/expo#26774 (comment) |
I guess we're just waiting for Expo to publish a new version which includes the merged changes? Update: I just realized that Expo@latest installs RN 0.73.4, but I'm still getting the error:
Update 2: Using the latest Expo 50 version with |
I am here to update you that Expo has released version |
This comment was marked as off-topic.
This comment was marked as off-topic.
🎊 Great news! The long-awaited Thanks to everyone for your patience and support while we worked on making this happen. To get started, follow our Expo docs here. Now that our plugin is compatible with Expo SDK 50, I will go ahead and close this ticket. In case you encounter any issues, feel free to connect with us on |
The Expo 50 upgrade raises the minimum deployment target for iOS to 13.4. When building for iOS on Expo 50, I get this error:
There appears to be some sort of version mismatch with CIO dependencies. Does anyone have any more insight for a potential fix?
The text was updated successfully, but these errors were encountered: