ColdGrub1384 / LibTerm

iOS sandboxed terminal with Python, Lua and Clang
https://libterm.app
MIT License
630 stars 115 forks source link

Python 3.7 doesn't work. #14

Closed ColdGrub1384 closed 5 years ago

ColdGrub1384 commented 5 years ago

I made Python 3.7 an In App Purchase. But the purchase doesn't work. Also, people that downloaded the app when Python 3.7 was free should not have to purchase it. I submitted a new update fixing that.

ColdGrub1384 commented 5 years ago

I think I found the solution

ColdGrub1384 commented 5 years ago

You can update, the Python 3.7 In App Purchase is free for now.

Shock9616 commented 5 years ago

I just tried to unlock python 3 with the in app purchase but it is giving me a product not found error. I am following the instructions and letting you know so that you can fix the bug. 457e3070-810b-4aa2-9d87-e5ac0b5002f8

Shock9616 commented 5 years ago

Maybe it is taking longer for the fix to reach me. Updates sometimes take a bit longer to get to my region.

ColdGrub1384 commented 5 years ago

I think it will take some time for the In App Purchase to be available, it happened to me with another app. I have put the In App Purchase to 0$ until I will fix all bugs. I submitted an update that should be available today that should unlock Python 3.7 for all users who downloaded the app before the 4.0. The problem is that only works on App Store versions because I have to check a receipt given by the App Store, so I can only check if that works when the app is on the App Store. But I think I found the problem. Apple said that In App Purchases can take up to 24 hours to be available. That’s not a bug of my app because if we try to purchase Python 3.7 from the App Store, it doesn’t work. And also the app would be rejected if the In App Purchase would not work. Sorry for all bugs 😓. When the purchase will be available, you can purchase it and it will be free. On the next update, it should be free for users who downloaded the app before the 4.0 and paid for other users.

Shock9616 commented 5 years ago

Ok thanks for letting me know!

ColdGrub1384 commented 5 years ago

The In App Purchase works now, it’s free for now.

adbennet commented 5 years ago

(1) I don't know if this is related to the in-app purchase, but I updated from 3.0.1 to 4.0.1, and opened LibTerm, I got a popup "Sign in to iTunes Store". It seems unnecessary, out of reflex I clicked cancel and LibTerm seems to work okay. If I kill the app and re-open, I get the popup again. If I switch away from the app and re-open, I do not get the popup. (2) I successfully purchased python 3.7 for free. Notably, I did not get a popup, I got a different Apple sign-in dialog that I have seen many times before. The next time I opened LibTerm, I got the popup again. Killing/switching behaves the same as in my item-1, before the in-app purchase. (3) I think your policy RE python2/3 is very well thought out. Kudos.

ColdGrub1384 commented 5 years ago

The dialog is for checking for the original downloaded application version. I have to send a request to Apple. The app never retrieves the password itself, it's requested by Apple: https://github.com/ColdGrub1384/LibTerm/blob/master/LibTerm/AppDelegate.swift#L46. There are 2 problems:

1) The password will always be requested until the original downloaded application version was retrieved, so it will always be requested until the password is not typed.

2) The request is not sent correctly in the current version, so the version is not retrieved and so the password is always requested. Edit: I just checked and if you type the password, it will not be requested anymore. The function is called, but Apple doesn't ask for the password. I submitted an update fixing that and it should be available soon.

I will update the algorithm so the password is not always requested.

https://stackoverflow.com/questions/20188745/refreshing-ios-app-receipt-how-to-determine-if-user-will-need-to-sign-in-for-ap

https://developer.apple.com/documentation/storekit/skreceiptrefreshrequest: I used this function to request a receipt of the app. With the receipt, the app should check for the version originally downloaded. So if the first downloaded version was bellow the 4.0, Python should be available for free. It doesn't work now, so waiting the update is available, I made the purchase free. But in next version, Python 3 should be available as an In App Purchase and users who have downloaded the app before the 4.0 should have it for free.

ColdGrub1384 commented 5 years ago

That's I wanted to do: https://stackoverflow.com/a/39876448/7515957

I am in the process of switching an app from paid to freemium so I also need the original application version.

ColdGrub1384 commented 5 years ago

https://github.com/ColdGrub1384/LibTerm/commit/e8c63614eb5943f51ecd1579d1a78d9b3da0e26e#r31766340

ColdGrub1384 commented 5 years ago

App Store Connect Holiday Schedule: Dec 23–27 Make sure your apps are up to date and ready for the holidays. New apps and app updates will not be accepted December 23 to 27 (Pacific Time), so any releases should be submitted, approved, and scheduled in advance. Other App Store Connect and developer account features will remain available.

I will request an expedited review

ColdGrub1384 commented 5 years ago

All should work now.