RNIap.getProducts()在最新版本的React Native中似乎已损坏,仅返回未知错误。
4.6.1
0.63.0
的iOS
要提取的产品。
返回未知错误
iOS模拟器
只需调用RNIap.getProducts()或RNIap.getSubscriptions()。
谢谢@joeyscarim。 我现在已经联系了Apple,并等待他们的反馈。
@rossbulat iOS 14上的相同问题...
react-native-iap - v4.6.1
Xcode - v12
YellowBox.js:71 Possible Unhandled Promise Rejection (id: 0):
Error: UNKNOWN_ERROR
Error: UNKNOWN_ERROR
at Object.fn [as getItems] (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:2165:36)
at http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:179261:33
at step (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178999:21)
at Object.next (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178929:16)
at http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178901:69
at tryCallTwo (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3277:7)
at doResolve (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3441:15)
at new Promise (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3300:5)
at __awaiter (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178880:12)
at ios (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:179258:16)
嗨,大家好,
我们也在经历这种情况。 升级到v4.6.1之后,几乎每次我们也会遇到“未知错误”。
大家好,
我想我找到了解决我们问题的方法。 您必须确保initConnection
正在运行。
在我的示例中,我只是将requestPurchase/requestSubscription
放入initConnection
。 在没有它的情况下工作之前,现在它是必须具备的。
@Hellhiem我有initConnection,仍然收到错误。
运行以下函数可通过initConnection()验证错误是否仍然存在
const getProducts = async () => {
try {
await RNIap.initConnection();
const products: RNIap.Product[] = await RNIap.getProducts(IAP_SKUS);
} catch (err) {
console.log(err);
}
}
@rossbulat尝试此操作时会发生什么:
const getProducts = async () => {
return RNIap.initConnection().then(() => {
try {
const products: RNIap.Product[] = RNIap.getProducts(IAP_SKUS);
return products;
} catch (err) {
console.log(err);
}
});
};
我做了同样的事情,但是在then
里面放了requestPurchase/requestSubscription
@Hellhiem仍然会出现未知错误! (这与我的代码相同,但是使用then而不是async / await语法)。
我看了一下本机模块API, getItems()
函数似乎是失败的地方。 核心开发人员之一可以验证此本地API调用是否在iOS 14上按预期工作吗?
@Hellhiem我已经尝试过您的代码,仍然会遇到相同的未知错误。
Apple工程部门正在通过“反馈助手”调查此案。 当我们确定问题出在什么地方时,我将更新此线程。
我在运行iOS 14.0的iOS模拟器上遇到此问题
同样的问题。 带有xcode 12的iOS 14模拟器无法获取产品并引发未知错误
同样的问题。
苹果评论期间真实设备的相同问题
我有相同的问题,但具有getSubscriptions函数
我做了一些测试,对我来说, [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers]
只是返回空...
同一期
IOS端的getSubscriptions存在相同的问题,引发了UNKNOWN_ERROR,Xcode 12.0,react-native 0.62.2
@rossbulat有运气吗? 我也遇到了同样的问题
@rossbulat有运气吗? 我也遇到了同样的问题
您正在使用设备还是模拟器?
该问题仅在iOS 14 Simulator上。 真实的设备可以工作。
苹果在过去一周内保持安静,没有更新与我共享。
对于模拟器,您应该将StoreKit配置文件添加到项目中,然后在运行方案中选择它。 但我在设备上遇到此错误
该问题仅在iOS 14 Simulator上。 真实的设备可以工作。
苹果在过去一周内保持安静,没有更新与我共享。
现在我可能无法在购买的应用中进行测试,因为我找不到在iOS模拟器上添加沙盒测试器的选项
该问题仅在iOS 14 Simulator上。 真实的设备可以工作。
苹果在过去一周内保持安静,没有更新与我共享。
现在我可能无法在购买的应用中进行测试,因为我找不到在iOS模拟器上添加沙盒测试器的选项
由storekit配置文件管理
@ilyasbat我按照以下说明进行操作,清理生成文件夹并重新生成,但不幸的是仍然出现错误。
我通过strorekit配置解决了。
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711
添加storekit配置文件,重新构建,现在可以在带有xcode 12的IOS 14模拟器上运行。它运行完美,我实际上可以第一次在模拟器上购买物品。
@ilyasbat此修复程序安全吗? 如果之后我在Appstore中更改产品报价,例如更改价格,会发生什么?它们还会在应用程序中更新吗?还是会被storeConfiguration.storekit
配置卡住?
@ilyasbat此修复程序安全吗? 如果之后我在Appstore中更改产品报价,例如更改价格,会发生什么?它们还会在应用程序中更新吗?还是会被
storeConfiguration.storekit
配置卡住?
找到了这篇非常好的文章:
https://www.appcoda.com/storekit-testing/
从我正在阅读的内容来看,似乎StoreKit配置文件仅用于调试/测试:
下一个字段是应用内购买的价格。 即使App Store Connect中有价格等级,我们仍可以在此处提供任何想要的免费文本值。 价格仅是出于测试原因,不适用于真正的应用内购买,当然也不会收费。 因此,您可以随意设置任何价格。 对于我们在此处配置的特定应用内购买,0.99值就可以了。 价格的货币将是与Simulator的语言环境或任何手动选择的语言环境匹配的货币(我们将在后面讨论)。 因此,0.99可以是美元,欧元,日元等。
我不确定这是否已知(上面没有提到):我发现从终端运行npx react-native run-ios
时,我一直得到Error: UNKNOWN_ERROR
我从xcode运行应用程序,应用程序内购买(带storekit)工作正常。
"react-native": "0.61.4",
"react-native-iap": "^4.6.3",
xcode v12
macOS 10.15.7
因此,目前无法在具有iOS 14的设备上的生产中使用react-native-iap。 由于修复[Error: UNKNOWN_ERROR]
的唯一方法是添加Configuration.StoreKit
文件,但仅用于测试目的,而不用于生产版本?
有人有其他解决方案吗?
我目前使用此库在生产,Android和iOS(因此,iOS 14)中进行应用内购买。 我能够让用户在TestFlight中成功测试(注意:他们不能使用指纹登录,必须始终提供Apple ID和密码-这是Apple的政策,而不是该库的缺陷),并且一切都在生产中进行。
您是否尝试过在TestFlight @RobinChailley中测试您的应用程序?
我再次在IOS 14.1上使用沙箱帐户使用了2个真实设备,并执行以下操作。
请按照以下步骤创建StoreKit配置,在“运行”方案中选择它,然后构建到您的设备。 不知道是否需要执行此步骤,但要获取一些产品。 您可以在此时进行购买,但是由于购买的transactionId为“ 0”,所以购买侦听器将出错。
接下来,从运行方案中取消选择StoreKit配置,然后再次构建到您的设备。 这次,当您获取产品时,将提示您登录。 由于某些原因,我现在可以使用我的沙箱帐户登录。 不知道为什么,但是也许它清除或重置了某些内容。
@karltaylor是的,我在TestFlight中测试时出现了我的应用内购买。 我的代码如下所示:
try {
IAP.initConnection()
.then((success) => {
if (!success) return Promise.reject("Failed to connect");
// get products that can be purchased in iap store
// Note: this is necessary for requestPurchase to work!
const productIds = [PRODUCT_ID];
return IAP.getProducts(productIds);
})
.then((prods) => {
// get already-purchased items
return getAvailablePurchases();
})
.then((purchases) => {
// continue...
})
}
注意:我的PRODUCT_ID
与_appstoreconnect-> App Store-> Manage_中“产品ID”列中的文本匹配
_appstoreconnect_中的应用内购买的“状态”是什么?
@karltaylor是的,我在TestFlight中测试时出现了我的应用内购买。 我的代码如下所示:
try { IAP.initConnection() .then((success) => { if (!success) return Promise.reject("Failed to connect"); // get products that can be purchased in iap store // Note: this is necessary for requestPurchase to work! const productIds = [PRODUCT_ID]; return IAP.getProducts(productIds); }) .then((prods) => { // get already-purchased items return getAvailablePurchases(); }) .then((purchases) => { // continue... }) }
注意:我的
PRODUCT_ID
与_appstoreconnect-> App Store-> Manage_中“产品ID”列中的文本匹配_appstoreconnect_中的应用内购买的“状态”是什么?
抱歉@Beamanator我删除了我的评论以避免引起更多混乱,因为这是另一个区域的问题。
添加Configuration.storekit
文件后,我让它们在模拟器和Testflight中工作! 👍
@rossbulat您能找到此问题的解决方案吗? 我在Android和ios上都遇到问题。
我不确定这是否已知(上面没有提到):我发现从终端运行
npx react-native run-ios
时,我一直得到Error: UNKNOWN_ERROR
我从xcode运行应用程序,应用程序内购买(带storekit)工作正常。
"react-native": "0.61.4",
"react-native-iap": "^4.6.3",
xcode v12
macOS 10.15.7
对我来说很好"react-native": "0.63.2",
"react-native-iap": "^5.1.3",
xcode v12
macOS 11.0.1
它在调试模式下是这样工作的,但在testflight中却没有。 它会有不同的配置吗?
我在iOS上仍然收到相同的“未知错误”。
"react-native": "^0.63.4",
"react-native-iap": "^5.2.0",
Xcode 12.2
是否有解决不使用StoreKit配置的问题的想法?
我在iOS上仍然收到相同的“未知错误”。
"react-native": "^0.63.4", "react-native-iap": "^5.2.0",
Xcode 12.2
是否有解决不使用StoreKit配置的问题的想法?
您使用了哪个版本的模拟器?
与iOS 14.2相同的问题,并与iOS 13.5正常工作
在模拟器iOS 14.2上运行时与我相同,并且可以在模拟器iOS 13.x上正常工作。
我在Apple验证小组中遇到了同样的问题,我认为他们正在模拟器上运行我的应用...
我们发现,当您在运行Wi-Fi的iOS 14.0.1的iPad上进行审核时,您的应用内购买产品存在一个或多个错误。
- 启动了应用程序
- 点击“设置”,左上方
- 点击删除广告
- 该应用开始无限期加载
这里有人已经尝试在生产中发布非消耗性应用内购买?
在模拟器iOS 14.2上运行时与我相同,并且可以在模拟器iOS 13.x上正常工作。
我在Apple验证小组中遇到了同样的问题,我认为他们正在模拟器上运行我的应用...
我们发现,当您在运行Wi-Fi的iOS 14.0.1的iPad上进行审核时,您的应用内购买产品存在一个或多个错误。
- 启动了应用程序
- 点击“设置”,左上方
- 点击删除广告
- 该应用开始无限期加载
这里有人已经尝试在生产中发布非消耗性应用内购买?
您在批准价格方面也有延迟,并且Apple无法批准您的应用程序,因为您无法购买?
我已经用沙盒用户在真实设备上进行了所有测试。 所有产品都可以购买该产品,但是Apple由于模拟器(iOS 14)上的“未知产品”错误而拒绝了我的建造。
自10月以来,我正在尝试将此非消耗性应用内购买的应用版本发布到App Store。
我已经用沙盒用户在真实设备上进行了所有测试。 所有产品都可以购买该产品,但是Apple由于模拟器(iOS 14)上的“未知产品”错误而拒绝了我的建造。
自10月以来,我正在尝试将此非消耗性应用内购买的应用版本发布到App Store。
看看我们的问题。
https://github.com/dooboolab/react-native-iap/issues/1200
我也遇到了同样的问题,并在三周后发布了我的应用程序。
我已经用沙盒用户在真实设备上进行了所有测试。 所有产品都可以购买该产品,但是Apple由于模拟器(iOS 14)上的“未知产品”错误而拒绝了我的建造。
自10月以来,我正在尝试将此非消耗性应用内购买的应用版本发布到App Store。看看我们的问题。
1200
我也遇到了同样的问题,并在三周后发布了我的应用程序。
我的构建被Apple接受,非常感谢您的帮助!!!
在IOS 14模拟器上也有此问题。 无需使用真实设备即可测试付款情况。
无法与此环境中工作
在这种环境下工作
在模拟器iOS 14上这可以正常工作
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711
最有用的评论
我通过strorekit配置解决了。
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711