Post

Replies

Boosts

Views

Activity

Reply to URL Encoding doesn't work with iOS 17 which is working with iOS 16
Output in iOS 17: http://192.168.1/api/rest/contents/Shan%27s%20iPhone%20%40%24%E2%82%B9/test.jpg Output in iOS 16: http://192.168.1/api/rest/contents/Shan%27s%20iPhone%20%40%24%E2%82%B9/test.jpg Unless I've gone blind, those outputs are identical. So I believe your problem is not with the percent-encoding, which is unchanged, but with something else. One thing to look at: 192.168.1 is not a valid IP address. Also, http: (rather than https:) may be blocked by security features. A more general observation: generally, it's best to do percent-encoding on the individual components of the URL before joining them together. You seem to be taking a complete URL and then trying to encode it. That can work if you know that your query parameters (etc.) have a limited character set, but it doesn't work in general.
Topic: App & System Services SubTopic: Core OS Tags:
Sep ’23
Reply to How to tell if the receipt was created in sandbox or production with validating receipts on the device?
Why do you want to know if it is a sandbox or production receipt? I do this just for statistics, and I check (on the device) whether the path to the receipt file contains the string "sandbox". This is undocumented and you shouldn't rely on it for anything critical. You can also look at the original app purchase version field in the receipt; this is always 1.0 in the sandbox. Of course for this to work you need to give a different version number to your first app store version, and you can't go back in time and change that if you've already released the app.
Topic: App & System Services SubTopic: StoreKit Tags:
Oct ’23
Reply to Long Term Support
does Apple also have something like this No. As a developer, how can you use an app in the long term without functions or features that are suddenly deprecrated? Avoid using Apple features; use third-party alternatives, or write your own.
Topic: App & System Services SubTopic: Core OS Tags:
Oct ’23
Reply to Can I not download the iOS simulator?
Yes, you will need this download. The "simulator" download includes the SDK that you need for compiling iOS code. Thanks, I thought as much. Do you happen to know whether everything that it downloads goes into /Applications/Xcode? I.e. having done the multi-hour download onto one machine, can I copy /Applications/Xcode to a second machine, and avoid repeating this additional download there? In the past I have downloaded the .xip file from developer.apple.com to avoid multiple App Store downloads. (Yes I have a slow internet connection. Maybe it will be faster by the time the next Xcode update comes out - we recently had a building asbestos survey done, which was a precondition for fibre installation. The students next door think the fibre will arrive just after they finish their courses....)
Oct ’23
Reply to macOS Sonoma broke grep (assertion fails)
Works for me: % printf '%s' '3.2.57(1)-release' | grep -o '[0-9.]*' 3.2.57 1 Is there something unusual about your locale, or some environment variable, or something? % grep --version grep (BSD grep, GNU compatible) 2.6.0-FreeBSD % uname -a Darwin xxxx 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:34 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T8103 arm64
Oct ’23
Reply to App Attest server implementation
I haven't been able to figure out how to do this part at all The hex that you print in line 69 is itself an ASN.1-encoded value. The details of how to decode that depend on the particular libraries that you are using, which I'm not familiar with. FYI here is my code - C++ using Botan - for this step. I wrote it a while ago, and I think an element of trial-and-error was needed. It does help if you have an ASN.1 "pretty printer" for debugging. // 4. Obtain the value of the credCert extension with OID 1.2.840.113635.100.8.2, which // is a DER-encoded ASN.1 sequence. Decode the sequence and extract the single octet // string that it contains. Verify that the string equals nonce. auto extensions = leaf_cert.v3_extensions(); auto extn = extensions.extensions_raw()[Botan::OID{"1.2.840.113635.100.8.2"}] .first; // Botan::ASN1_Pretty_Printer pp; // log(pp.print(extn), ""); Botan::BER_Decoder decoder(extn); auto seq = decoder.get_next_object(); check(seq.type() == Botan::SEQUENCE); Botan::BER_Decoder decoder2(seq.bits(),seq.length()); auto cons = decoder2.get_next_object(); check(cons.get_class() & Botan::CONSTRUCTED); Botan::BER_Decoder decoder3(cons.bits(),cons.length()); auto expected_nonce = decoder3.get_next_octet_string(); check(std::equal(expected_nonce.begin(), expected_nonce.end(), nonce.begin(), nonce.end()));
Topic: App & System Services SubTopic: General Tags:
Oct ’23
Reply to Texas Sales and Use Tax for Sellers
I sell an app on the app store. No, Apple sells apps on the App Store. You only sell your app to Apple, wholesale. I don't know much about how this all works in Texas, but I believe you should probably start by thinking about it in those terms: you are making a business-to-business sale to Apple Inc, not a business-to-consumer sale to John Doe. In any case, Apple don't tell you what states the end-users live in. So anything that you consider doing which requires you to divide up the end users by state must be wrong.
Oct ’23
Reply to Battery level reporting is broken in iOS 17
See: https://developer.apple.com/forums/thread/732903 This must be fixed. No; it seems to be a deliberate change by Apple, so you will need to stop relying on the old behaviour.
Topic: App & System Services SubTopic: Hardware Tags:
Replies
Boosts
Views
Activity
Sep ’23
Reply to URL Encoding doesn't work with iOS 17 which is working with iOS 16
Output in iOS 17: http://192.168.1/api/rest/contents/Shan%27s%20iPhone%20%40%24%E2%82%B9/test.jpg Output in iOS 16: http://192.168.1/api/rest/contents/Shan%27s%20iPhone%20%40%24%E2%82%B9/test.jpg Unless I've gone blind, those outputs are identical. So I believe your problem is not with the percent-encoding, which is unchanged, but with something else. One thing to look at: 192.168.1 is not a valid IP address. Also, http: (rather than https:) may be blocked by security features. A more general observation: generally, it's best to do percent-encoding on the individual components of the URL before joining them together. You seem to be taking a complete URL and then trying to encode it. That can work if you know that your query parameters (etc.) have a limited character set, but it doesn't work in general.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Sep ’23
Reply to Is Macbook air m1 base version-8gb ram,256gb ssd enough?
You'll probably be fine. Are you the sort of person who notices when something takes fractionally longer than it should, or have you been using a decade-old computer happily until now? Can you be disciplined and manage storage, or do you need an "infinite" SSD to store all your old files?
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to How to tell if the receipt was created in sandbox or production with validating receipts on the device?
Why do you want to know if it is a sandbox or production receipt? I do this just for statistics, and I check (on the device) whether the path to the receipt file contains the string "sandbox". This is undocumented and you shouldn't rely on it for anything critical. You can also look at the original app purchase version field in the receipt; this is always 1.0 in the sandbox. Of course for this to work you need to give a different version number to your first app store version, and you can't go back in time and change that if you've already released the app.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to Long Term Support
does Apple also have something like this No. As a developer, how can you use an app in the long term without functions or features that are suddenly deprecrated? Avoid using Apple features; use third-party alternatives, or write your own.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to Can I not download the iOS simulator?
Yes, you will need this download. The "simulator" download includes the SDK that you need for compiling iOS code. Thanks, I thought as much. Do you happen to know whether everything that it downloads goes into /Applications/Xcode? I.e. having done the multi-hour download onto one machine, can I copy /Applications/Xcode to a second machine, and avoid repeating this additional download there? In the past I have downloaded the .xip file from developer.apple.com to avoid multiple App Store downloads. (Yes I have a slow internet connection. Maybe it will be faster by the time the next Xcode update comes out - we recently had a building asbestos survey done, which was a precondition for fibre installation. The students next door think the fibre will arrive just after they finish their courses....)
Replies
Boosts
Views
Activity
Oct ’23
Reply to Clang 15.0 produces slow c++ applications
Have you tried other optimisation settings, e.g. -O3, rather than -Ofast ? Just a guess, maybe the meaning of -Ofast has been changed? What are the types T, KT etc. ? Are thry float/double, or are they something exotic?
Replies
Boosts
Views
Activity
Oct ’23
Reply to Clang 15.0 produces slow c++ applications
You might like to ask on the clang mailing list / forum to see if anyone knows what changed. Or maybe it's in the release notes! I believe that -Ofast is supposed to enable some "approximate maths" features. You might want to try turning them on explicitly.
Replies
Boosts
Views
Activity
Oct ’23
Reply to macOS Sonoma broke grep (assertion fails)
Works for me: % printf '%s' '3.2.57(1)-release' | grep -o '[0-9.]*' 3.2.57 1 Is there something unusual about your locale, or some environment variable, or something? % grep --version grep (BSD grep, GNU compatible) 2.6.0-FreeBSD % uname -a Darwin xxxx 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:34 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T8103 arm64
Replies
Boosts
Views
Activity
Oct ’23
Reply to App Attest server implementation
I'm stuck on the step where the credCert extension is decoded and compared with the nonce. Do you mean that your comparison returns false at that point?
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to App Attest server implementation
I haven't been able to figure out how to do this part at all The hex that you print in line 69 is itself an ASN.1-encoded value. The details of how to decode that depend on the particular libraries that you are using, which I'm not familiar with. FYI here is my code - C++ using Botan - for this step. I wrote it a while ago, and I think an element of trial-and-error was needed. It does help if you have an ASN.1 "pretty printer" for debugging. // 4. Obtain the value of the credCert extension with OID 1.2.840.113635.100.8.2, which // is a DER-encoded ASN.1 sequence. Decode the sequence and extract the single octet // string that it contains. Verify that the string equals nonce. auto extensions = leaf_cert.v3_extensions(); auto extn = extensions.extensions_raw()[Botan::OID{"1.2.840.113635.100.8.2"}] .first; // Botan::ASN1_Pretty_Printer pp; // log(pp.print(extn), ""); Botan::BER_Decoder decoder(extn); auto seq = decoder.get_next_object(); check(seq.type() == Botan::SEQUENCE); Botan::BER_Decoder decoder2(seq.bits(),seq.length()); auto cons = decoder2.get_next_object(); check(cons.get_class() & Botan::CONSTRUCTED); Botan::BER_Decoder decoder3(cons.bits(),cons.length()); auto expected_nonce = decoder3.get_next_octet_string(); check(std::equal(expected_nonce.begin(), expected_nonce.end(), nonce.begin(), nonce.end()));
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to Clang 15.0 produces slow c++ applications
I don't see what you mean with clang -###. He means literally add -### to your invocation.
Replies
Boosts
Views
Activity
Oct ’23
Reply to valid check to detect process running on cloud VM vs local machine in mac
I m trying to identify if my launched process is running on a local mac machine(desktop/laptop) or a virtual macOS X instance like AWS EC2, Azure, MacStadium etc. What do you want to happen if it runs on a virtual machine that's on your local mac?
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Oct ’23
Reply to Texas Sales and Use Tax for Sellers
I sell an app on the app store. No, Apple sells apps on the App Store. You only sell your app to Apple, wholesale. I don't know much about how this all works in Texas, but I believe you should probably start by thinking about it in those terms: you are making a business-to-business sale to Apple Inc, not a business-to-consumer sale to John Doe. In any case, Apple don't tell you what states the end-users live in. So anything that you consider doing which requires you to divide up the end users by state must be wrong.
Replies
Boosts
Views
Activity
Oct ’23
Reply to Getting 401 when generating JWT token to call App Store Connect API
1 hour is too long. Should be less than 20 mins in most cases. This is mentioned in the docs: https://developer.apple.com/documentation/appstoreconnectapi/generating_tokens_for_api_requests#3878467 There could be other problems. Fix that and see what happens.
Replies
Boosts
Views
Activity
Oct ’23