問題1:讀取的內購商品列表不是添加時的順序
解決步驟:由于我是使用的 react-native-iap 組件開發的,所以使用的是 JavaScript 數組排序,代碼如下:
const products = await RNIap.getProducts(itemSkus);
const orderedProducts = products.sort((left, right) => left.price - right.price);
這樣就是按價格從低到高排序了。
問題2:無法連接到 iTunes Store
解決步驟: 進入 WiFi,找到「配置 DNS」,設置為「手動」,在最頂部添加「114.114.114.114」或「8.8.8.8」,記得點右上角「存儲」。注意:該錯誤可能與「問題4」互斥
問題3:App 內購時,提示說:此時沒有權限在Sandbox購買此InApp
解決步驟:
- 打開 https://appstoreconnect.apple.com/access/testers
- 添加 Sandbox 測試賬號,注冊時一定要填寫
真實郵箱
,點擊邀請,然后登錄剛剛的郵箱,驗證地址 - 就可以免費測試自己 APP 的內購項了。
問題4:App 內購時,如果報「E_UNKNOWN」、「underlying error」、「https://sandbox.itunes.apple.com」、「無法連接到 iTunes Store」
{
"framesToPop": 1,
"code": "E_UNKNOWN",
"nativeStackIOS": [
"0 myapp 0x0000000104c547d4 RCTJSErrorFromCodeMessageAndNSError + 92",
"1 myapp 0x0000000104c2fb74 __41-[RCTModuleMethod processMethodSignature]_block_invoke_2.194 + 108",
"2 myapp 0x000000010453c674 -[RNIapIos rejectPromisesForKey:code:message:error:] + 320",
"3 myapp 0x000000010453dde4 __37-[RNIapIos request:didFailWithError:]_block_invoke + 136",
"4 libdispatch.dylib 0x0000000106fcd220 _dispatch_client_callout + 16",
"5 libdispatch.dylib 0x0000000106fdaa40 _dispatch_queue_barrier_sync_invoke_and_complete + 120",
"6 myapp 0x000000010453dd2c -[RNIapIos request:didFailWithError:] + 188",
"7 StoreKit 0x0000000198c43fa8 <redacted> + 232",
"8 libdispatch.dylib 0x0000000106fcd260 _dispatch_call_block_and_release + 24",
"9 libdispatch.dylib 0x0000000106fcd220 _dispatch_client_callout + 16",
"10 libdispatch.dylib 0x0000000106fd1db0 _dispatch_main_queue_callback_4CF + 1180",
"11 CoreFoundation 0x0000000184cef070 <redacted> + 12",
"12 CoreFoundation 0x0000000184cecbc8 <redacted> + 2272",
"13 CoreFoundation 0x0000000184c0cda8 CFRunLoopRunSpecific + 552",
"14 GraphicsServices 0x0000000186bef020 GSEventRunModal + 100",
"15 UIKit 0x000000018ebed78c UIApplicationMain + 236",
"16 myapp 0x0000000104511c40 main + 136",
"17 libdyld.dylib 0x000000018469dfc0 <redacted> + 4"
],
"userInfo": {
"NSErrorFailingURLKey": null,
"_kCFStreamErrorDomainKey": 4,
"NSErrorFailingURLStringKey": "https://sandbox.itunes.apple.com/WebObjects/MZStore.woa/wa/fetchSoftwareAddOns?appAdamId=0&icuLocale=zh_CN&bvrs=190315&sfId=143465-19,29&bid=com.myapp.bundleName&appExtVrsId=0",
"_kCFStreamErrorCodeKey": -2102,
"NSLocalizedDescription": "無法連接到 iTunes Store",
"NSUnderlyingError": {
"code": "-1001",
"nativeStackIOS": [
"0 myapp 0x0000000104c547d4 RCTJSErrorFromCodeMessageAndNSError + 92",
"1 myapp 0x0000000104c549c0 RCTJSErrorFromCodeMessageAndNSError + 584",
"2 myapp 0x0000000104c2fb74 __41-[RCTModuleMethod processMethodSignature]_block_invoke_2.194 + 108",
"3 myapp 0x000000010453c674 -[RNIapIos rejectPromisesForKey:code:message:error:] + 320",
"4 myapp 0x000000010453dde4 __37-[RNIapIos request:didFailWithError:]_block_invoke + 136",
"5 libdispatch.dylib 0x0000000106fcd220 _dispatch_client_callout + 16",
"6 libdispatch.dylib 0x0000000106fdaa40 _dispatch_queue_barrier_sync_invoke_and_complete + 120",
"7 myapp 0x000000010453dd2c -[RNIapIos request:didFailWithError:] + 188",
"8 StoreKit 0x0000000198c43fa8 <redacted> + 232",
"9 libdispatch.dylib 0x0000000106fcd260 _dispatch_call_block_and_release + 24",
"10 libdispatch.dylib 0x0000000106fcd220 _dispatch_client_callout + 16",
"11 libdispatch.dylib 0x0000000106fd1db0 _dispatch_main_queue_callback_4CF + 1180",
"12 CoreFoundation 0x0000000184cef070 <redacted> + 12",
"13 CoreFoundation 0x0000000184cecbc8 <redacted> + 2272",
"14 CoreFoundation 0x0000000184c0cda8 CFRunLoopRunSpecific + 552",
"15 GraphicsServices 0x0000000186bef020 GSEventRunModal + 100",
"16 UIKit 0x000000018ebed78c UIApplicationMain + 236",
"17 myapp 0x0000000104511c40 main + 136",
"18 libdyld.dylib 0x000000018469dfc0 <redacted> + 4"
],
"userInfo": {
"_kCFStreamErrorDomainKey": 4,
"_kCFStreamErrorCodeKey": -2102
},
"message": "underlying error",
"domain": "kCFErrorDomainCFNetwork"
}
},
"domain": "NSURLErrorDomain",
"line": 16,
"column": 1610,
"sourceURL": "/var/containers/Bundle/Application/76B091DA-009F-4825-8232-0D594EC6D101/myapp.app/main.jsbundle"
}
解決步驟:
解決步驟: 進入 WiFi,找到「配置 DNS」,設置為「自動」,點右上角「存儲」。注意:該錯誤可能與「問題2」互斥