The Center for Innovation in Education created a reading program designed to teach every single child to read, regardless of any supposed difficulty in learning. The Center conducted a ten-year study of its Reading Program’s effectiveness. Over those ten years, the Center placed 2,048 Reading Program kits in classrooms across America. More than 300,000 children took part in the Center’s study. Results: The Reading Program taught every single child to read in every single classroom, every single year, regardless of any child’s supposed reading readiness - including dyslexic, autistic, and even Down syndrome children. No failures then or in any of the many years that have followed.
Despite the Program’s success, educational publishers refused to publish it. Their refusals will be explained and hopefully counteracted in a book that is scheduled to be published in 2026. In response to publishers’ refusal to make the program available, the Center made it available as a free download from its website. The Center also made its program available as 14 free iPad apps.
While the apps can be searched for individually by their unique names, since the apps are interrelated and meant to complement one another, the first keyword assigned to all 14 apps was the same. That same keyword is still in its first position for every app.
The first keyword listed for each of the 14 apps is the word “Dekodiphukan”. That meant-to-be hard-to-read search word has worked well every year since the apps were introduced. However, in June of this year, that search term could find only 1 of the 14 apps.
We reported this problem to Apple Support on June 26th. It is now November, and the problem remains unresolved. The only response we receive each time we ask for an update on the resolution of this problem the answer every time is:
Reported search issues of this type require extensive review by Apple to determine whether it is valid and to confirm the appropriate action.
There is no other response. No update has ever been sent to us. There is no phone number I can find to call.
It was suggested to me by someone I spoke with in a different department at Apple Developers that I post my problem on the Developer Forum, in hopes that someone here can provide a suggestion for a way around this problem. Parents and teachers wishing to use our Reading Program with their children should not have to enter 14 different names to access our Reading Program.
General
RSS for tagExplore the intersection of business and app development. Discuss topics like device management, education, and resources for aspiring app developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
I've account access level of developer. I want to create app specific password but go through the account but could not get any option to do so. Can somebody help me on this.
Thanks in advance.
Topic:
Business & Education
SubTopic:
General
Hi,
I developed a Platform Single Sign-On extension and a corresponding extension for my IdP, which is Keycloak based. The code for both projects are here:
https://github.com/unioslo/keycloak-psso-extension
and
https://github.com/unioslo/weblogin-mac-sso-extension
I realized that, when using the Secure Enclave as the AuthenticationMethod, and according to Apple's documentation, the Extension doesn’t obtain fresh ID Tokens when they expire if the refresh token is still valid.
When using password as the Authentication Method, it fetches new ID tokens when they expire, without prompting the user for credentials, by using the refresh token.
My suggestion is that the same behavior should be implemented for Secure Enclave keys.
The thing here is that usually, on OIDC flows, the ID/Access tokens are short-lived. It would make sense for the extension to provide fresh ID tokens. It doesn’t seem to make sense for me that, when using passwords, the extension would fetch these tokens, and not when having the Secure Enclave key.
By not doing this, Apple almost forces the developer of an extension to fetch new ID tokens themselves, which doens’t make sense when it clearly provides fresh tokens when using passwords. It almost forces the developers to either implement that logic themselves, or to issue longer tokens, which is not so nice.
How so you deal with this? Do you simply use the refresh token as an authentication token, or do you do some sort of manual refresh on the extension?
Hi,
We developed a Platform SSO extension for our IdP, Keycloak. It would be great to get some feedback on it:
https://francisaugusto.com/2025/Platform_single_sign_on_diy/
We have been trying to figure out how to block Apple Private Relay in our enterprise so we can monitor and filter our employees traffic. We are able to block the Private Relay via this process:
We used this article from Fortinet to achieve this:
https://community.fortinet.com/t5/FortiGate/Technical-Tip-How-to-block-iCloud-Private-Relay-from-bypassing/ta-p/228629
This also appears to block the users ability to utilize Apple iCloud Drive Backups. They would like to allow that still.
Is there a way to block iCloud Private Relay while still allowing iCloud Drive Backups to work? I am not finding a document listing the URL requirements for iCloud Drive Backups.
We currently have this solution in place:
https://community.fortinet.com/t5/FortiGate/Technical-Tip-How-to-allow-iCloud-private-relay/ta-p/383703
Basically this solution is allowing all Apple URL/IPs to go through the firewall and not be filtered. They would like to scan the traffic through. When scanning is enabled the firewall blocks the iCloud Private Relay traffic as it is blocked as being a proxy.
Any guidance is greatly appreciated.
Topic:
Business & Education
SubTopic:
General
Hey.
If i have a new idea for apple how can i reach out for you?
Topic:
Business & Education
SubTopic:
General
The profile expiration date is approaching, and no amount of inquiries will solve it.
Create a new profile
Download a new profile from Xcode
Press archive, press Distribute App, press Enterprise, and distribute
Invalid expiration date in profile of summary of review app.ipa content
I've tried everything that comes out by Googleing profiles, such as regenerating profiles, erasing caches, updating Xcode, updating macOS, deleting existing profile information, etc.
Expiration date different from the expiration date of the profile created in that menu is displayed.
The expiration date of the profile I created is December 8, 2026, and the previous certificate is January 22, 2026.
However, the profile information of the generated ipa is February 12, 2026.
So I can't distribute this app because I'm scared, and the expiration date is coming up. Users should have a period of time to update.
Get me a novice developer who's choking up.
Hi Team,
Could you please share how to change/extend the expiry date of the existing iOS Distribution (In-House) certificate?
Since the membership renewal date is in March 2026 and the iOS distribution(In-House) certificate expiry date is in Feb 2026.
We use to distribute the mobile apps using the product intunes (Company portal) and via direct download link.
Please suggest since this certificate is used by multiple mobile apps by the users which can affect lot of iPhone users?
Thank you in advance
Deepak
Hi,
We're having problems starting an Ad Hoc ipa on an iPad with iOS 12.7.7 and 12.7.8, probably iOS 12 in general. The iPad's UUID is added to the certificate. And we don't have problems with iOS versions > iOS 12. Here is the anonymized Console Log:
default 09:05:12.088994+0100 SpringBoard immediate edge swipe: failed
default 09:05:12.095189+0100 SpringBoard Icon touch began: <private>
default 09:05:12.096204+0100 SpringBoard Found a reasonable launch image for <private>, not pre-warming SplashBoard. Load image into the snapshot instance.
default 09:05:12.117737+0100 powerd Activity changes from 0x2 to 0x1. UseActiveState:1
default 09:05:12.118572+0100 powerd hidActive:1 displayOff:0 assertionActivityValid:0 now:0xcb6 hid_ts:0xcb6 assertion_ts:0x0
default 09:05:12.145354+0100 backboardd [HID] [MT] dispatchEvent Dispatching event with 1 children, _eventMask=0x23 _childEventMask=0x3 Cancel=0 Touching=0 inRange=0
default 09:05:12.152820+0100 SpringBoard Icon tapped: <private>
default 09:05:12.158236+0100 dasd Trigger: <private> is now [1]
default 09:05:12.159538+0100 dasd Don't have <private> for type 1
default 09:05:12.170128+0100 trustd cert[0]: SubjectCommonName =(leaf)[]> 0
default 09:05:12.170407+0100 trustd cert[0]: LeafMarkerOid =(leaf)[]> 0
default 09:05:12.182388+0100 trustd OCSPSingleResponse: nextUpdate 0.54 days ago
default 09:05:12.186084+0100 trustd OCSPSingleResponse: nextUpdate 0.62 days ago
default 09:05:12.187067+0100 SpringBoard Trust evaluate failure: [leaf IssuerCommonName LeafMarkerOid SubjectCommonName]
default 09:05:12.238604+0100 trustd Task <TASK_UUID_REDACTED_1>.<1> resuming, QOS(0x19)
default 09:05:12.240650+0100 trustd TIC TCP Conn Start [12:0xADDR_REDACTED]
default 09:05:12.241136+0100 trustd [C12 Hostname#HASH_REDACTED:80 tcp, pid: PID_REDACTED, url hash: HASH_REDACTED] start
default 09:05:12.245884+0100 trustd TIC TCP Conn Start [13:0xADDR_REDACTED]
default 09:05:12.246361+0100 trustd [C13 Hostname#HASH_REDACTED:80 tcp, pid: PID_REDACTED, url hash: HASH_REDACTED] start
default 09:05:12.256520+0100 trustd nw_connection_report_state_with_handler_locked [C12] reporting state failed error Network is down
error 09:05:12.256978+0100 trustd TIC TCP Conn Failed [12:0xADDR_REDACTED]: 1:50 Err(50)
error 09:05:12.262697+0100 trustd Task <TASK_UUID_REDACTED_1>.<1> HTTP load failed (error code: -1009 [1:50])
error 09:05:12.271646+0100 trustd Task <TASK_UUID_REDACTED_1>.<1> load failed with error Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."
default 09:05:12.271898+0100 trustd Failed to download ocsp response http://ocsp.apple.com/ocsp03-wwdrg311/... with error Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."
default 09:05:12.280643+0100 SpringBoard Activating <private> from icon
default 09:05:12.281399+0100 CommCenter #I CTServerConnection from pid PID_REDACTED has closed (conn=0xADDR_REDACTED)
default 09:05:12.513629+0100 SpringBoard Bootstrapping com.example.myapp with intent foreground-interactive
default 09:05:12.514084+0100 assertiond Submitting new job for "com.example.myapp" on behalf of <BKProcess: 0xADDR_REDACTED; SpringBoard; com.apple.springboard; pid: PID_REDACTED; ...>
default 09:05:12.514909+0100 assertiond Submitted job with label: UIKitApplication:com.example.myapp[REDACTED][REDACTED]
error 09:05:12.516769+0100 SpringBoard [com.example.myapp] Bootstrap failed with error: <NSError: 0xADDR_REDACTED; domain: BKSProcessErrorDomain; code: 1 (bootstrap-failed); reason: "Failed to start job">
error 09:05:12.516935+0100 SpringBoard Bootstrapping failed for <FBApplicationProcess: 0xADDR_REDACTED; com.example.myapp; pid: -1> with error: Error Domain=BKSProcessErrorDomain Code=1 "Unable to bootstrap process with bundleID com.example.myapp"
default 09:05:12.517589+0100 SpringBoard <FBApplicationProcess: 0xADDR_REDACTED; com.example.myapp; pid: -1> exited.
default 09:05:12.542638+0100 SpringBoard Application process state changed for com.example.myapp: <SBApplicationProcessState: 0xADDR_REDACTED; pid: -1; taskState: Not Running; visibility: Unknown>
default 09:05:13.072994+0100 SpringBoard Front display did change: <SBApplication: 0xADDR_REDACTED; com.example.myapp>
Is there any know problem with running Ad Hoc ipas on iOS 12?
Thanks
Christian
Hi,
We're having problems starting an Ad Hoc ipa on an iPad with iOS 12.7.7 and 12.7.8. The iPad's UUID has been added to the provisioning profile. The iPad that we are trying to start the app on is online, so Apple's certificate validation server should be reachable. We don't have any problems with iOS versions above iOS 12.
The .ipa was built using the latest version of Xcode (26.2, build 17C52).
Here is the anonymised and reduced console log (only the app launch / bootstrap part):
default 07:29:35.683108+0100 SpringBoard Icon touch began: <private>
default 07:29:35.752640+0100 SpringBoard Icon tapped: <private>
default 07:29:35.768538+0100 trustd cert[0]: SubjectCommonName =(leaf)[]> 0
default 07:29:35.791500+0100 SpringBoard Trust evaluate failure: [leaf IssuerCommonName LeafMarkerOid SubjectCommonName]
default 07:29:35.793654+0100 trustd cert[0]: IssuerCommonName =(path)[]> 0
default 07:29:36.043497+0100 assertiond Submitting new job for "<APP_BUNDLE_ID>" on behalf of SpringBoard (pid: 48)
default 07:29:36.044393+0100 SpringBoard Bootstrapping <APP_BUNDLE_ID> with intent foreground-interactive
error 07:29:36.045124+0100 SpringBoard [<APP_BUNDLE_ID>] Bootstrap failed with error:
domain: BKSProcessErrorDomain, code: 1 (bootstrap-failed), reason: "Failed to start job"
error 07:29:36.045214+0100 SpringBoard Bootstrapping failed for <APP_BUNDLE_ID> (pid: -1):
Error Domain=BKSProcessErrorDomain Code=1
"Unable to bootstrap process with bundleID <APP_BUNDLE_ID>"
NSLocalizedFailureReason=Failed to start job
NSUnderlyingError=NSPOSIXErrorDomain Code=3 "No such process"
BKLaunchdOperation=launch_get_running_pid_4SB
BKLaunchdJobLabel=<LAUNCHD_JOB_LABEL>
BKSProcessJobLabel=<LAUNCHD_JOB_LABEL>
default 07:29:36.046078+0100 assertiond Submitted job with label: <LAUNCHD_JOB_LABEL>
default 07:29:36.046442+0100 assertiond Unable to get pid for '<LAUNCHD_JOB_LABEL>': No such process (3)
error 07:29:36.046542+0100 assertiond Failed to start job: NSPOSIXErrorDomain Code=3 "No such process"
default 07:29:36.046607+0100 assertiond Deleted job with label: <LAUNCHD_JOB_LABEL>
default 07:29:36.081068+0100 SpringBoard Application process state changed for <APP_BUNDLE_ID>: pid: -1; taskState: Not Running
Hello everyone,
I’m looking for some clarity from the community regarding eligibility for the Swift Student Challenge 2026, particularly for students taking a gap year in India.
I graduated from high school (Class XII, CBSE – India) in May 2025. After graduating, I chose to take a gap year to prepare for competitive entrance examinations in India, with the goal of pursuing Computer Science / Engineering. I’ll be applying to accredited universities for programs starting in mid-2026, and I’m not currently enrolled in a college.
My question:
The eligibility guidelines state that high school graduates must have graduated within the past 6 months and must be awaiting acceptance or have received acceptance to an accredited institution. Since the submission deadline is February 28, 2026, my graduation would be about 9 months prior, which puts me in a gray area.
Has anyone here participated in, or seen others participate in, the Swift Student Challenge while taking a gap year and preparing for university entrance exams? Is there any known flexibility or precedent for students in this situation?
I’ve been following the Swift Student Challenge since 2023 and would really love to participate if I’m eligible. Any insights or experiences would be greatly appreciated.
Thanks!
Hey folks,
I work as a software development consultant. We develop enterprise applications for our clients, and the apps we create are usually for internal use. We've ran into a bit of a conundrum with a client who doesn't have their own Apple Enterprise account, and neither do we as we don't meet the criteria, but they're wanting to distribute an application we've built for them via their own MDM software. We are not entirely sure how to provide them with a distribution ready .ipa file that isn't AdHoc and will be recognized as a secure app. We've looked into generating a Developer ID provisioning profile and accompanying cert, however we're running into a problem where the platform of our app (iOS) doesn't match the platform required by the Developer ID profile (macOS).
I've also come across the idea of resigning an .ipa, but again, the client doesn't have a Apple Developer account and expects the working .ipa to be included in the service rendered.
Any suggestions or advice or documentation around the subject would be greatly appreciated.
Thanks,
Ale
I have a question regarding MDM functionality for iOS/iPadOS.
Background:
According to Apple's support page(https://support.apple.com/en-us/125073), since iOS 26.1, "Previous Wi-Fi configurations will be replaced when a new profile is installed."
We have observed that because of this change, when we apply a Wi-Fi configuration profile to an iPad via MDM, the manually configured network settings on the device (specifically, "Configure IPv4" and "Configure DNS") are reset to "Automatic". This erases the manually entered IP address, subnet mask, router, and DNS server addresses.
Goal:
We want to apply a Wi-Fi configuration profile from our MDM server to connect the device to a specific SSID, while preserving the manual IP and DNS settings that have been configured on the device.
Question:
Is there a way to prevent the IPv4 and DNS settings from being switched from "Manual" to "Automatic" when applying the configuration profile?
For example, is there a specific key-value pair we can add to the profile to either preserve the existing manual settings, or to explicitly define manual/static IP settings within the profile itself for iOS/iPadOS?
Reference: Sample Configuration Profile
Below is a simplified version of the Wi-Fi configuration profile we are currently using. This profile does not contain any keys for IP address configuration.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.wifi.managed</string>
<key>PayloadIdentifier</key>
<string>com.apple.wifi.managed.13E2E6B3-D4B9-4E23-888A-524B3ED40C38</string>
<key>PayloadUUID</key>
<string>13E2E6B3-D4B9-4E23-888A-524B3ED40C38</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>SSID_STR</key>
<string>SSID</string>
<key>EncryptionType</key>
<string>WPA</string>
<key>Password</key>
<string>Password</string>
</dict>
</array>
<key>PayloadType</key>
<string>Configuration</string>
</dict>
</plist>
Topic:
Business & Education
SubTopic:
General
Tags:
Business and Enterprise
Apple Business Manager
Device Management
Guideline 3.1.1 - Business - Payments - In-App Purchase
The app includes an account registration feature for businesses and organizations, which is considered access to external mechanisms for purchases or subscriptions to be used in the app.
Next Steps
Remove the account registration features for business and organizations.
Our application currently allows users to register and create multiple accounts using a phone number.
All users can freely create an account. The app is designed to help users manage their own products, orders, and sales invoices. It is purely a sales management tool. We do not provide any external purchase links, external payment methods, or subscription mechanisms outside of Apple’s In-App Purchase system.
However, our app was rejected under Guideline 3.1.1 with the explanation that the app includes “account registration for businesses or organizations,” which is considered access to external purchase mechanisms.
We are confused about this interpretation.
From our understanding:
Any individual user can register.
The registration process is only for authentication and data management.
The app must include an account registration feature in order to function properly.
There is no external purchasing mechanism involved in the registration process.
Could someone please clarify:
Why would allowing users (including small business owners) to register accounts be considered “access to external purchase mechanisms”?
What specifically qualifies as “account registration for businesses or organizations” under Guideline 3.1.1?
What changes would be required to comply with the guideline while still keeping mandatory account registration?
We would greatly appreciate clarification so we can properly address the issue and ensure full compliance with App Store policies.
Thank you.
Topic:
Business & Education
SubTopic:
General