Compare commits

..

No commits in common. "master" and "zoom_pic" have entirely different histories.

192 changed files with 4066 additions and 5925 deletions

View File

@ -1,3 +0,0 @@
{
"flutter": "3.32.0"
}

View File

@ -5,11 +5,9 @@
*.swp *.swp
.DS_Store .DS_Store
.atom/ .atom/
.build/
.buildlog/ .buildlog/
.history .history
.svn/ .svn/
.swiftpm/
migrate_working_dir/ migrate_working_dir/
# IntelliJ related # IntelliJ related
@ -44,6 +42,3 @@ app.*.map.json
/android/app/debug /android/app/debug
/android/app/profile /android/app/profile
/android/app/release /android/app/release
# FVM Version Cache
.fvm/

View File

@ -1,3 +0,0 @@
{
"dart.flutterSdkPath": ".fvm/versions/3.32.0"
}

View File

@ -35,11 +35,6 @@ android {
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
}
kotlinOptions {
jvmTarget = "1.8"
} }
signingConfigs { signingConfigs {
@ -85,14 +80,8 @@ android {
shrinkResources false // shrinkResources false //
} }
} }
} }
flutter { flutter {
source = "../.." source = "../.."
} }
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' //
}

View File

@ -4,7 +4,6 @@
android:name="${applicationName}" android:name="${applicationName}"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:enableOnBackInvokedCallback="true"> android:enableOnBackInvokedCallback="true">
<!-- windowTranslucentStatus 设置顶部状态栏使用-->
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
@ -13,7 +12,6 @@
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:windowTranslucentStatus="true"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as <!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user the Android process has started. This theme is visible to the user
@ -40,7 +38,7 @@
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2"/> android:value="2"/>
<!-- Provider --> <!-- Provider -->
<!-- <provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileProvider" android:authorities="${applicationId}.fileProvider"
android:exported="false" android:exported="false"
@ -48,16 +46,6 @@
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/> android:resource="@xml/file_paths"/>
</provider> -->
<!-- ✅ FileProvider 配置 - 这是必需的! -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider> </provider>
</application> </application>
<!-- 访问电话状态 --> <!-- 访问电话状态 -->
@ -87,21 +75,25 @@
<!-- 屏幕常亮权限 --> <!-- 屏幕常亮权限 -->
<uses-permission <uses-permission
android:name="android.permission.WAKE_LOCK"/> android:name="android.permission.WAKE_LOCK"/>
<!-- <uses-permission <uses-permission
android:name="android.permission.CAMERA"/> --> android:name="android.permission.CAMERA"/>
<!-- Permissions options for the `access notification policy` group --> <!-- Permissions options for the `access notification policy` group -->
<uses-permission <uses-permission
android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/> android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<!-- Permissions options for the `notification` group --> <!-- Permissions options for the `notification` group -->
<uses-permission <uses-permission
android:name="android.permission.POST_NOTIFICATIONS"/> android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- 注释掉文本处理权限,避免不必要的剪切板访问 --> <!-- Required to query activities that can process text, see:
<!-- <queries> https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent> <intent>
<action <action
android:name="android.intent.action.PROCESS_TEXT"/> android:name="android.intent.action.PROCESS_TEXT"/>
<data <data
android:mimeType="text/plain"/> android:mimeType="text/plain"/>
</intent> </intent>
</queries> --> </queries>
</manifest> </manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 KiB

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 KiB

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -3,8 +3,8 @@
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on --> <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar"> <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">true</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowSplashScreenBackground">#FFFFFF</item> <item name="android:windowSplashScreenBackground">#FFFFFF</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item> <item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>

View File

@ -6,8 +6,8 @@
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">true</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.

View File

@ -3,8 +3,8 @@
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off --> <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar"> <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">true</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:windowSplashScreenBackground">#FFFFFF</item> <item name="android:windowSplashScreenBackground">#FFFFFF</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item> <item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>

View File

@ -6,8 +6,8 @@
the Flutter engine draws its first frame --> the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">true</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.

View File

