我得到了这个Flutter应用程序,我想加载到我真实的的iPhone 14上。我用M1将手机与我的MacBook Air连接起来,并用Xcode启动了它。但是,如果我运行它与调试模式,我不能打开它时,它没有连接到MacBook。如果我用发布模式运行它,我可以在之后打开它,但有时我只看到一个蓝色屏幕(与我的原色相同的蓝色)和底部导航栏。但是当我关闭应用程序几次并重新打开它时,经过几次尝试,应用程序再次正常显示。
这是我的主.dart文件
import 'package:flutter/material.dart';
import 'package:test/einstellungen.dart';
import 'package:test/favoriten.dart';
import 'package:test/homescreen.dart';
import 'package:test/utils/device_info.dart';
import 'package:test/utils/styles.dart';
// import 'package:test/widgets/favorits_test.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Trompeten Coach Home',
// generelles Styling
theme: ThemeData(
primaryColor: Styles.mainColor, // Hauptfarbe
scaffoldBackgroundColor: Styles.whiteColor, // Hintergrundfarbe
appBarTheme: AppBarTheme(
backgroundColor: Styles.mainColor,
elevation: 0,
toolbarHeight: DeviceInfo.getHeight(0), // Appbar wird eigentlich nicht angezeigt, aber die Farbe an Stellen wo kein Content hin kann schon
)),
home: const Main(), // ruft als Startseite "Main()" auf
);
}
}
// Grundgerüst (Skelett) der App
class Main extends StatefulWidget {
const Main({super.key});
@override
State<Main> createState() => _MainState();
}
class _MainState extends State<Main> {
// Funktion, welche aufgerufen wird, wenn die App gestartet wird
@override
void initState() {
super.initState();
// fügt die Daten im SharedPrefrences in die Liste "favoriten" hinzu
/* setState(() {
getFavorits();
}); */
}
// Liste mit den verschiedenen Seiten (Home, Favoriten und Einstellungen)
int selectedScreen = 0; // Anfangswert ist 0 => HomeScreen
static final List<Widget> screenOptions = <Widget>[
HomeScreen(),
HomeScreen(),
HomeScreen(),
];
// Funktion zum Ändern der aktuellen Seite durch klicken eines Icons in der BottomBar
void onItemTapped(int index) {
setState(() {
selectedScreen = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
// AppBar hinzufügen, um Platz, den man sonst nicht mit dem blauen Balken nicht füllen hätte können
appBar: AppBar(),
body: screenOptions[selectedScreen], // beim Body wird der Screen angezeigt, den man in der BottomBar angeglickt hat
// BottomBar
bottomNavigationBar: BottomNavigationBar(
backgroundColor: Styles.whiteColor,
currentIndex: selectedScreen,
onTap:
onItemTapped, // Wenn man auf ein Icon klickt, wird der Screen gewechselt
showSelectedLabels: false,
showUnselectedLabels: false,
selectedItemColor: Styles.textColor,
unselectedItemColor: Styles.textColor,
type: BottomNavigationBarType.fixed,
// Items / Icons / Content
items: const [
BottomNavigationBarItem(
icon: Icon(Icons.home_outlined),
activeIcon: Icon(Icons.home),
label: "Home"),
BottomNavigationBarItem(
icon: Icon(Icons.favorite_outline),
activeIcon: Icon(Icons.favorite),
label: "Favoriten"),
BottomNavigationBarItem(
icon: Icon(Icons.settings_outlined),
activeIcon: Icon(Icons.settings),
label: "Einstellungen"),
],
),
);
}
}
1条答案
按热度按时间ep6jt1vc1#
你不能打开一个调试应用程序从你的手机没有它被插入到你的机器,这是一个标准的苹果。
如果你在发布模式下构建它,最好的测试方法是在你的设备上(没有插入Mac)使用Transporter应用程序将其上传到AppStore Connect。这将使您的.ipa在TestFlight中可用。
有关该主题的更多信息,请查看此非常详细的答案How do I run/test my Flutter app on a real device?
在任何情况下,您都需要一个开发人员帐户来生成所需的证书。