Error Domain=SKErrorDomain Code=3 UserInfo=0x2a5a00 "Cannot connect to iTunes Store" - iphone

I am trying to implement in-app purchases in my application.
I have implemented it as per Apple's Programming Guide and the code was working fine until I created a new application, App ID, provisioning profile and in-app products # another developer account. Now, it gives me following error.
Error Domain=SKErrorDomain Code=3 UserInfo=0x2a5a00 "Cannot connect to iTunes Store"
The same code works fine if I use previous developer account's appid, pro-certificate and product ids.
This is a very strange issue, I double checked product id names and other things still facing same error.
Any clue..?

Update: Check out this post and add your complaint so apple will get a move on fixing this issue.
iPhone storekit sandbox stopped working
Close to the same thing here - Using iPad
I had my inApp purchase working. It was fine, did everything it was supposed to. Then I started getting the Error Domain=SKErrorDomain Code=2 UserInfo=(someHexMemoryAddress) "Cannot connect to iTunes Store"
Read on one post to reset all content and settings -- Did that and didn't work.
Tried creating a new Test User in iTunes -- Didn't work.
Made sure my Code Signing Identity in the Project Build Settings was set to the correct Profile that was created with all the inApp stuff. It actually wasn't, and was somehow set to any compatible Profile. I changed it to the correct profile. This didn't work either though.
Still having the same problem.
Between the time it was working and then not working, the only thing I really did was implement Facebook Connect. One interesting thing there is the delegate method -
(void)request:(FBRequest*)request didFailWithError:(NSError*)error;
which also gets called as a delegate method to SKRequestDelegate. I don't think this is causing a conflict because it is only getting called when there is an error.
I am still able to contact the store and get a list of available products. When I send a purchase request I get a response telling me- You've already purchased this In App purchase but it hasn't been downloaded. I click ok and then I get the Error Domain=bla bla bla .
Interestingly, I did get the dialog about previous purchase even when purchasing the item for the first time with the new test user I created.
Another thing I learned is this, IF you made the Test User, and then Signed In in the Settings App, and it asked you for a credit card, it wont work.
You need to -
1. create a new Test User,
2. sign out of all accounts in the Store settings.
3. Then go make make a purchase IN your app and it will ask you to log in with existing user.
4. Log in with the new Test User you created and it will work.

Before you start to test read you should read this technical note: http://developer.apple.com/library/ios/#technotes/tn2009/tn2259.html item: "What's Next?" point 11.
Another possible reason of this behavior of iTunes server is unfinished transaction for this product. You cannot buy product again while previous transaction is not finished.
Best Regards,
Vadim

I had an error similar to this. The issue was
1. not having a provisioning profile setup that could handle in app purchases
2. not having created the app profile in iTunes Connect
3. not having created the in app purchase items in iTunes Connect
After I setup the above 3 things and used the new provisioning profile when signing the app I was golden.

In my first in-app-purchase app O was also getting same error BUT with Code=0.i.e.
Error Domain=SKErrorDomain Code=0 UserInfo=someHEXno "Cannot connect to iTunes Store"
I tried to solve the connecting problem for hours.
But main problem was my productIdentifiers name i.e. I had written:
SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:#"productnameID"]];
but the "productnameID" was wrong. After giving right productnameID program was still showing same error
Error Domain=SKErrorDomain Code=0 UserInfo=0x2a5a00 "Cannot connect to iTunes Store"
Yet it was running properly and show alert box for purchase.

I had the same error as iPhoneBuddy in my app:
Error Domain=SKErrorDomain Code=0 UserInfo=0x2a5a00 "Cannot connect to
iTunes Store"
Thanks to user495729 answer I solved the problem!
http://developer.apple.com/library/ios/#technotes/tn2009/tn2259.html
2- Test your application in the sandbox environment. iOS developers must complete the following steps: Sign out of the Store in the
Settings application on your testing device. Set the run destination
of your application to an iOS Device in Xcode. Build and run your
application from Xcode.
In your device go to "System -> iTunes & App Stores", click on your Apple ID and Sign Out. Now run you application and test your IAPs, login with your Test User.
If you don't have any Test User created go to "iTunes Connect -> Manage Users -> Test User -> Add New User" and you are Ok!

