Недавно я обновил свой реактивный проект до версии 0.60. После обновления собственный модуль, с которым я работал, перестал работать на iOS с ошибкой TypeError: Cannot read property 'show' of undefined.
Я модифицировал этот собственный модуль, но единственный код, который я изменил после обновления до RN 0.60, был кодом Android. Мой измененный код модуля находится в https://github.com/BradyShober/react-native-braintree-dropin-ui
Файл, вызывающий модуль,
import BraintreeDropIn from 'react-native-braintree-dropin-ui';
const showBraintreeUI = async (token, amount) => {
BraintreeDropIn.show({
clientToken: token,
countryCode: 'US',
currencyCode: 'USD',
orderTotal: amount,
googlePay: true,
googleMerchantId: 'merchantID',
applePay: true,
merchantName: "Name",
merchantIdentifier: "ID",
vaultManager: true
})
.then(async (result) => {
console.info(result)
}
catch(error){
console.info(error);
}
})
.catch((error) => {
if (error.code === 'USER_CANCELLATION') {
console.info("User cancelled payment");
}
else {
console.info(error);
}
});
}
export { getBraintreeToken, showBraintreeUI };
Ожидаемый результат — открытие пользовательского интерфейса Braintree Drop In, который работает на Android, но на iOS выдает ошибку TypeError: Cannot read property 'show' of undefined.
Я считаю, что это проблема с автосвязыванием, мне удалось заставить его работать, если я щелкну правой кнопкой мыши «Библиотеки» в Xcode, затем «Добавить файлы» и выберу модуль .xcodeproject, а затем добавлю библиотеку в «Связать двоичные файлы с библиотеками». Мне не удалось легко найти, что мне нужно изменить в модуле, чтобы не выполнять эти шаги в качестве обходного пути.





Я смог заставить его работать благодаря некоторой помощи, которую я получил на сервере разногласий Reactiflux. Проблема возникла из-за проблемы в Podspec модуля, из-за которой не обнаруживался ни один из исходных файлов модуля. Для s.source_files было установлено значение s.source_files = "RNBraintreeDropIn/**/*.{h,m}" вместо s.source_files = "*.{h,m}"
@MaximZubarev Я добавил конкретную проблему и исправил
Не могли бы вы предоставить больше информации? Ваш ответ совершенно бесполезен. Что теперь должны делать другие люди, присоединяться к серверам Discord?