@ -1,17 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <paths>
<!-- 外部存储 -->
<external-path name="external_files" path="." />
<!-- 应用内部存储 -->
<files-path name="files" path="." />
<!-- 缓存目录 -->
<cache-path name="cache" path="." />
<!-- 外部缓存 -->
<external-cache-path name="external_cache" path="." />
<!-- 下载目录 -->
<external-path name="downloads" path="Download/" />
<!-- 如果你已有其他配置,请保留它们 -->
<external-path path="Android/data/com.yuanxuan.making_school_asignment_app/" name="files_root" /> <external-path path="Android/data/com.yuanxuan.making_school_asignment_app/" name="files_root" />
<external-path path="." name="external_storage_root" /> <external-path path="." name="external_storage_root" />
</paths> </paths>

View File

@ -30,8 +30,8 @@
<!-- 屏幕常亮权限 --> <!-- 屏幕常亮权限 -->
<uses-permission <uses-permission
android:name="android.permission.WAKE_LOCK"/> android:name="android.permission.WAKE_LOCK"/>
<!-- <uses-permission <uses-permission
android:name="android.permission.CAMERA"/> --> android:name="android.permission.CAMERA"/>
<!-- Permissions options for the `access notification policy` group --> <!-- Permissions options for the `access notification policy` group -->
<uses-permission <uses-permission
android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/> android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>

View File

@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.10.2-all.zip distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.6.3-all.zip

View File

@ -18,8 +18,8 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.8.0" apply false id "com.android.application" version "7.3.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false id "org.jetbrains.kotlin.android" version "1.7.10" apply false
} }
include ":app" include ":app"

View File

@ -29,7 +29,7 @@
type="application/octet-stream" /> type="application/octet-stream" />
</item> --> </item> -->
<item> <item>
<title>Version 1.0.7+8</title> <title>Version 1.0.3+4</title>
#发行说明-读取html方式(2选1) #发行说明-读取html方式(2选1)
<!-- <sparkle:releaseNotesLink> <!-- <sparkle:releaseNotesLink>
https://your_domain/your_path/release_notes.html https://your_domain/your_path/release_notes.html
@ -39,15 +39,16 @@
<![CDATA[ <![CDATA[
<ul> <ul>
<li>1、修复已知BUG</li> <li>1、修复已知BUG</li>
<li>2、添加缩放布局和批阅书写</li> <li>2、优化操作布局</li>
</ul> </ul>
]]> ]]>
</description> </description>
<pubDate>Tue, 30 Sep 2025 14:09:13 +0800</pubDate> <pubDate>Fri, 14 Mar 2025 12:00:00 +0800</pubDate>
#你更新程序的地址 #你更新程序的地址
<enclosure url="https://dpc-job-oss.23544.com/infra-app/making_school_asignment_app/1.0.7/3/making_school_asignment_app-1.0.7+8-windows-setup.exe" <enclosure url="https://dpc-job-oss.23544.com/infra-app/making_school_asignment_app/1.0.3/3/making_school_asignment_app-1.0.3+4-windows-setup.exe"
sparkle:dsaSignature="MEUCIQCwWC4fKrn/dfdH6uzX4Sssv7G6XVgvwjQLklrTM6+cBQIgZDY4INHcwuxrsIREuPQeTvQL4j0mvF9qPQfppjRSgsg=" length="0" sparkle:dsaSignature="MEYCIQCuU0BodcdWrF+WoJrWRpY8P1pfK+dKkvrl3ZJ5KxnDdAIhAIWqp7VBNO9IaKFj2ypQ+s7DWurBUSaf6MTvexMmuvX+"
sparkle:version="1.0.7+8" length="0"
sparkle:version="1.0.3+4"
sparkle:os="windows" sparkle:os="windows"
type="application/octet-stream" /> type="application/octet-stream" />
</item> </item>

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

View File

