например, имя пользователя будет передано в полное приложение и представлено в основном действии. Это делается путем помещения этой информации в общие пользовательские настройки по умолчанию в клипе приложения и извлечения этой информации из общих пользовательских настроек по умолчанию в полной версии приложения.
Я создал клип приложения с этими функциями и теперь хочу протестировать переход от клипа приложения к полному приложению.
Я пробовал 3 разных подхода, но ни один из них не позволил мне полностью смоделировать переход от клипа приложения к полному приложению:
- Запуск клипа приложения в Xcode и тестирование с использованием переменной среды _XCAppClipURL. Появился SKOverlay, но на самом деле я не могу открыть магазин приложений.
- Настройка локального интерфейса на моем тестовом устройстве (как описано здесь) также показала SKOverlay, но не позволила мне фактически открыть магазин приложений.
- Тестовый полет: я загрузил сборку в магазин приложений, чтобы использовать тестовый полет, и добавил URL-адрес вызова клипа приложения для внутреннего и внешнего тестирования. При открытии клипа приложения с помощью Test Flight кнопка «Получить полную версию приложения» фактически отправила меня в магазин приложений, но на старую версию приложения. Излишне говорить, что старая версия приложения не имеет отношения к тесту, поскольку в ней нет кода, необходимого для извлечения имени пользователя из общих настроек пользователя по умолчанию.
РЕДАКТИРОВАТЬ: Я использую UserDefaults с группой приложений. Я определил группу приложений с одинаковым именем в разделе «подпись и возможности» как в полной версии приложения, так и в клипе приложения. И добавил следующий код:
В делегате сцены клипа приложения:
let username = "Oded"
guard let sharedUserDefaults = UserDefaults(suiteName: "group.fruitapp.appClipToFullApp") else {
return true
}
if sharedUserDefaults.string(forKey: "username") == nil {
sharedUserDefaults.set(username, forKey: "username")
}
return true
В делегате приложения полной версии:
guard let sharedUserDefaults = UserDefaults(suiteName: "group.fruitapp.appClipToFullApp"),
let username = sharedUserDefaults.url(forKey: "username")
else {
print("Could not find the App Group or the usename from the app clip")
return
}
print("username is \(username)")
//Do more stuff
Подробнее здесь: https://stackoverflow.com/questions/688 ... o-full-app
Мобильная версия