Related

How to start a download upon this StoreKit message?

On a fresh app install, when I try to re-purchase an item to re-download it my app sends a purchase request to Store Kit.
Then I get SKPaymentTransactionStatePurchasing, and Store Kit prompts the user to confirm the purchase.
Then Store Kit responds with this message on iOS 7: "You've already purchased this in-App Purchase but it hasn't been downloaded.".
Then, Store Kit fails with SKPaymentTransactionStateFailed and error is
Previously StoreKit would just let the user re-download the content instead. But now it fails with error code 2 "Cannot connect to iTunes Store". If I do a complete restore then Store Kit allows to download content, but this particular item still fails. Also note the test device has WiFi and stable internet connection and StoreKit was able to resolve that the item is purchased. So this error is bogus.
Is this a new change in iOS 7? How can I let the user re-download a single item without forcing to re-download all?
According to this Technical Note, the problem occurs if there is a purchase transaction that was not finished. I tripple-checked that I call finish transaction and it happens after I get the error. So the transaction does get closed.
You have some unfinished transactions in the payment queue. To finish them check the paymentQueue.transactions array right after adding your observer with addTransactionObserver: method. If it contains some transactions handle them the way you do in your paymentQueue:updatedTransactions: method.
If you don't, paymentQueue:updatedTransactions: is not called for them because they were already in the queue when you have registered the observer.
By the way, make sure you call finishTransaction: for all of your transactions even if they have failed. Otherwise they will stay in the payment queue and cause this issue.
Same problem here.. we launched a new update for our app after iOS 7 release. We have many users now complaining that they are either unable to restore previous purchases. Other users are complaining that their purchase is successful, however the IAP package does not unlock with no error message.. we are a bit baffled here.
I had same problem ! After checking for hours! I just restarted the I pad (iOS7), and now again its working.
I fixed this by signing out the test account from the App Store via Settings app -> App Store -> Sign Out. Then I removed the test account from iTunes Connect, then I rebooted the device.
I was in a similar situation; resolved by restarting my iPhone. Specifically, I had non-consumable purchase hosted on Apple's Server. Installed app to iphone5, made purchase. Deleted App, reinstalled in another build, and upon restore, ITunesStore server didn't respond with my hosted-contact productIdentifier. Purchasing the item again produces "already purchased" error, without an option to download. I found this site, http://support.nimblebit.com/customer/portal/articles/672080-problem-making-in-app-purchase-ios-os-x; restarted my device, and restore now recognizes the previous purchase.

Why In-App purchase sandbox always ask "Verification Required"?