@ -1,109 +0,0 @@
@echo off
SETLOCAL EnableDelayedExpansion
:: 设置 UTF-8 代码页以支持中文显示
chcp 65001 > nul
:: 获取项目根目录
for %%I in ("%~dp0.") do set "PROJECT_DIR=%%~fI"
:: 1. 强制终止所有Java进程Gradle相关
echo Terminating processes...
taskkill /f /im java.exe 2>nul
taskkill /f /im gradlew.exe 2>nul
timeout /t 2 /nobreak >nul
:: 修复后的Flutter构建脚本
echo Running flutter clean...
call flutter clean
if !ERRORLEVEL! neq 0 (
echo flutter clean failed with error: !ERRORLEVEL!
pause
exit /b 1
)
:: 3. 强制删除构建目录(带重试机制)
echo Removing residual files
call :ForceDelete "build"
call :ForceDelete ".dart_tool"
call :ForceDelete "pubspec.lock"
echo Running flutter pub get...
call flutter pub get
if !ERRORLEVEL! neq 0 (
echo flutter pub get failed with error: !ERRORLEVEL!
pause
exit /b 1
)
echo Running build_runner...
call flutter packages pub run build_runner build --delete-conflicting-outputs
if !ERRORLEVEL! neq 0 (
echo build_runner failed with error: !ERRORLEVEL!
pause
exit /b 1
)
echo Building release APK...
call flutter build apk --release
if !ERRORLEVEL! neq 0 (
echo APK build failed with error: !ERRORLEVEL!
pause
exit /b 1
)
:: 新增打开APK所在文件夹
echo Opening APK directory
if exist "build\app\outputs\flutter-apk\" (
explorer "build\app\outputs\flutter-apk\"
) else (
echo APK directory does not exist
)
echo.
echo All steps completed successfully!
echo APK file generated at: %PROJECT_DIR%\build\app\outputs\flutter-apk\
echo.
timeout /t 3 /nobreak >nul
exit /b 0
:: 函数区 -------------------------------------------------
:ForceDelete
setlocal
set "target=%~1"
set "max_retries=3"
set "retry_delay=1"
:: 检查目标是否存在
if not exist "%target%" (
endlocal
goto :eof
)
:: 尝试多次删除
for /l %%i in (1,1,%max_retries%) do (
echo Attempting to delete %target% (try %%i of %max_retries%)
:: 先尝试删除文件
del /f /q /s "%target%\*" 2>nul
:: 再尝试删除目录
rmdir /s /q "%target%" 2>nul
:: 检查是否删除成功
if not exist "%target%" (
echo Successfully deleted %target%
endlocal
goto :eof
)
:: 如果未成功,等待后重试
if %%i lss %max_retries% (
timeout /t %retry_delay% /nobreak >nul
set /a retry_delay*=2 :: 指数退避策略
)
)
:: 如果所有尝试都失败
echo Warning: Could not completely delete %target%, some files may be in use
endlocal
goto :eof

View File

