I used to test my safari extension by running it, opening safari, clicking on develop, allow unsigned extension and install it from safari preferences (extension tab). However, ever since I uploaded it to app store connect, it's no longer their in dev mode take screenshot and submit it to store.
How can I test it again on my safari?
Post
Replies
Boosts
Views
Activity
Have built the popup but the popup buttons are not working or responsive (nothing happens) despite the same working in the chrome extension version.
This is my manifest.json file for my safari extension that I've just developed:
{
"manifest_version": 2,
"default_locale": "en",
"name": "BeTimeful",
"description": "Never regret going to social media or YouTube again!",
"version": "1.0",
"icons": {
"48": "images/icon-48.png",
"64": "images/icon-64.png",
"96": "images/icon-96.png",
"128": "images/icon-128.png",
"256": "images/icon-256.png",
"512": "images/icon-512.png"
},
"web_accessible_resources": ["images/*", "*"],
"browser_action": {
"default_popup": "popup/index.html",
"default_title": "Betimeful",
"default_icon": {
"16": "images/toolbar-icon-16.png",
"19": "images/toolbar-icon-19.png",
"32": "images/toolbar-icon-32.png",
"38": "images/toolbar-icon-38.png",
}
},
"background": {
"scripts": ["Libraries/jquery.js","Libraries/raygun.min.js", "js/background.js"],
"persistent": true
},
"content_scripts": [
{
"matches": [
"*://www.betimeful.com/cancel",
"*://www.betimeful.com/success"
],
"js": ["js/success.js"]
},
{
"matches": ["*://calendar.google.com/*", "http://blank.org/*"],
"js": [
"Libraries/jquery.js",
"Libraries/party.min.js",
"Libraries/popper.min.js",
"Libraries/bootstrap.min.js",
"Libraries/purify.min.js",
"js/quotes.js",
"js/html.js",
"js/content.js",
"js/actions.js"
],
"run_at": "document_start",
"css": [
"styles/content.css",
"styles/Socialstyles.css",
"styles/bootstrap.min.css"
]
},
{
"matches": [
"*://www.facebook.com/*",
"*://www.instagram.com/*",
"*://www.linkedin.com/*",
],
"run_at": "document_start",
"js": ["Libraries/jquery.js","Libraries/raygun.min.js","Libraries/purify.min.js", "js/quotes.js", "js/social_handler.js"]
},
{
"matches": [
"https://www.facebook.com/"
],
"run_at": "document_start",
"js": ["Libraries/jquery.js", "js/freemium.js"]
}
],
"permissions": [
"tabs",
"activeTab",
"storage",
"cookies",
"*://betimeful.com/*",
"*://www.betimeful.com/*",
"https://api.mixpanel.com/*",
]
}
When I git publish/distribute app, I get:
Corrupted manifest file. The manifest.json file could not be read in Safari extension bundle BeTimefulSafari.app/Contents/PlugIns/BeTimefulSafari Extension.appex. Please make sure your manifest.json file contains valid syntax. With error code STATE_ERROR.VALIDATION_ERROR.90848 for id c549-f7-4ef-a52a-20bb
I am not sure what's wrong with it as the same manifest works well with the chrome extension that's live in the chrome store nor have I seen any solutions on the web.
Appreciate the help.
I am using safari content blockers to block & unblock specific elements of a website when a user toggles on/off. I was assuming that when user toggles the blocking off & I remove blockings from blockers.json & then do a reload
class func reloadContentBlocker(withIdentifier identifier: String,
completionHandler: ((Error?) -> Void)? = nil)
the user would no longer see the blocks on safari. However, the user still sees unless he/she refreshes the page which doesn't seem the be the best user experience & it'd be annoying to remind user to do so every time. Are there any work arounds to this? Did Apple forgot to add this last step?
if we could've reloaded safari itself using swift it would've done the job but I am not aware of such APIs.
Really appreciate your help.
IOS Safari extensions loose connection when safari page gets saved as standalone on a mobile device.
Create a sample IOS extension that has access to a standalone website such as (https://www.instagram.com) declared in manifest.json
Write in content.js a functions that runs every 5 seconds & calls alert("checking")
Go to (https://www.instagram.com) from the IOS safari stimulation & notice how the alert is getting reported every 5 second once you give the permission or enable it on instagram.
Now add instagram.com as a homescreen & once you visit it you will realize that the alert is no longer coming despite user giving permission to run on (https://www.instagram.com).
Why important to fix? Our users at beTimeful.com want to have mobile app to make their social media less addictive for themselves and their families to live a better life. However, we can only give them what they want once this petite bug gets fixed.
I'd like to use screen time Api 16.0 to hide specific apps from the home screen for individuals, not family/parental. I've already written the authentication:
let center = AuthorizationCenter.shared
try await center.requestAuthorization(for: .individual)
But can't figure the doc that shows how to hide/unhide a specific app such as instagram.
The closes is familyActivityPicker
https://developer.apple.com/documentation/familycontrols/familyactivitypicker
but that's for IOS 15.0 API & based on user's selection versus being already pre-configured. AKA, when individual screentime API access given hide all social media apps or hide instagram.
I've requested for family control via:
https://developer.apple.com/contact/request/family-controls-distribution
& got approved.
I've now created new provision files with family control being checked in the identifiers & uploaded manually. Yet, still get:
Provisioning profile "redoAppStore" doesn't support the Family Controls capability.
Provisioning profile "redoAppStore" doesn't include the com.apple.developer.family-controls entitlement.
The family control capability is added to my main target (IOS app) as well.
What should I do to get it uploaded?
HI there,
There seems to be a sever bug with family controls API where even when an app has been deleted by the user, the screentime API permission is still granted to deleted app instead of being revoked.
The reason for the severity is because when the app user's social media apps per the user's intention, once the user decided to delete the app, the user would no longer be able to access any of their social media despite deleting the app & expecting the permission to be revoked.
At the same time, the app can't detect when it has been deleted to unhide the app from user's homescreen.
Such bug is happening with other extensions as well (content blockers), where despite the app being deleted, the permission doesn't get revoked.
As an app that's making social media less addictive for thousands of iPhoners, we’re wholeheartedly requesting to allow content blocker permissions via a permission pop.
This will dramatically improve the user experience because the current method is puzzling for the following reasons:
Navigating for the “Content Blocker” permissions in settings is challenging, confusing, and frustrating. Even as the developers ourselves, we sometimes get lost on the way. Hence, users are upset on why such a binary permission can’t just be done via a popup like other permissions (including family controls).
sometimes when a user search “Content Blocker” to make navigation easier, the app shown in the picture gets shown instead which ends up misleading and frustrating the user even more.
users don’t always know what “content blocker” is in their native language to be able to navigate to it via a search. BeTimeful shares Apple’s mission to bring back time to people’s lives with introductions of family controls and screen times. Unfortunately, the current voyage to just turn on a binary permission is making it hard for us and other developers to fulfil the mission.
At the same time, we all choose Apple due to the simplicity of it's UX, not complexity. Hence, on behalf of our current and future users, we plead to simplify content blocker permission as well 🙏💜
IOS Safari extensions loose connection when safari page gets saved as standalone on a mobile device.
By removing the captivating newsfeed, we make social media less addictive so that people can still stay connected, not distracted. In other words, joining Apple's mission to improve focus/screentime to get hours. back in their life.
You can check out our safari extension at: Mac Store.
Our users are pleading us every day to extend our solution to mobile as that's where majority of social media distraction lies. As we can't modify a native app, the closest thing we can do is ask users to add the modified safari social media page to their homescreen which they're completely value as it still makes them still feel they're using the native app without the distraction. However, since safari extensions lose connection at standalone despite our users' intention, they can no longer live a life without distraction.
As a result, we are forced to ask the user to also allow content blockers as a workaround which makes for a poor user experience for the following reasons.
The User is confused about why he has to install two extensions to do the job of one, hence creating a logical leap.
Content ways are turned on in a completely different way than Safari Extension, the former is in iPhone’s setting the latter is in the Safari toolbar. Thereby, such poor user experience leaves the user frustrated given the simplicity a user expects from Apple’s product.
Because the user has to install two Extensions to do the job of one, this can negatively impact the battery and performance of the user’s phone.
As the name implies, content blockers only block content. Hence, we can't 4. developer any feature aside blocking that users want. Even worse, content blockers are inefficient for blocking due to the fact that some HTML elements don’t have unique identifiers while others share IDs due to being SWA (making it impossible to make targeted blocking always work).
Our users are constantly asking us to still allow them to receive notifications while the social media apps are hidden from their phone.
As an example, they want the instagram app to be hidden from their phone to prevent from habitual scrolling. However, if they did get a message from their friend, they do want to be notified so they can unhide the app & get back to their friend. The same goes for other apps, (facebook, linkedin,....)
Hence, we'd love to know if there's currently any way or work around to do this? if not, can we expect this meaningful feedback to built in screentime sooner than later?
Dear Apple Team,
First things first, our team can't be more appreciative for your hard work to improve screen time day by day so that we all can live a happier and more productive life.
There's minor issue in screen time but that's misleading Apple users, where once they allow permission to restrict usage of their personal social media usage, they get to see the image below.
This terrifies them on what does their family have to do with this or have access to their phone as a grown adult. Therefore, it'd be best if the FamilyControlsAuthenticationUI can be switched to a more personal/relatable if keyword (.individual) is being used, to not misled Apple users.
Daniyal from BeTimeful.com - Making social media less addictive for the 🌎
Dear Apple developers,
First things first, on behalf of everyone, thank you for your immense hard work to make Safari a better browser every day.
As a representative of multiple chrome extension businesses, we can’t wait to get on Safari to delight Apple users with their favourite extensions.
We couldn’t be more happy to hear that xcrun safari-web-extension-converter will be able to convert our chrome extension to Safari for us until we realized that it’s no longer well supported as it keeps on showing that multiple manifest keys won’t be supported by the converter. Hence, we’re curious to know if the converter will be more comprehensive so that more chrome extensions can take the leap to Safari?
Hi there,
Our team can't thank your team enough for your dedication to make the iPhone experience better every single day.
Recently, we've noticed a concerning UX issue that may've slipped which is from now on, users have to turn on two content blockers to do the job of one.
Meaning, not only should they go to setting --> Extension --> to turn on Content blocker but now also setting --> Content blockers --> "All Websites" which makes one question why would you've to give the authorization twice found in two separate places... which naturally leads to people getting lost (https://discussions.apple.com/thread/254687650)
We understand that the second may be for the other browsers accessibility, but if the user is using Safari, shouldn't the first be enough?
We already had the users of our app complain about the navigational complexity of a simple authorization, now they've two face two? We're sure this would be ironed out as we've extreme confidence in Apple's position on UX simplicity.