I have signed out from the store in device settings.
I entered user credentials only in my App.
I have set up a brand new (actually around 4 times) test user.
Why this message keep poppin' up?
Is it something connected to iOS 5, automatic app sync, or iCloud?
I had exactly same problem with sandbox in-app purchases, in built-in model (no receipt verification), app received valid products, now i called addPayment, everything alright. But now "Verification required" appeared and payment was canceled.
After hours of pain I discovered, my problem was in test account.. i created test account for Czech Republic iTunes store... and that was the reason of fail. Dumb.
I tried to create Canadian test user and it suddenly worked! "Verification required" will no longer appeared.
I've dealing with this problem for about one week, trying to use accounts in US/Canada without any success. Finally I found this post and it works:
http://iphonedevsdk.com/forum/iphone-sdk-development/63008-in-app-purchase-test-account-verification-required-cant-get-passed.html
You need a test account that NEVER has a credit card attached to it, NEVER is logged into itunes store or app store via device, and if you do login to itunes or agree to any app store stuff it voids the test account and will never work again.
So, To test your In App Purchase app, you need to use a new account that does not have a credit card. logout of the store, and only use your new account inside the app you are testing.
Update: After a long time system maintenance of iTunes in Sept 2013, only test accounts in US can make test purchases.
I have struggled with this myself, i finally found a workaround that worked for me...
On the device Log out of iTunes account in settings (also hard close settings and iTunes if you have them open as a precaution)
Delete app
Create a new test user at “itunesconnect.apple.com” – selecting the United States as your store
Reinstall app
Try to make a purchase in the app
Enter you new test user account details
If a pop up states that it needs to swap stores, immediately press home. DO NOT press OK.
Relaunch the app, and try again. It should now work as expected.
Hope this works...
In addition of the above answers, note the below points also :-
1) Uninstall your app from the device.
2) Create a new test account on iTunes Connect and verify its email address. Never add any payment information for this test account, not online, not on iTunes, not on your device. Doing so might invalidate your test account (and trigger the "verify payment info" vicious cycle.) Also never use this test account out of the Sandbox.
3) Log-out from the App Store on your device. DO NOT log back in the App Store via Settings > iTunes & App Stores on your device. You will be asked your login credentials from your app later (see points 5-6)
4) Re-install your app.
5) Attempt an in-app purchase. You should now be prompted to enter both your username and password (as you logged out from the App Store)
6) Type in your username and password: you should not see the dreadful "Verification Required: before you can make purchases, you must verify your payment info" message and the purchase should be successful.
Even in sandbox, you need to complete the buy verifying the receipt to the server.
It corresponds to steps 6-7-8 of built-in model and 11-12-13 of the server model.
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/APIOverview/OverviewoftheStoreKitAPI.html
All you need to do is:
Retrieve the receipt data from the transaction’s transactionReceipt property and encode it using base64 encoding.create a json like this:
{
"receipt-data" : "(receipt in base 64 encoding)"
}
Make a post to verification URL for production:
https://buy.itunes.apple.com/verifyReceipt
For sandbox :
https://sandbox.itunes.apple.com/verifyReceipt
The response is like this:
{
"status" : 0,
"receipt" : { ... }
}
If the value of the status key is 0, this is a valid receipt.
If the value is anything other than 0, this receipt is invalid.
For further information look the guide:
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html
Swift 3
Insert this temporary code somewhere in your project:
for transaction: AnyObject in SKPaymentQueue.default().transactions {
guard let currentTransaction: SKPaymentTransaction = transaction as? SKPaymentTransaction else {return}
SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
}
This clears out the payment queue. Make sure to run it much later than viewDidLoad if you can. I made mine triggered by a button. Ran it a couple times, then removed the code. No more annoying verification pop-ups.
I saw this issue after iOS5 got released.
Earlier I used to create test accounts with dummy email addresses and it used to work well for me, but post iOS5, it started showing verification required for test accounts.
Thus I ended up using actual email addresses for the test accounts and verified when asked for, which seemed to do the trick for me.
I was facing same problem after spending several hours i figured out that county/region of your itunes connect test account and your device/simulator must be same.
Please verify it as it solved my problem
Register a fresh test user for the USA. You can put any email address.
Log out under settings.
Delete the app.
start it again via xCode
login with your new user within the app.
It may say that you are not located in the USA and it opens the browser, Close the browser and start it again.
It should work now.
If you are having such problem for 4th IAP item to buy.
It looks, each test account does not work for purchasing more than 3 items of an application. You may create a new test account from itunesconnect.apple.com->Manage Users->Test User to test your 4th IAP item.
Creating a canadian test user solve this issue.

Validating receipt with App Store in sandbox mode

I'm having some trouble testing my in app subscriptions.
To know where to start I would like to know if a recepit can be validated (in sandbox mode of course) even if it's not approved by apple. I get an error code which I can'r reproduce right now because of my next problem below:
Secondly, I get Error Domain=SKErrorDomain Code=2 "Could not connect to iTunes Store" a lot. It means "user cancelled the request, etc." according to Apple, but I didn't cancel anything!
Every once in a while it works though, even though I'm not changing anything. I read somewhere that this has to do with me purchasing the same subscription twice, is that true? I really need to test a lot and it takes sooo much time waiting for this error to go away, which makes testing a real cumbersome task.
I tried to go in to subscription settings when the App Store tells me that I already has purchased the product, but I can't seem to be able to log in there with my test user. I just get an "Could not connect to App Store".
Thanks!
Right now, it may be because of the iOS 5 upgrading/activation stampede.

In App Purchase An unknown error has occured