@ -1,159 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# Ensure UTF-8 locale for macOS terminals
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# Resolve project directory (script location)
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo "Project dir: $PROJECT_DIR"
# To save credentials in macOS Keychain for non-interactive uploads, run:
# security add-generic-password -s "TransporterCredentials" -w "you@example.com:app-specific-password" -a transporter -U
# The script will read that item and expect the stored password string in the form: "APPLE_ID:APPLE_PASSWORD"
force_delete() {
local target="$1"
local max_retries=3
local retry_delay=1
if [ ! -e "$PROJECT_DIR/$target" ]; then
return 0
fi
for i in $(seq 1 $max_retries); do
echo "Attempting to delete $target (try $i of $max_retries)"
rm -rf "$PROJECT_DIR/$target" 2>/dev/null || true
if [ ! -e "$PROJECT_DIR/$target" ]; then
echo "Successfully deleted $target"
return 0
fi
if [ "$i" -lt "$max_retries" ]; then
sleep $retry_delay
retry_delay=$((retry_delay * 2))
fi
done
echo "Warning: Could not completely delete $target, some files may be in use"
return 1
}
cd "$PROJECT_DIR"
echo "Running flutter clean..."
if ! flutter clean; then
echo "flutter clean failed"
exit 1
fi
echo "Removing residual files"
force_delete build || true
force_delete .dart_tool || true
force_delete pubspec.lock || true
echo "Running flutter pub get..."
if ! flutter pub get; then
echo "flutter pub get failed"
exit 1
fi
echo "Running build_runner (if present)..."
if ! flutter packages pub run build_runner build --delete-conflicting-outputs; then
echo "build_runner failed or not present — continuing"
fi
echo "Building iOS IPA (verbose)..."
if ! flutter build ipa --release --verbose; then
echo "IPA build failed"
exit 1
fi
# Try to find the generated .ipa (searching under build/)
IPA_PATH="$(find "$PROJECT_DIR/build" -type f -name '*.ipa' -print -quit || true)"
if [ -z "$IPA_PATH" ]; then
echo "No .ipa found in build output"
echo "Build finished but no IPA to upload. Exiting."
exit 0
fi
echo "Found IPA: $IPA_PATH"
# Upload via Transporter (if installed). Prefer environment vars APPLE_ID and APPLE_PASSWORD (app-specific password).
ITMS_TRANSPORTER="/Applications/Transporter.app/Contents/itms/bin/iTMSTransporter"
if [ -x "$ITMS_TRANSPORTER" ]; then
echo "Using Transporter at $ITMS_TRANSPORTER"
# Read credentials from env, then try macOS Keychain, otherwise prompt
if [ -z "${APPLE_ID:-}" ] || [ -z "${APPLE_PASSWORD:-}" ]; then
# Try to read combined credentials from Keychain (service: TransporterCredentials)
if command -v security >/dev/null 2>&1; then
KC_PAIR="$(security find-generic-password -s "TransporterCredentials" -w 2>/dev/null || true)"
if [ -n "$KC_PAIR" ]; then
# Expect stored value in form: appleid:app-specific-password
APPLE_ID="${KC_PAIR%%:*}"
APPLE_PASSWORD="${KC_PAIR#*:}"
if [ -n "${APPLE_ID}" ] && [ -n "${APPLE_PASSWORD}" ]; then
echo "Credentials loaded from Keychain (service: TransporterCredentials)."
else
# clear if parsing failed
APPLE_ID=""
APPLE_PASSWORD=""
fi
fi
fi
if [ -z "${APPLE_ID:-}" ] || [ -z "${APPLE_PASSWORD:-}" ]; then
echo "Provide App Store Connect credentials for upload. You can set APPLE_ID and APPLE_PASSWORD (app-specific password) in the environment or save a keychain item named 'TransporterCredentials' to avoid prompts."
read -p "Apple ID (email): " APPLE_ID
read -s -p "App-specific password (will not echo): " APPLE_PASSWORD
echo
fi
fi
echo "Uploading $IPA_PATH to App Store Connect (this may take a while)..."
# Try transporter with a small retry loop
UPLOAD_EXIT=0
MAX_UPLOAD_TRIES=2
for try in $(seq 1 $MAX_UPLOAD_TRIES); do
echo "Transporter upload attempt $try of $MAX_UPLOAD_TRIES..."
if "$ITMS_TRANSPORTER" -m upload -u "$APPLE_ID" -p "$APPLE_PASSWORD" -f "$IPA_PATH"; then
echo "Upload succeeded"
UPLOAD_EXIT=0
break
else
UPLOAD_EXIT=$?
echo "Transporter upload attempt $try failed (exit $UPLOAD_EXIT)"
# small delay before retry
sleep $((try * 2))
fi
done
if [ $UPLOAD_EXIT -ne 0 ]; then
echo "Transporter upload failed after $MAX_UPLOAD_TRIES attempts (exit $UPLOAD_EXIT)."
echo "Opening Transporter app so you can upload the IPA manually..."
# Try to open Transporter GUI with the IPA as argument (may import the file)
if command -v open >/dev/null 2>&1; then
if open -a Transporter "$IPA_PATH" 2>/dev/null; then
echo "Transporter app opened. Please complete the upload there."
else
echo "Failed to open Transporter with the IPA. Opening Transporter app without file..."
open -a Transporter || true
echo "Transporter opened. Please drag the IPA ($IPA_PATH) into the app to upload."
fi
else
echo "Cannot open Transporter GUI: 'open' command not found. Please upload IPA manually: $IPA_PATH"
fi
# Do not exit with error here so the script can finish and user can manually complete upload
fi
else
echo "Transporter not found at $ITMS_TRANSPORTER. Please install Transporter app from the Mac App Store or upload the IPA manually."
echo "IPA path: $IPA_PATH"
fi
echo "All steps completed successfully!"
echo "IPA: $IPA_PATH"
exit 0

