Post

Replies

Boosts

Views

Activity

Reply to How to find usages of Reason Required API?
Is Apple planning on extending their warnings to provide more information about where the usages are? ”File a bug”, ha ha ha. Are we left to find it ourselves? https://developer.apple.com/forums/thread/748621 I don’t know if that works for .xcframeworks; if not it’s probably fixable to do so. Do we need to resort to adding those reasons to our app's manifest? Which seems hacking since we probably don't know when of the allowed reasons are accurate. That is certainly what most people will do.
Mar ’24
Reply to Identifying "required reason" API call locations from app binary
Thanks Quinn. I can almost answer the original question, "from where do I call stat()?", from the link map file - except it describes where symbols are defined, not where they are used. But I can use it to get the names of the archive members that are being included in the binary: % grep '\.a\[.*\](.*\.o)' app-LinkMap-normal-arm64.txt ... [256] /usr/local/iphone-arm64/lib/libboost_container.a[6](pool_resource.o) ... I wasted a lot of time at this point because the nm man page mentions the archive(member) syntax If an argument is an archive, a listing for each object file in the archive will be produced. File can be of the form libx.a(x.o), in which case only symbols from that member of the object file are listed. (The parentheses have to be quoted to get by the shell.) but it doesn't work: % objdump --syms '/usr/local/iphone-arm64/lib/libboost_container.a(pool_resource.o)' ...or... % nm '/usr/local/iphone-arm64/lib/libboost_container.a(pool_resource.o)' /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: error: '/usr/local/iphone-arm64/lib/libboost_container.a(pool_resource.o)': No such file or directory However it's not mentioned in the llvm-nm man page; it seems to be nm-classic only (FB13691747), and that's not on my PATH. But if I call it directly it works: % /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm-classic -u '/usr/local/iphone-arm64/lib/libboost_container.a(pool_resource.o)' So now I can get all my app's undefined symbols, grouped by the object file or archive member in which they are used: cat app-LinkMap-normal-arm64.txt | grep '^\[' | sed 's/^\[[ 0-9]*\] \(.*\)$/\1/' | sed 's/\[.*\]//' | while read N do echo "$N" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm-classic -u "$N" done Splendid. I can now see that _stat is called from two places: libcrypto.a(conf_def.o) libcrypto.a(loader_file.o) and _fstat is called from one place also in libcrypto, and that's it.
Mar ’24
Reply to Ecosystem Feature Request: Relinquish App Name
I’ve seen a few posts here over the years from developers who believe that app names are unique. Why do you believe that? In my experience, Apple will approve apps with identical names to apps that are already on the store (one of my apps now has two such competitors). Regarding your idea, why do you need Apple to forward your request? Can’t you just contact them directly? Beware, if Apple acts as middleman they may want 30% commission on what you pay for the app name!
Mar ’24
Reply to Connect DSA trader question
English is not my native language. You can read it in 24 different languages: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32022R2065 Click on your preferred language near the top, then scroll down a lllooooooong way to find article 3, which includes the definitions. 3 (f) is "trader". (BTW, we only get it in English thanks to Ireland now.)
Mar ’24
Reply to Connect DSA trader question
I have no idea what a trader is. But you’ve just quoted the relevant definition of a trader! any natural person … who is acting … for purposes relating to his or her trade, business, craft or profession. I am an independent developer and have several apps in App Store. Is that your “trade, business, craft or profession”? If not, maybe it’s just a hobby? Or maybe you’re a volunteer for a charity?
Mar ’24
Reply to Random C++ compiler errors in Xcode 15.3 (15E204a)
First, do read the notes on the cppreference page for isspace: https://en.cppreference.com/w/cpp/string/byte/isspace Like all other functions from , the behavior of std::isspace is undefined if the argument's value is neither representable as unsigned char nor equal to EOF. To use these functions safely with plain chars (or signed chars), the argument should first be converted to unsigned char Similarly, they should not be directly used with standard algorithms when the iterator's value type is char or signed char. Instead, convert the value to unsigned char first As to why it doesn't work, consider this: int foospace(int c) { return c == ' '; } int foospace(char c) { return c == ' '; } void foo() { const std::string text = "Hello Cruel World!"; auto is_empty = std::all_of(text.begin(), text.end(), foospace); } That fails, but remove either one of the overloads and it works. std::isspace in is supposed to take an int. I don't know where the other overload is coming from, nor what its argument type is. It's unfortunate that the compiler doesn't point out the overloads that it has considered. You might like to grep the headers! So std::isspace is now the name of an overload-set, not a function. Sometimes that works, if the function signatures are sufficiently different, but clearly not in this case. The various ways to convert an overload-set to one of its members are described here: https://en.cppreference.com/w/cpp/language/overloaded_address One option is to assign to a function pointer of the correct type, which is what Quinn has done. Another is simply to cast: auto is_empty = std::all_of(text.begin(), text.end(), static_cast<int(*)(int)>(std::isspace)); But don't do that, because of the char vs. unsigned char issue mentioned at the start.
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’24
Reply to Digital Services Act compliance - are non-profits non-traders?
IANAL. Non-profits can trade. Consider e.g. a charity that sells you a T-shirt and uses the income from that for their good works. That's certainly trading. On the other hand, a non-profit may be a non-trader. For example, if you just give things away. That's probably not trading. @Psalm103 , from your user name I'm guessing you might be a church. There may be special rules specifically related to religious groups. Ask your accountant!
Mar ’24