I have created a test app that has in app purchasing. I am able to connect to the store and verify my product ID's. I then use my test user account to purchase a product. And guess what... it works... the first time. If I try to use the test user account to buy another product (the same product or a different one) then I get a pop up that says
"An unknown error has occurred"
with a "Cancel" and "Retry" option. If I retry then I get the same error. After hitting cancel I get the error:
Error Domain=SKErrorDomain Code=0 UserInfo=0x161180 "Cannot connect to iTunes Store"
Any ideas?
Update:
I have found a work around. For some reason apple does like Canadian test users. I switched to using US test users and everything worked.
I also found that after an OS upgrade I needed to delete the app off my phone and do a clean build to get things working again.
So the issue here doesn't have anything to do with wether or not your iTunes connect user is in Canada or the US. It's kind of a strange bug on Apple's side.
What happens is if you sign-out of an iTunes connect user in Settings.app and then sign back in with that user in Settings.app that test user is somehow poisoned and is broken permanently. You will no longer be able to use that account for testing.
To avoid this sign-out in Settings.app, but don't sign back in until you are inside your application and it prompts you during purchase.
I am having this EXACT same problem. I have some more details so let's get to the bottom of this!
When I create a new tester account, the first purchase always works. The second time gives me an alert that says "You've already purchased this but it hasn't been downloaded..." on the device. Every time after that I get an "Unknown error has occurred" message.
My NSLogs gives some more info. The first payment is normal. But it gets weird for any payment attempt after that. After I send the payment request and make myself a queue observer, I see TWO transactions in the purchasing state... weird, why two? After I get the error and tap cancel, I get two transactions in the failed state sent back. Why would I get two responses when I only sent one payment request?
I am using a consumable product type that the user should be able to purchase over and over again.
This worked perfectly for me the last month of testing. It only started acting like this in the past week. The two transactions seems to be from Apple's side, because I can't see any way my code might be causing it. Perhaps Apple made some changes to their purchasing system and haven't worked out the kinks yet.
In my case, I was logged in with another sanbox tester account(of different developer account I mean) in Settings -> iTunes & App Store -> Sandbox Account.
I simply logged out and then tried again to perform the In-App Purchase. And so it asked me to login with another sandbox account. I did so and it worked as it should!

iPhone Store Kit "Cannot connect to iTunes Store"