View File

@ -5,15 +5,12 @@ flutter_native_splash:
# 如需恢复默认的白屏,执行如下命令 # 如需恢复默认的白屏,执行如下命令
# flutter pub run flutter_native_splash:remove # flutter pub run flutter_native_splash:remove
# 设置闪屏页的默认态logo或背景图片路径 # 设置闪屏页的默认态logo或背景图片路径
background_image: assets/images/splash_native.png
# 全屏模式
fullscreen: true
android_12:
color: "#FFFFFF" color: "#FFFFFF"
image: assets/images/logo_splash.png image_ios: assets/images/splash_native.png
background_image_android: assets/images/splash_native.png
android_12:
image: assets/images/splash2.png
android: true android: true
ios: true ios: true
# android_gravity: clip_vertical android_gravity: fill
# ios_content_mode: scaleToFill ios_content_mode: scaleToFill

View File

@ -21,6 +21,6 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.0</string> <string>1.0</string>
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>13.0</string> <string>12.0</string>
</dict> </dict>
</plist> </plist>

View File

@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project # Uncomment this line to define a global platform for your project
# platform :ios, '13.0' # platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@ -477,10 +477,9 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES; VALIDATE_PRODUCT = YES;
@ -496,7 +495,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 6;
DEVELOPMENT_TEAM = Z778GC45N8; DEVELOPMENT_TEAM = Z778GC45N8;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -504,7 +503,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MARKETING_VERSION = 3;
PRODUCT_BUNDLE_IDENTIFIER = "com.yuanxuan.makingS--buneng--choolAsignmentApp"; PRODUCT_BUNDLE_IDENTIFIER = "com.yuanxuan.makingS--buneng--choolAsignmentApp";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@ -525,7 +524,7 @@
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp.RunnerTests;
@ -543,7 +542,7 @@
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = Z778GC45N8; DEVELOPMENT_TEAM = Z778GC45N8;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
@ -560,7 +559,7 @@
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp.RunnerTests;
@ -620,11 +619,10 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
}; };
name = Debug; name = Debug;
@ -673,10 +671,9 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_OPTIMIZATION_LEVEL = "-O";
@ -692,7 +689,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 6;
DEVELOPMENT_TEAM = Z778GC45N8; DEVELOPMENT_TEAM = Z778GC45N8;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -700,7 +697,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MARKETING_VERSION = 3;
PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp; PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@ -722,7 +719,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/RunnerRelease.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/RunnerRelease.entitlements;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 6;
DEVELOPMENT_TEAM = Z778GC45N8; DEVELOPMENT_TEAM = Z778GC45N8;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@ -730,7 +727,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MARKETING_VERSION = 3;
PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp; PRODUCT_BUNDLE_IDENTIFIER = com.yuanxuan.makingSchoolAsignmentApp;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";

View File

@ -26,7 +26,6 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
@ -55,13 +54,11 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES" debugDocumentVersioning = "YES"
debugServiceExtension = "internal" debugServiceExtension = "internal"
enableGPUValidationMode = "1"
allowLocationSimulation = "YES"> allowLocationSimulation = "YES">
<BuildableProductRunnable <BuildableProductRunnable
runnableDebuggingMode = "0"> runnableDebuggingMode = "0">

View File

