dart Flutter应用程序在我的iPhone 14上的发布模式下无法正常显示

bvhaajcl  于 2023-06-19  发布在  Flutter
关注(0)|答案(1)|浏览(154)

我得到了这个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"),
        ],
      ),
    );
  }
}
ep6jt1vc

ep6jt1vc1#

你不能打开一个调试应用程序从你的手机没有它被插入到你的机器,这是一个标准的苹果。
如果你在发布模式下构建它,最好的测试方法是在你的设备上(没有插入Mac)使用Transporter应用程序将其上传到AppStore Connect。这将使您的.ipa在TestFlight中可用。
有关该主题的更多信息,请查看此非常详细的答案How do I run/test my Flutter app on a real device?
在任何情况下,您都需要一个开发人员帐户来生成所需的证书。

相关问题