I am working on adding In-App purchases to my app.
I am able to receive the productsRequest:didReceiveResponse method, and receive the array of products.
My problem arises when I add a SKPayment to the SKPaymentQueue. After I add the product to the queue, in the paymentQueue:updatedTransactions method the transactions always have the state SKPaymentTransactionStateFailed.
I NSLog the "transaction.error" and this is what it returns: Error
Domain=SKErrorDomain Code=0 UserInfo=0x165000 "Cannot connect to
iTunes Store"
I have logged out of the Store in the Settings app, but after trying to purchase a product in my app it never asks me to log in with my test account. It just fails with the above error.
I was getting SKPaymentTransactionStateFailed error code 0 "Cannot connect to iTunes Store" and thanks to thomax for this answer my problem is solved. Turns out you MUST enter a build number under Targets->Summary.
I spent the last 24 hours resetting my phone, screwing with iTunes connect, and doing just about everything i could think of before i stumbled upon this solution.
I assume you've done the standard sanity checks: double-checking your code, confirming your product IDs, comparing your code to the In-App Purchase Programming Guide, etc.
This may be ridiculous, but -- if you're certain your code is correct -- do a hard reset (full wipe) of your iPod (Settings => General => Reset => Erase All Content and Settings). I puzzled over this exact problem for hours -- it turned out my code was correct and the hard reset was the solution.
I had been getting the same error but I had been prompted for my test user account. And also a popup saying "An unknown error has occurred". It turns out that when I created my test user account and signed out of the settings -> store I had decided to sign in with my test user account which had prompted me for a bunch of information including billing, which had broken my test user account. When I created a new test user account and only signed in when prompted to during the in app purchase testing, everything worked smoothly.
This error (i.e. "Error! Cannot connect to iTunes Store") can occur if you do a sandboxed In App purchase but are signed in using your normal Apple account.
I find it helps avoid any confusion if I sign out of my Apple account before doing any In App purchases. Then in the "Sign In" dialog choose the "Use Existing Apple ID" option and enter your Test User details.
Just remember this will be set in your Settings so you will need to sign out after you've finished In App purchases.
Also, using a different Apple ID resets various iTunes-related settings such as iTunes Match.
You can check if the following link is working or timing out:
https://sandbox.itunes.apple.com/verifyReceipt
Alternatively, an unscientific but quite reliable way to check if the sandbox is working is to ask at:
https://devforums.apple.com/community/ios/connected/purchase
If the sandbox is down, there will probably be people already talking about it, like now (18 Jan 2012, 6:40pm UTC time).
I also was facing with the same error.
I figured out, that the Error only comes on the Simulator, when I switched to the device debugging, the error didn't appear.
Simply log off from your AppStore account on settings...
Solved the problem for me because my device was logged using my regular Apple ID and because the purchases on the sandbox are always done with the test user ID, the device was trying to send my regular Apple Store ID to the "test" App Store resulting on this "Cannot Connect to iTunes Store" error.
This is the most common cause I have seen on my device.
Hit with the same problem, i reset my device, cross verified the identifiers, re-installed the app. Also thought the problem was, because I had changed the reference and the description of the products. In reality, I feel it is because my test user had got locked as multiple people where using the same account, and it is a possibility that the password validation failed multiple times.
So I re-created another test user and in-app purchasing is back to working.
Hope this helps. I was totally stumped with this error.
Make sure your BundleIDs match. That was my problem.
Even a full restore did not resolve this problem for me.
After calling addPayment for an auto-renewing product identifier, about one second passed before I received the "SKErrorDomain Code=0" error from StoreKit. At no point was I prompted (as Apple's documentation suggests one should be) for an iTunes Store username and password; the transaction simply failed.
To resolve this, I had to add a fake "consumable" product to iTunes Connect and call addPayment using the fake consumable's product identifier. This caused the iTunes Store dialog to come up. I then logged in with a test account I had created in iTunes Connect. This succeeded: my application was notified that the consumable had been purchased.
After having done this, I was able to call addPayment with my auto-renewing product identifier and purchase the subscription normally.
make sure you're testing with sandbox user accounts created from itunesconnect and not your actual apple id for your personal account when testing this stuff.
I thought it worth mentioning that DonnaLea's solution of only logging in when prompted for payment also worked for the same issue with Unity and Prime31's StoreKit plugin.
Attempting to log in via the same settings menu you use to log out will prompt for all manner of billing\address details which seems to permanently "break" that test account.
I found myself in this situation when I was working on adding in-app purchases and didn't do it exactly right the first time. In my case I had an error in server-side PHP and as a result I think I wasn't getting all the way through to "finishTransaction:". Even after I fixed the problems (I put the program on a separate device and purchased successfully), I kept getting "You've already purchased this, click to download" followed by "Cannot connect to iTunes Store".
I finally got it to stop doing that by launching the game from Springboard (not XCode). It immediately processed the transaction successfully and stopped prompting me to redownload.
This is similar to the accepted answer above. I started getting the "cannot connect to iTunes store" error when trying to log in to my iTunes account on my phone after logging in with an IAP sandbox account.
To solve the problem, I was able to just do a Reset All Settings instead of Erase All Content and Settings (Settings => General => Reset => Reset All Settings). Definitely better than having to lose and reinstall everything on your device.
I had had the same problem, first of all I haven't created test account so I created via getting help from this link
https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SettingUpUserAccounts.html#//apple_ref/doc/uid/TP40011225-CH25-SW10
Then You need to sign out from your current account on your device. and buy purchasing it will ask for user account, then enter the test account.
I had this same issue. I had previously created a test user account, and signed out of the itunes store expecting to be prompted with a sign in for my test user account when I made the in app purchase. instead I got the cannot connect to itunes store message. when I signed in with my real itunes username/password and tried my test app it worked perfectly. I then logged out of itunes store again and my app worked great, prompting me for my id/pw
I had the same error, but the problem was not exactly the same. Maybe usefull for someone:
I inserted an external file in the structure of my app. The reason why I did this is because in production, I insert this file dinamicaly from a server, but in development I thought it was faster to use an app called iExplorer to paste this file. I have done this is the past and I didn't have this problem. But in the last few days, if I paste this file directly using iExplorer, my app returns the error: "Cannot connect to iTunes Store". (in spanish: "No puede conectarse a iTunes Store").
I think that it is because this time I inserted the file inside the .app folder. So this makes me think that if you modify your .app folder in any way, the Codesignature breaks and the link with the iTunes Store stops working directly.
For me, the problem was fixed by uploading a binary. Since that answer was not given in this page, which seems to be among the top hits in Google, I thought I'd add it.
Figured I should share my recent experience with the same issue:
I experienced the same problem a few days ago, where it stopped working from one day to the other. I got the following error after having authenticated with my test user(s): Error Domain=SKErrorDomain Code=0 UserInfo=0x165000 "Cannot connect to iTunes Store"
I hadn't done any changes to the code and we couldn't think of any other changes to our iTunes account or IAP products that might've triggered the problems. The only thing that may have been related was the adding of more iTunes Test Users (although I've added ~15 accounts before without problems). I tested it on different devices and the simulator.
I went through all the available checklists and all possible solutions (everything mentioned above as well) without any success. Finally I figured I might as well take a break from it all over the weekend, since I was drawing blanks. And oddly (and for the first time ever), doing nothing actually worked!
I didn't change any code, nor did anything change on our iTunes account or the app.
The only reasons I can think of are:
Something was wrong on Apple's end.
Some other time-based factor with the app, a certificate or something caused the problems.
A leprechaun snuck into my office and fixed the issue.
Check if you are signed into your personal itunes account in the appstore. If you are you will receive this message. Even if you are signed into your sandbox account in the app. So, to resolve this issue sign out of your personal account in the app store and then try to purchase your in-app item and then use your sandbox account. This resolved my issue.
Well, as usual I "tried all solutions available and it didn't help" :)
So, here is my input to this unlimited collection of stumble stones:
If application is not currently on sale (at any reason), this error occurs.
I got the same error,
When I called SKProductsRequest's start method in my test env,
It ran in
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
When I called in my production env,
It's correct and ran in
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
Close charles or any http proxy software asap!
Close charles or any http proxy software asap!
Close charles or any http proxy software asap!
You know it~
I had had the same problem, but I solved by the following mode:
- I was using iPhone 5S emulator with iOS 8.4 (This is the most important. Apple Store connection is not working on iOS 11 emulator)
- on emulator I turned on the following setting: Settings/Developer/Allow HTTP services (This is for internet connection)
- temporarily I turned off Avast antivirus Web Shield (This is for internet connection too)
The In-App Purchase FAQ has this information:
Cannot connect to iTunes Store
The "Cannot connect to iTunes Store" issue may be due to one or more of the following reasons:
The sandbox may be unreachable.
Your app does not have a bundle version (CFBundleVersion). See Setting the Version Number and Build String for more information.
Your app is running in the Simulator, which does not support in-app purchase.
You are attempting to purchase a product that is unavailable for sale. See Query the App Store for product information before presenting your app’s store UI for more information.
In my case, the error occurred because I was using the simulator.
Even in the In-App Purchase Programming Guide says to use the development iOS device has a suggested testing step.
As Apple's Documentation:
Cannot connect to iTunes Store
The "Cannot connect to iTunes Store" issue may be due to one or more of the following reasons:
The sandbox may be unreachable.
Your app does not have a bundle version (CFBundleVersion). See Setting the Version Number and Build String for more information.
Your app is running in the Simulator, which does not support in-app purchase.
You are attempting to purchase a product that is unavailable for sale. See Query the App Store for product information before presenting your app’s store UI for more information.
https://developer.apple.com/library/content/technotes/tn2413/_index.html
I have tried all what I can to deal with this issue.
Real device not Simulator.
New registered Sandbox test account (not fill the extra info to make it a formal Apple ID)
Logout whatever accounts related.(iCould, App Store, maybe other app's sandbox testing account)
Fill all the tax and Agreements in itunesconnect website
Even restore to factory settings LOL
...
always return SKErrorDomain Code=0
“Cannot connect to iTunes Store”
...
My case's solution is finally come tome after 3 days' struggle:
And finally I find the key. Try with another device to test the iAP if your device's iOS is iOS13.4.x!!!And I upgrade this ”broken“ device's OS version to iOS14.0.1, iAP works like a charm.