@ -1,7 +1,7 @@
import Flutter import Flutter
import UIKit import UIKit
@main @UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate { @objc class AppDelegate: FlutterAppDelegate {
override func application( override func application(
_ application: UIApplication, _ application: UIApplication,

View File

@ -1,158 +1,122 @@
{ {
"images": [ "images": [
{ {
"size": "20x20", "filename": "Icon-App-20x20@2x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-20@2x.png", "scale": "2x",
"scale": "2x" "size": "20x20"
}, },
{ {
"size": "20x20", "filename": "Icon-App-20x20@3x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-20@3x.png", "scale": "3x",
"scale": "3x" "size": "20x20"
}, },
{ {
"size": "29x29", "filename": "Icon-App-29x29@1x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-29.png", "scale": "1x",
"scale": "1x" "size": "29x29"
}, },
{ {
"size": "29x29", "filename": "Icon-App-29x29@2x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-29@2x.png", "scale": "2x",
"scale": "2x" "size": "29x29"
}, },
{ {
"size": "29x29", "filename": "Icon-App-29x29@3x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-29@3x.png", "scale": "3x",
"scale": "3x" "size": "29x29"
}, },
{ {
"size": "40x40", "filename": "Icon-App-40x40@2x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-40@2x.png", "scale": "2x",
"scale": "2x" "size": "40x40"
}, },
{ {
"size": "40x40", "filename": "Icon-App-40x40@3x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-40@3x.png", "scale": "3x",
"scale": "3x" "size": "40x40"
}, },
{ {
"size": "57x57", "filename": "Icon-App-60x60@2x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-57.png", "scale": "2x",
"scale": "1x" "size": "60x60"
}, },
{ {
"size": "57x57", "filename": "Icon-App-60x60@3x.png",
"idiom": "iphone", "idiom": "iphone",
"filename": "icon-57@2x.png", "scale": "3x",
"scale": "2x" "size": "60x60"
}, },
{ {
"size": "60x60", "filename": "Icon-App-20x20@1x.png",
"idiom": "iphone",
"filename": "icon-60@2x.png",
"scale": "2x"
},
{
"size": "60x60",
"idiom": "iphone",
"filename": "icon-60@3x.png",
"scale": "3x"
},
{
"size": "20x20",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-20-ipad.png", "scale": "1x",
"scale": "1x" "size": "20x20"
}, },
{ {
"size": "20x20", "filename": "Icon-App-20x20@2x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-20@2x-ipad.png", "scale": "2x",
"scale": "2x" "size": "20x20"
}, },
{ {
"size": "29x29", "filename": "Icon-App-29x29@1x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-29-ipad.png", "scale": "1x",
"scale": "1x" "size": "29x29"
}, },
{ {
"size": "29x29", "filename": "Icon-App-29x29@2x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-29@2x-ipad.png", "scale": "2x",
"scale": "2x" "size": "29x29"
}, },
{ {
"size": "40x40", "filename": "Icon-App-40x40@1x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-40.png", "scale": "1x",
"scale": "1x" "size": "40x40"
}, },
{ {
"size": "40x40", "filename": "Icon-App-40x40@2x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-40@2x.png", "scale": "2x",
"scale": "2x" "size": "40x40"
}, },
{ {
"size": "50x50", "filename": "Icon-App-76x76@1x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-50.png", "scale": "1x",
"scale": "1x" "size": "76x76"
}, },
{ {
"size": "50x50", "filename": "Icon-App-76x76@2x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-50@2x.png", "scale": "2x",
"scale": "2x" "size": "76x76"
}, },
{ {
"size": "72x72", "filename": "Icon-App-83.5x83.5@2x.png",
"idiom": "ipad", "idiom": "ipad",
"filename": "icon-72.png", "scale": "2x",
"scale": "1x" "size": "83.5x83.5"
}, },
{ {
"size": "72x72", "filename": "Icon-App-1024x1024@1x.png",
"idiom": "ipad",
"filename": "icon-72@2x.png",
"scale": "2x"
},
{
"size": "76x76",
"idiom": "ipad",
"filename": "icon-76.png",
"scale": "1x"
},
{
"size": "76x76",
"idiom": "ipad",
"filename": "icon-76@2x.png",
"scale": "2x"
},
{
"size": "83.5x83.5",
"idiom": "ipad",
"filename": "icon-83.5@2x.png",
"scale": "2x"
},
{
"size": "1024x1024",
"idiom": "ios-marketing", "idiom": "ios-marketing",
"filename": "icon-1024.png", "scale": "1x",
"scale": "1x" "size": "1024x1024"
} }
], ],
"info": { "info": {
"version": 1, "author": "icons_launcher",
"author": "icon.wuruihong.com" "version": 1
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Some files were not shown because too many files have changed in this diff Show More