我遇到了 VoiceOver 不支持編碼的輔助功能值(標簽/提示/等)的問題。我已經能夠通過更改捆綁識別符號來復制該問題。我的原始包識別符號與所有 VoiceOver 功能都有問題。如果我將任何內容附加到我的 Bundle Identifier 的末尾,洗掉 iPhone 上的應用程式,清理專案,強制關閉 xCode,單擊專案,讓它構建然后安裝問題就消失了。如果我重命名回原始包識別符號,洗掉 iPhone 上的應用程式,強制關閉 xCode,單擊專案,讓它構建然后安裝問題回傳。我整天都在嘗試這個程序,試圖找出問題所在。包括在強制關閉 xCode 后洗掉派生資料,但它似乎不會影響具有原始 Bundle Identifier 或新 Bundle Identifier 的應用程式。
雖然這個問題會影響整個應用程式,但它在 UITabBarController 上非常明顯。帶有原始捆綁識別符號的應用程式上的旁白在觸摸標簽欄專案時說以下內容
"Home Tab Actions Available" or "Home Tab swipe up or down to select a custom action then double tap to activate".
如果我滑動語音讀取標簽(“主頁”)然后是圖示名稱(如果它存在)(可能是“主頁”圖示)然后是“激活默認值”。如果不存在圖示名稱,則標簽和“激活默認”之間沒有 VoiceOver。
帶有新捆綁識別符號的應用程式上的旁白在觸摸標簽欄專案時說以下內容。根據 Apple 的 UITabBar 檔案 (uikit/uitabbar),我相信這是正確的方法。
"Selected Home Tab 1 of 3"
git 中唯一的區別是 Bundle Identifier。
myname@name-Mac-mini dretauth (appSignIn) $ git diff
diff --git a/dretauth.xcodeproj/project.pbxproj b/dretauth.xcodeproj/project.pbxproj
index 5a02b2a..ab01473 100644
--- a/dretauth.xcodeproj/project.pbxproj
b/dretauth.xcodeproj/project.pbxproj
@@ -2325,7 2325,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.33;
- PRODUCT_BUNDLE_IDENTIFIER = "com.redacted.dretauth";
PRODUCT_BUNDLE_IDENTIFIER = "com.redacted.dretauth.ctest";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -2349,7 2349,7 @@
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.33;
- PRODUCT_BUNDLE_IDENTIFIER = "com.redacted.dretauth";
PRODUCT_BUNDLE_IDENTIFIER = "com.redacted.dretauth.ctest";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
myname@name-Mac-mini dretauth (appSignIn) $
如果我搜索整個專案,唯一具有原始捆綁 ID 的專案是 Build Settings、Info.plist、apple-app-site-association(保存在專案中但僅用于服務器端)和 GoogleService-Info 用于firebase 通知/崩潰分析。
在這一點上,我不確定如何使用原始捆綁識別符號將正確的功能添加到我的應用程式中。應用程式正在生產中,因此更改識別符號是不可能的。謝謝。
uj5u.com熱心網友回復:
我花了幾天的時間把頭押在這個上面。購買了新設備,但問題仍然存在,但沒有轉移我的應用程式或設定。
盡管他們說螢屏識別設定保存在系統級別,但我得到了 Apple Frameworks Engineer 的回答。我的猜測是螢屏識別保存在 iCloud 或其他一些同步位置,因為該設定在新設備安裝上仍然存在。以下是 Apple 的回應,以防有人遇到此問題。 https://developer.apple.com/forums/thread/698009
It sounds to me like you may have inadvertently enabled Screen Recognition for your app. We store this setting by bundle identifier on the system. You can use the rotor (rotate 2 fingers on the screen like you are rotating a dial) to get to Screen Recognition, and then swipe up or down to toggle it on or off. This feature uses machine learning models to attempt to make your app accessible rather than relying on the view hierarchy, which would be why the properties you are setting aren't being respected. If you toggle this off, it'll go back to reading from the view hierarchy.
此設定難以開啟或關閉,僅在 VoiceOver 開啟時在 App 中可用。盡管它是一項輔助功能,但它并沒有說明如何調整該功能,只是一個撥盤在選擇設定后會迅速消失。沒有指示用戶應該向上或向下滑動,向上或向下滑動必須在您拿起用于在表盤上查找設定的兩根手指后一秒鐘內完成。用戶的手指可能會因轉動撥盤而處于獎勵位置,因此可能需要嘗試幾次才能更改設定。無論如何,我希望這可以節省一些人的除錯時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/405823.html
標籤:
