[{"data":1,"prerenderedAt":1678},["ShallowReactive",2],{"page-en-\u002Fbuild-macos":3},{"id":4,"title":5,"body":6,"description":16,"draft":1670,"extension":1671,"hero":1672,"meta":1673,"navigation":438,"path":1674,"seo":1675,"stem":1676,"tags":1672,"updatedAt":1672,"__hash__":1677},"content_en\u002Fbuild-macos.md","Build Drop Compress Image for macOS",{"type":7,"value":8,"toc":1619},"minimark",[9,13,17,22,25,38,42,54,76,84,89,92,104,107,115,119,122,126,129,155,159,162,190,197,201,213,217,220,224,254,257,261,273,277,296,304,308,311,315,330,334,353,357,360,364,381,385,397,401,404,408,502,506,509,526,529,693,696,744,747,770,774,777,781,802,806,823,827,849,853,856,873,876,893,897,901,908,953,957,964,1004,1008,1011,1116,1120,1124,1307,1311,1314,1339,1343,1346,1383,1386,1390,1393,1397,1400,1422,1427,1438,1443,1448,1452,1455,1460,1486,1490,1512,1515,1524,1528,1548,1552,1605,1609,1615],[10,11,5],"h1",{"id":12},"build-drop-compress-image-for-macos",[14,15,16],"p",{},"This guide walks you through setting up the development environment and building Drop Compress Image on macOS systems.",[18,19,21],"h2",{"id":20},"prerequisites","Prerequisites",[14,23,24],{},"Before you begin, make sure you have:",[26,27,28,32,35],"ul",{},[29,30,31],"li",{},"macOS 10.15 (Catalina) or later",[29,33,34],{},"Administrator privileges for installing software",[29,36,37],{},"Basic familiarity with Terminal commands",[18,39,41],{"id":40},"step-1-install-xcode-command-line-tools","Step 1: Install Xcode Command Line Tools",[14,43,44,45,49,50,53],{},"First, install the Xcode Command Line Tools which provide essential development tools including ",[46,47,48],"code",{},"clang"," and ",[46,51,52],{},"make",":",[55,56,61],"pre",{"className":57,"code":58,"language":59,"meta":60,"style":60},"language-bash shiki shiki-themes github-light github-dark","xcode-select --install\n","bash","",[46,62,63],{"__ignoreMap":60},[64,65,68,72],"span",{"class":66,"line":67},"line",1,[64,69,71],{"class":70},"sScJk","xcode-select",[64,73,75],{"class":74},"sj4cs"," --install\n",[14,77,78,79,83],{},"This will open a dialog asking if you want to install the command line developer tools. Click ",[80,81,82],"strong",{},"Install"," and wait for the installation to complete.",[85,86,88],"h3",{"id":87},"verify-installation","Verify Installation",[14,90,91],{},"Check that the tools are installed correctly:",[55,93,95],{"className":57,"code":94,"language":59,"meta":60,"style":60},"clang --version\n",[46,96,97],{"__ignoreMap":60},[64,98,99,101],{"class":66,"line":67},[64,100,48],{"class":70},[64,102,103],{"class":74}," --version\n",[14,105,106],{},"You should see output similar to:",[55,108,113],{"className":109,"code":111,"language":112,"meta":60},[110],"language-text","Apple clang version 15.0.0 (clang-1500.0.40.1)\nTarget: arm64-apple-darwin23.0.0\nThread model: posix\n","text",[46,114,111],{"__ignoreMap":60},[18,116,118],{"id":117},"step-2-install-homebrew","Step 2: Install Homebrew",[14,120,121],{},"Homebrew is a package manager for macOS that makes it easy to install development tools and libraries.",[85,123,125],{"id":124},"install-homebrew","Install Homebrew",[14,127,128],{},"Open Terminal and run:",[55,130,132],{"className":57,"code":131,"language":59,"meta":60,"style":60},"\u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002FHEAD\u002Finstall.sh)\"\n",[46,133,134],{"__ignoreMap":60},[64,135,136,139,142,146,149,152],{"class":66,"line":67},[64,137,138],{"class":70},"\u002Fbin\u002Fbash",[64,140,141],{"class":74}," -c",[64,143,145],{"class":144},"sZZnC"," \"$(",[64,147,148],{"class":70},"curl",[64,150,151],{"class":74}," -fsSL",[64,153,154],{"class":144}," https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002FHEAD\u002Finstall.sh)\"\n",[85,156,158],{"id":157},"add-homebrew-to-path","Add Homebrew to PATH",[14,160,161],{},"For Apple Silicon Macs (M1\u002FM2\u002FM3), add Homebrew to your PATH:",[55,163,165],{"className":57,"code":164,"language":59,"meta":60,"style":60},"echo 'eval \"$(\u002Fopt\u002Fhomebrew\u002Fbin\u002Fbrew shellenv)\"' >> ~\u002F.zshrc\nsource ~\u002F.zshrc\n",[46,166,167,182],{"__ignoreMap":60},[64,168,169,172,175,179],{"class":66,"line":67},[64,170,171],{"class":74},"echo",[64,173,174],{"class":144}," 'eval \"$(\u002Fopt\u002Fhomebrew\u002Fbin\u002Fbrew shellenv)\"'",[64,176,178],{"class":177},"szBVR"," >>",[64,180,181],{"class":144}," ~\u002F.zshrc\n",[64,183,185,188],{"class":66,"line":184},2,[64,186,187],{"class":74},"source",[64,189,181],{"class":144},[14,191,192,193,196],{},"For Intel Macs, Homebrew is installed to ",[46,194,195],{},"\u002Fusr\u002Flocal"," and should already be in your PATH.",[85,198,200],{"id":199},"verify-homebrew-installation","Verify Homebrew Installation",[55,202,204],{"className":57,"code":203,"language":59,"meta":60,"style":60},"brew --version\n",[46,205,206],{"__ignoreMap":60},[64,207,208,211],{"class":66,"line":67},[64,209,210],{"class":70},"brew",[64,212,103],{"class":74},[18,214,216],{"id":215},"step-3-install-rust","Step 3: Install Rust",[14,218,219],{},"Drop Compress Image is built with Rust, so you'll need to install the Rust toolchain.",[85,221,223],{"id":222},"install-rust-via-rustup","Install Rust via rustup",[55,225,227],{"className":57,"code":226,"language":59,"meta":60,"style":60},"curl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\n",[46,228,229],{"__ignoreMap":60},[64,230,231,233,236,239,242,245,248,251],{"class":66,"line":67},[64,232,148],{"class":70},[64,234,235],{"class":74}," --proto",[64,237,238],{"class":144}," '=https'",[64,240,241],{"class":74}," --tlsv1.2",[64,243,244],{"class":74}," -sSf",[64,246,247],{"class":144}," https:\u002F\u002Fsh.rustup.rs",[64,249,250],{"class":177}," |",[64,252,253],{"class":70}," sh\n",[14,255,256],{},"When prompted, choose option 1 (default installation).",[85,258,260],{"id":259},"configure-your-shell","Configure Your Shell",[55,262,264],{"className":57,"code":263,"language":59,"meta":60,"style":60},"source ~\u002F.cargo\u002Fenv\n",[46,265,266],{"__ignoreMap":60},[64,267,268,270],{"class":66,"line":67},[64,269,187],{"class":74},[64,271,272],{"class":144}," ~\u002F.cargo\u002Fenv\n",[85,274,276],{"id":275},"verify-rust-installation","Verify Rust Installation",[55,278,280],{"className":57,"code":279,"language":59,"meta":60,"style":60},"rustc --version\ncargo --version\n",[46,281,282,289],{"__ignoreMap":60},[64,283,284,287],{"class":66,"line":67},[64,285,286],{"class":70},"rustc",[64,288,103],{"class":74},[64,290,291,294],{"class":66,"line":184},[64,292,293],{"class":70},"cargo",[64,295,103],{"class":74},[14,297,298,299,49,301,303],{},"You should see version information for both ",[46,300,286],{},[46,302,293],{},".",[18,305,307],{"id":306},"step-4-install-nodejs","Step 4: Install Node.js",[14,309,310],{},"The frontend of Drop Compress Image is built with Vue.js and requires Node.js.",[85,312,314],{"id":313},"install-nodejs-via-homebrew","Install Node.js via Homebrew",[55,316,318],{"className":57,"code":317,"language":59,"meta":60,"style":60},"brew install node\n",[46,319,320],{"__ignoreMap":60},[64,321,322,324,327],{"class":66,"line":67},[64,323,210],{"class":70},[64,325,326],{"class":144}," install",[64,328,329],{"class":144}," node\n",[85,331,333],{"id":332},"verify-nodejs-installation","Verify Node.js Installation",[55,335,337],{"className":57,"code":336,"language":59,"meta":60,"style":60},"node --version\nnpm --version\n",[46,338,339,346],{"__ignoreMap":60},[64,340,341,344],{"class":66,"line":67},[64,342,343],{"class":70},"node",[64,345,103],{"class":74},[64,347,348,351],{"class":66,"line":184},[64,349,350],{"class":70},"npm",[64,352,103],{"class":74},[18,354,356],{"id":355},"step-5-install-pnpm","Step 5: Install pnpm",[14,358,359],{},"Drop Compress Image uses pnpm as its package manager for better performance and disk efficiency.",[85,361,363],{"id":362},"install-pnpm","Install pnpm",[55,365,367],{"className":57,"code":366,"language":59,"meta":60,"style":60},"npm install -g pnpm\n",[46,368,369],{"__ignoreMap":60},[64,370,371,373,375,378],{"class":66,"line":67},[64,372,350],{"class":70},[64,374,326],{"class":144},[64,376,377],{"class":74}," -g",[64,379,380],{"class":144}," pnpm\n",[85,382,384],{"id":383},"verify-pnpm-installation","Verify pnpm Installation",[55,386,388],{"className":57,"code":387,"language":59,"meta":60,"style":60},"pnpm --version\n",[46,389,390],{"__ignoreMap":60},[64,391,392,395],{"class":66,"line":67},[64,393,394],{"class":70},"pnpm",[64,396,103],{"class":74},[18,398,400],{"id":399},"step-6-set-up-vcpkg-and-install-dependencies","Step 6: Set Up vcpkg and Install Dependencies",[14,402,403],{},"This project uses vcpkg to manage C\u002FC++ image processing libraries (libaom, libavif, libjxl, etc.).",[85,405,407],{"id":406},"install-vcpkg","Install vcpkg",[55,409,411],{"className":57,"code":410,"language":59,"meta":60,"style":60},"# Clone vcpkg\ngit clone https:\u002F\u002Fgithub.com\u002FMicrosoft\u002Fvcpkg.git ~\u002FDeveloper\u002Fvcpkg\n\n# Bootstrap vcpkg\ncd ~\u002FDeveloper\u002Fvcpkg\n.\u002Fbootstrap-vcpkg.sh\n\n# Set environment variables (add to ~\u002F.zshrc)\necho 'export VCPKG_ROOT=\"$HOME\u002FDeveloper\u002Fvcpkg\"' >> ~\u002F.zshrc\necho 'export PATH=\"$VCPKG_ROOT:$PATH\"' >> ~\u002F.zshrc\nsource ~\u002F.zshrc\n",[46,412,413,419,433,440,446,454,460,465,471,483,495],{"__ignoreMap":60},[64,414,415],{"class":66,"line":67},[64,416,418],{"class":417},"sJ8bj","# Clone vcpkg\n",[64,420,421,424,427,430],{"class":66,"line":184},[64,422,423],{"class":70},"git",[64,425,426],{"class":144}," clone",[64,428,429],{"class":144}," https:\u002F\u002Fgithub.com\u002FMicrosoft\u002Fvcpkg.git",[64,431,432],{"class":144}," ~\u002FDeveloper\u002Fvcpkg\n",[64,434,436],{"class":66,"line":435},3,[64,437,439],{"emptyLinePlaceholder":438},true,"\n",[64,441,443],{"class":66,"line":442},4,[64,444,445],{"class":417},"# Bootstrap vcpkg\n",[64,447,449,452],{"class":66,"line":448},5,[64,450,451],{"class":74},"cd",[64,453,432],{"class":144},[64,455,457],{"class":66,"line":456},6,[64,458,459],{"class":70},".\u002Fbootstrap-vcpkg.sh\n",[64,461,463],{"class":66,"line":462},7,[64,464,439],{"emptyLinePlaceholder":438},[64,466,468],{"class":66,"line":467},8,[64,469,470],{"class":417},"# Set environment variables (add to ~\u002F.zshrc)\n",[64,472,474,476,479,481],{"class":66,"line":473},9,[64,475,171],{"class":74},[64,477,478],{"class":144}," 'export VCPKG_ROOT=\"$HOME\u002FDeveloper\u002Fvcpkg\"'",[64,480,178],{"class":177},[64,482,181],{"class":144},[64,484,486,488,491,493],{"class":66,"line":485},10,[64,487,171],{"class":74},[64,489,490],{"class":144}," 'export PATH=\"$VCPKG_ROOT:$PATH\"'",[64,492,178],{"class":177},[64,494,181],{"class":144},[64,496,498,500],{"class":66,"line":497},11,[64,499,187],{"class":74},[64,501,181],{"class":144},[85,503,505],{"id":504},"install-dependencies","Install Dependencies",[14,507,508],{},"Use the automated installation script (recommended):",[55,510,512],{"className":57,"code":511,"language":59,"meta":60,"style":60},"cd ~\u002Fpath\u002Fto\u002FDropWebP\u002Fapp\u002Fsrc-tauri\n.\u002Fsetup-vcpkg.sh\n",[46,513,514,521],{"__ignoreMap":60},[64,515,516,518],{"class":66,"line":67},[64,517,451],{"class":74},[64,519,520],{"class":144}," ~\u002Fpath\u002Fto\u002FDropWebP\u002Fapp\u002Fsrc-tauri\n",[64,522,523],{"class":66,"line":184},[64,524,525],{"class":70},".\u002Fsetup-vcpkg.sh\n",[14,527,528],{},"Or install manually:",[55,530,532],{"className":57,"code":531,"language":59,"meta":60,"style":60},"cd ~\u002FDeveloper\u002Fvcpkg\n\n# For Apple Silicon (M1\u002FM2\u002FM3)\n.\u002Fvcpkg install aom:arm64-osx\n.\u002Fvcpkg install libavif[aom]:arm64-osx\n.\u002Fvcpkg install libjxl:arm64-osx\n.\u002Fvcpkg install libwebp:arm64-osx\n.\u002Fvcpkg install openjpeg:arm64-osx\n.\u002Fvcpkg install libjpeg-turbo:arm64-osx\n.\u002Fvcpkg install lcms:arm64-osx\n\n# For Intel Mac\n.\u002Fvcpkg install aom:x64-osx\n.\u002Fvcpkg install libavif[aom]:x64-osx\n.\u002Fvcpkg install libjxl:x64-osx\n.\u002Fvcpkg install libwebp:x64-osx\n.\u002Fvcpkg install openjpeg:x64-osx\n.\u002Fvcpkg install libjpeg-turbo:x64-osx\n.\u002Fvcpkg install lcms:x64-osx\n",[46,533,534,540,544,549,559,568,577,586,595,604,613,617,623,633,643,653,663,673,683],{"__ignoreMap":60},[64,535,536,538],{"class":66,"line":67},[64,537,451],{"class":74},[64,539,432],{"class":144},[64,541,542],{"class":66,"line":184},[64,543,439],{"emptyLinePlaceholder":438},[64,545,546],{"class":66,"line":435},[64,547,548],{"class":417},"# For Apple Silicon (M1\u002FM2\u002FM3)\n",[64,550,551,554,556],{"class":66,"line":442},[64,552,553],{"class":70},".\u002Fvcpkg",[64,555,326],{"class":144},[64,557,558],{"class":144}," aom:arm64-osx\n",[64,560,561,563,565],{"class":66,"line":448},[64,562,553],{"class":70},[64,564,326],{"class":144},[64,566,567],{"class":144}," libavif[aom]:arm64-osx\n",[64,569,570,572,574],{"class":66,"line":456},[64,571,553],{"class":70},[64,573,326],{"class":144},[64,575,576],{"class":144}," libjxl:arm64-osx\n",[64,578,579,581,583],{"class":66,"line":462},[64,580,553],{"class":70},[64,582,326],{"class":144},[64,584,585],{"class":144}," libwebp:arm64-osx\n",[64,587,588,590,592],{"class":66,"line":467},[64,589,553],{"class":70},[64,591,326],{"class":144},[64,593,594],{"class":144}," openjpeg:arm64-osx\n",[64,596,597,599,601],{"class":66,"line":473},[64,598,553],{"class":70},[64,600,326],{"class":144},[64,602,603],{"class":144}," libjpeg-turbo:arm64-osx\n",[64,605,606,608,610],{"class":66,"line":485},[64,607,553],{"class":70},[64,609,326],{"class":144},[64,611,612],{"class":144}," lcms:arm64-osx\n",[64,614,615],{"class":66,"line":497},[64,616,439],{"emptyLinePlaceholder":438},[64,618,620],{"class":66,"line":619},12,[64,621,622],{"class":417},"# For Intel Mac\n",[64,624,626,628,630],{"class":66,"line":625},13,[64,627,553],{"class":70},[64,629,326],{"class":144},[64,631,632],{"class":144}," aom:x64-osx\n",[64,634,636,638,640],{"class":66,"line":635},14,[64,637,553],{"class":70},[64,639,326],{"class":144},[64,641,642],{"class":144}," libavif[aom]:x64-osx\n",[64,644,646,648,650],{"class":66,"line":645},15,[64,647,553],{"class":70},[64,649,326],{"class":144},[64,651,652],{"class":144}," libjxl:x64-osx\n",[64,654,656,658,660],{"class":66,"line":655},16,[64,657,553],{"class":70},[64,659,326],{"class":144},[64,661,662],{"class":144}," libwebp:x64-osx\n",[64,664,666,668,670],{"class":66,"line":665},17,[64,667,553],{"class":70},[64,669,326],{"class":144},[64,671,672],{"class":144}," openjpeg:x64-osx\n",[64,674,676,678,680],{"class":66,"line":675},18,[64,677,553],{"class":70},[64,679,326],{"class":144},[64,681,682],{"class":144}," libjpeg-turbo:x64-osx\n",[64,684,686,688,690],{"class":66,"line":685},19,[64,687,553],{"class":70},[64,689,326],{"class":144},[64,691,692],{"class":144}," lcms:x64-osx\n",[14,694,695],{},"Installed libraries:",[26,697,698,708,714,720,726,732,738],{},[29,699,700,703,704,707],{},[80,701,702],{},"libaom",": AV1 encoder (for AVIF format, ",[80,705,706],{},"required",")",[29,709,710,713],{},[80,711,712],{},"libavif",": AVIF image format",[29,715,716,719],{},[80,717,718],{},"libjxl",": JPEG XL image format",[29,721,722,725],{},[80,723,724],{},"libwebp",": WebP image format",[29,727,728,731],{},[80,729,730],{},"openjpeg",": JPEG 2000 image format",[29,733,734,737],{},[80,735,736],{},"libjpeg-turbo",": JPEG image processing (for jpegli)",[29,739,740,743],{},[80,741,742],{},"lcms",": Little CMS color management",[85,745,88],{"id":746},"verify-installation-1",[55,748,750],{"className":57,"code":749,"language":59,"meta":60,"style":60},".\u002Fvcpkg list | grep -E \"aom|avif|jxl|webp|openjpeg|jpeg|lcms\"\n",[46,751,752],{"__ignoreMap":60},[64,753,754,756,759,761,764,767],{"class":66,"line":67},[64,755,553],{"class":70},[64,757,758],{"class":144}," list",[64,760,250],{"class":177},[64,762,763],{"class":70}," grep",[64,765,766],{"class":74}," -E",[64,768,769],{"class":144}," \"aom|avif|jxl|webp|openjpeg|jpeg|lcms\"\n",[18,771,773],{"id":772},"step-7-clone-and-build-drop-compress-image","Step 7: Clone and Build Drop Compress Image",[14,775,776],{},"Now you're ready to clone and build Drop Compress Image.",[85,778,780],{"id":779},"clone-the-repository","Clone the Repository",[55,782,784],{"className":57,"code":783,"language":59,"meta":60,"style":60},"git clone https:\u002F\u002Fgithub.com\u002Flogue\u002FDropWebP.git\ncd DropWebP\n",[46,785,786,795],{"__ignoreMap":60},[64,787,788,790,792],{"class":66,"line":67},[64,789,423],{"class":70},[64,791,426],{"class":144},[64,793,794],{"class":144}," https:\u002F\u002Fgithub.com\u002Flogue\u002FDropWebP.git\n",[64,796,797,799],{"class":66,"line":184},[64,798,451],{"class":74},[64,800,801],{"class":144}," DropWebP\n",[85,803,805],{"id":804},"install-frontend-dependencies","Install Frontend Dependencies",[55,807,809],{"className":57,"code":808,"language":59,"meta":60,"style":60},"# Install all workspace dependencies\npnpm install\n",[46,810,811,816],{"__ignoreMap":60},[64,812,813],{"class":66,"line":67},[64,814,815],{"class":417},"# Install all workspace dependencies\n",[64,817,818,820],{"class":66,"line":184},[64,819,394],{"class":70},[64,821,822],{"class":144}," install\n",[85,824,826],{"id":825},"install-tauri-cli-v2","Install Tauri CLI v2",[55,828,830],{"className":57,"code":829,"language":59,"meta":60,"style":60},"# Install Tauri CLI v2 globally\npnpm add -g @tauri-apps\u002Fcli@next\n",[46,831,832,837],{"__ignoreMap":60},[64,833,834],{"class":66,"line":67},[64,835,836],{"class":417},"# Install Tauri CLI v2 globally\n",[64,838,839,841,844,846],{"class":66,"line":184},[64,840,394],{"class":70},[64,842,843],{"class":144}," add",[64,845,377],{"class":74},[64,847,848],{"class":144}," @tauri-apps\u002Fcli@next\n",[85,850,852],{"id":851},"build-the-application","Build the Application",[14,854,855],{},"For development:",[55,857,859],{"className":57,"code":858,"language":59,"meta":60,"style":60},"# Run in development mode\npnpm dev:tauri\n",[46,860,861,866],{"__ignoreMap":60},[64,862,863],{"class":66,"line":67},[64,864,865],{"class":417},"# Run in development mode\n",[64,867,868,870],{"class":66,"line":184},[64,869,394],{"class":70},[64,871,872],{"class":144}," dev:tauri\n",[14,874,875],{},"For production:",[55,877,879],{"className":57,"code":878,"language":59,"meta":60,"style":60},"# Build for production\npnpm build:tauri\n",[46,880,881,886],{"__ignoreMap":60},[64,882,883],{"class":66,"line":67},[64,884,885],{"class":417},"# Build for production\n",[64,887,888,890],{"class":66,"line":184},[64,889,394],{"class":70},[64,891,892],{"class":144}," build:tauri\n",[18,894,896],{"id":895},"step-8-platform-specific-considerations","Step 8: Platform-Specific Considerations",[85,898,900],{"id":899},"apple-silicon-m1m2m3-macs","Apple Silicon (M1\u002FM2\u002FM3) Macs",[14,902,903,904,907],{},"If you're using an Apple Silicon Mac, some dependencies might need to be compiled specifically for the ",[46,905,906],{},"arm64"," architecture. Most modern packages handle this automatically, but if you encounter issues:",[55,909,911],{"className":57,"code":910,"language":59,"meta":60,"style":60},"# Check your architecture\nuname -m\n# Should output: arm64\n\n# If needed, you can force Rust to build for the correct target\nrustup target add aarch64-apple-darwin\n",[46,912,913,918,926,931,935,940],{"__ignoreMap":60},[64,914,915],{"class":66,"line":67},[64,916,917],{"class":417},"# Check your architecture\n",[64,919,920,923],{"class":66,"line":184},[64,921,922],{"class":70},"uname",[64,924,925],{"class":74}," -m\n",[64,927,928],{"class":66,"line":435},[64,929,930],{"class":417},"# Should output: arm64\n",[64,932,933],{"class":66,"line":442},[64,934,439],{"emptyLinePlaceholder":438},[64,936,937],{"class":66,"line":448},[64,938,939],{"class":417},"# If needed, you can force Rust to build for the correct target\n",[64,941,942,945,948,950],{"class":66,"line":456},[64,943,944],{"class":70},"rustup",[64,946,947],{"class":144}," target",[64,949,843],{"class":144},[64,951,952],{"class":144}," aarch64-apple-darwin\n",[85,954,956],{"id":955},"intel-macs","Intel Macs",[14,958,959,960,963],{},"For Intel Macs, the default ",[46,961,962],{},"x86_64"," target should work without issues:",[55,965,967],{"className":57,"code":966,"language":59,"meta":60,"style":60},"# Check your architecture\nuname -m\n# Should output: x86_64\n\n# Ensure the correct Rust target is installed\nrustup target add x86_64-apple-darwin\n",[46,968,969,973,979,984,988,993],{"__ignoreMap":60},[64,970,971],{"class":66,"line":67},[64,972,917],{"class":417},[64,974,975,977],{"class":66,"line":184},[64,976,922],{"class":70},[64,978,925],{"class":74},[64,980,981],{"class":66,"line":435},[64,982,983],{"class":417},"# Should output: x86_64\n",[64,985,986],{"class":66,"line":442},[64,987,439],{"emptyLinePlaceholder":438},[64,989,990],{"class":66,"line":448},[64,991,992],{"class":417},"# Ensure the correct Rust target is installed\n",[64,994,995,997,999,1001],{"class":66,"line":456},[64,996,944],{"class":70},[64,998,947],{"class":144},[64,1000,843],{"class":144},[64,1002,1003],{"class":144}," x86_64-apple-darwin\n",[85,1005,1007],{"id":1006},"code-signing-optional","Code Signing (Optional)",[14,1009,1010],{},"If you want to distribute your built application, you'll need to sign it with an Apple Developer certificate:",[55,1012,1014],{"className":57,"code":1013,"language":59,"meta":60,"style":60},"# Check available signing identities\nsecurity find-identity -v -p codesigning\n\n# If you have a developer certificate, Tauri can sign automatically\n# Add this to your tauri.conf.json:\n{\n  \"bundle\": {\n    \"macOS\": {\n      \"signing\": {\n        \"identity\": \"Developer ID Application: Your Name (TEAM_ID)\"\n      }\n    }\n  }\n}\n",[46,1015,1016,1021,1038,1042,1047,1052,1058,1068,1077,1086,1096,1101,1106,1111],{"__ignoreMap":60},[64,1017,1018],{"class":66,"line":67},[64,1019,1020],{"class":417},"# Check available signing identities\n",[64,1022,1023,1026,1029,1032,1035],{"class":66,"line":184},[64,1024,1025],{"class":70},"security",[64,1027,1028],{"class":144}," find-identity",[64,1030,1031],{"class":74}," -v",[64,1033,1034],{"class":74}," -p",[64,1036,1037],{"class":144}," codesigning\n",[64,1039,1040],{"class":66,"line":435},[64,1041,439],{"emptyLinePlaceholder":438},[64,1043,1044],{"class":66,"line":442},[64,1045,1046],{"class":417},"# If you have a developer certificate, Tauri can sign automatically\n",[64,1048,1049],{"class":66,"line":448},[64,1050,1051],{"class":417},"# Add this to your tauri.conf.json:\n",[64,1053,1054],{"class":66,"line":456},[64,1055,1057],{"class":1056},"sVt8B","{\n",[64,1059,1060,1063,1065],{"class":66,"line":462},[64,1061,1062],{"class":70},"  \"bundle\"",[64,1064,53],{"class":74},[64,1066,1067],{"class":144}," {\n",[64,1069,1070,1073,1075],{"class":66,"line":467},[64,1071,1072],{"class":70},"    \"macOS\"",[64,1074,53],{"class":74},[64,1076,1067],{"class":144},[64,1078,1079,1082,1084],{"class":66,"line":473},[64,1080,1081],{"class":70},"      \"signing\"",[64,1083,53],{"class":74},[64,1085,1067],{"class":144},[64,1087,1088,1091,1093],{"class":66,"line":485},[64,1089,1090],{"class":70},"        \"identity\"",[64,1092,53],{"class":74},[64,1094,1095],{"class":144}," \"Developer ID Application: Your Name (TEAM_ID)\"\n",[64,1097,1098],{"class":66,"line":497},[64,1099,1100],{"class":1056},"      }\n",[64,1102,1103],{"class":66,"line":619},[64,1104,1105],{"class":1056},"    }\n",[64,1107,1108],{"class":66,"line":625},[64,1109,1110],{"class":1056},"  }\n",[64,1112,1113],{"class":66,"line":635},[64,1114,1115],{"class":1056},"}\n",[18,1117,1119],{"id":1118},"troubleshooting","Troubleshooting",[85,1121,1123],{"id":1122},"common-issues","Common Issues",[1125,1126,1127,1165,1191,1244],"ol",{},[29,1128,1129,1132],{},[80,1130,1131],{},"Permission Denied Errors",[55,1133,1135],{"className":57,"code":1134,"language":59,"meta":60,"style":60},"# Fix permissions for Homebrew\nsudo chown -R $(whoami) \u002Fopt\u002Fhomebrew\n",[46,1136,1137,1142],{"__ignoreMap":60},[64,1138,1139],{"class":66,"line":67},[64,1140,1141],{"class":417},"# Fix permissions for Homebrew\n",[64,1143,1144,1147,1150,1153,1156,1159,1162],{"class":66,"line":184},[64,1145,1146],{"class":70},"sudo",[64,1148,1149],{"class":144}," chown",[64,1151,1152],{"class":74}," -R",[64,1154,1155],{"class":1056}," $(",[64,1157,1158],{"class":70},"whoami",[64,1160,1161],{"class":1056},") ",[64,1163,1164],{"class":144},"\u002Fopt\u002Fhomebrew\n",[29,1166,1167,1170],{},[80,1168,1169],{},"Command Not Found After Installation",[55,1171,1173],{"className":57,"code":1172,"language":59,"meta":60,"style":60},"# Reload your shell profile\nsource ~\u002F.zshrc\n# Or restart your terminal\n",[46,1174,1175,1180,1186],{"__ignoreMap":60},[64,1176,1177],{"class":66,"line":67},[64,1178,1179],{"class":417},"# Reload your shell profile\n",[64,1181,1182,1184],{"class":66,"line":184},[64,1183,187],{"class":74},[64,1185,181],{"class":144},[64,1187,1188],{"class":66,"line":435},[64,1189,1190],{"class":417},"# Or restart your terminal\n",[29,1192,1193,1196],{},[80,1194,1195],{},"Build Failures with Native Dependencies",[55,1197,1199],{"className":57,"code":1198,"language":59,"meta":60,"style":60},"# Clear build caches\ncargo clean\npnpm clean\n\n# Rebuild everything\npnpm install\npnpm tauri build\n",[46,1200,1201,1206,1213,1219,1223,1228,1234],{"__ignoreMap":60},[64,1202,1203],{"class":66,"line":67},[64,1204,1205],{"class":417},"# Clear build caches\n",[64,1207,1208,1210],{"class":66,"line":184},[64,1209,293],{"class":70},[64,1211,1212],{"class":144}," clean\n",[64,1214,1215,1217],{"class":66,"line":435},[64,1216,394],{"class":70},[64,1218,1212],{"class":144},[64,1220,1221],{"class":66,"line":442},[64,1222,439],{"emptyLinePlaceholder":438},[64,1224,1225],{"class":66,"line":448},[64,1226,1227],{"class":417},"# Rebuild everything\n",[64,1229,1230,1232],{"class":66,"line":456},[64,1231,394],{"class":70},[64,1233,822],{"class":144},[64,1235,1236,1238,1241],{"class":66,"line":462},[64,1237,394],{"class":70},[64,1239,1240],{"class":144}," tauri",[64,1242,1243],{"class":144}," build\n",[29,1245,1246,1249],{},[80,1247,1248],{},"Rust Target Issues",[55,1250,1252],{"className":57,"code":1251,"language":59,"meta":60,"style":60},"# List installed targets\nrustup target list --installed\n\n# Add the correct target for your system\nrustup target add aarch64-apple-darwin  # Apple Silicon\nrustup target add x86_64-apple-darwin   # Intel\n",[46,1253,1254,1259,1270,1274,1279,1293],{"__ignoreMap":60},[64,1255,1256],{"class":66,"line":67},[64,1257,1258],{"class":417},"# List installed targets\n",[64,1260,1261,1263,1265,1267],{"class":66,"line":184},[64,1262,944],{"class":70},[64,1264,947],{"class":144},[64,1266,758],{"class":144},[64,1268,1269],{"class":74}," --installed\n",[64,1271,1272],{"class":66,"line":435},[64,1273,439],{"emptyLinePlaceholder":438},[64,1275,1276],{"class":66,"line":442},[64,1277,1278],{"class":417},"# Add the correct target for your system\n",[64,1280,1281,1283,1285,1287,1290],{"class":66,"line":448},[64,1282,944],{"class":70},[64,1284,947],{"class":144},[64,1286,843],{"class":144},[64,1288,1289],{"class":144}," aarch64-apple-darwin",[64,1291,1292],{"class":417},"  # Apple Silicon\n",[64,1294,1295,1297,1299,1301,1304],{"class":66,"line":456},[64,1296,944],{"class":70},[64,1298,947],{"class":144},[64,1300,843],{"class":144},[64,1302,1303],{"class":144}," x86_64-apple-darwin",[64,1305,1306],{"class":417},"   # Intel\n",[85,1308,1310],{"id":1309},"getting-help","Getting Help",[14,1312,1313],{},"If you encounter issues not covered here:",[1125,1315,1316,1327,1336],{},[29,1317,1318,1319,1326],{},"Check the ",[1320,1321,1325],"a",{"href":1322,"rel":1323},"https:\u002F\u002Fgithub.com\u002Flogue\u002FDropWebP",[1324],"nofollow","Drop Compress Image repository"," for known issues",[29,1328,1329,1330,1335],{},"Review the ",[1320,1331,1334],{"href":1332,"rel":1333},"https:\u002F\u002Fv2.tauri.app\u002Fstart\u002Fprerequisites\u002F",[1324],"Tauri v2 documentation"," for macOS-specific guidance",[29,1337,1338],{},"Search existing GitHub issues or create a new one",[18,1340,1342],{"id":1341},"next-steps","Next Steps",[14,1344,1345],{},"Once you have Drop Compress Image built successfully:",[1125,1347,1348,1358,1368,1374],{},[29,1349,1350,1353,1354,1357],{},[80,1351,1352],{},"Run Tests",": Execute ",[46,1355,1356],{},"pnpm test"," to ensure everything works correctly",[29,1359,1360,1363,1364,1367],{},[80,1361,1362],{},"Development",": Use ",[46,1365,1366],{},"pnpm dev:tauri"," for development with hot reloading",[29,1369,1370,1373],{},[80,1371,1372],{},"Customization",": Explore the codebase and make your modifications",[29,1375,1376,1363,1379,1382],{},[80,1377,1378],{},"Distribution",[46,1380,1381],{},"pnpm build:tauri"," to create distributable packages",[14,1384,1385],{},"You're now ready to develop and build Drop Compress Image on macOS!",[18,1387,1389],{"id":1388},"building-for-intel-mac","Building for Intel Mac",[14,1391,1392],{},"If you want to cross-compile for Intel Mac (x86_64) from an Apple Silicon Mac (M1\u002FM2\u002FM3), follow these steps.",[85,1394,1396],{"id":1395},"method-1-universal-binary-recommended","Method 1: Universal Binary (Recommended)",[14,1398,1399],{},"Create a single binary that works on both Intel and Apple Silicon Macs:",[55,1401,1403],{"className":57,"code":1402,"language":59,"meta":60,"style":60},"cd app\npnpm run build:tauri:mac-universal\n",[46,1404,1405,1412],{"__ignoreMap":60},[64,1406,1407,1409],{"class":66,"line":67},[64,1408,451],{"class":74},[64,1410,1411],{"class":144}," app\n",[64,1413,1414,1416,1419],{"class":66,"line":184},[64,1415,394],{"class":70},[64,1417,1418],{"class":144}," run",[64,1420,1421],{"class":144}," build:tauri:mac-universal\n",[14,1423,1424],{},[80,1425,1426],{},"Advantages:",[26,1428,1429,1432,1435],{},[29,1430,1431],{},"No additional library installation required",[29,1433,1434],{},"Single binary supports both architectures",[29,1436,1437],{},"Users don't need to worry about their Mac's architecture",[14,1439,1440],{},[80,1441,1442],{},"Disadvantages:",[26,1444,1445],{},[29,1446,1447],{},"File size is approximately doubled (contains code for both architectures)",[85,1449,1451],{"id":1450},"method-2-intel-only-build","Method 2: Intel-only Build",[14,1453,1454],{},"If you want to create an Intel Mac-specific binary, you'll need x86_64 libraries.",[1456,1457,1459],"h4",{"id":1458},"step-1-install-x86_64-homebrew","Step 1: Install x86_64 Homebrew",[55,1461,1463],{"className":57,"code":1462,"language":59,"meta":60,"style":60},"arch -x86_64 \u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002FHEAD\u002Finstall.sh)\"\n",[46,1464,1465],{"__ignoreMap":60},[64,1466,1467,1470,1473,1476,1478,1480,1482,1484],{"class":66,"line":67},[64,1468,1469],{"class":70},"arch",[64,1471,1472],{"class":74}," -x86_64",[64,1474,1475],{"class":144}," \u002Fbin\u002Fbash",[64,1477,141],{"class":74},[64,1479,145],{"class":144},[64,1481,148],{"class":70},[64,1483,151],{"class":74},[64,1485,154],{"class":144},[1456,1487,1489],{"id":1488},"step-2-install-x86_64-libraries","Step 2: Install x86_64 Libraries",[55,1491,1493],{"className":57,"code":1492,"language":59,"meta":60,"style":60},"arch -x86_64 \u002Fusr\u002Flocal\u002Fbin\u002Fbrew install libavif jpeg-xl\n",[46,1494,1495],{"__ignoreMap":60},[64,1496,1497,1499,1501,1504,1506,1509],{"class":66,"line":67},[64,1498,1469],{"class":70},[64,1500,1472],{"class":74},[64,1502,1503],{"class":144}," \u002Fusr\u002Flocal\u002Fbin\u002Fbrew",[64,1505,326],{"class":144},[64,1507,1508],{"class":144}," libavif",[64,1510,1511],{"class":144}," jpeg-xl\n",[14,1513,1514],{},"Or use the setup script:",[55,1516,1518],{"className":57,"code":1517,"language":59,"meta":60,"style":60},".\u002Fscripts\u002Fsetup-x86-libs.sh\n",[46,1519,1520],{"__ignoreMap":60},[64,1521,1522],{"class":66,"line":67},[64,1523,1517],{"class":70},[1456,1525,1527],{"id":1526},"step-3-build","Step 3: Build",[55,1529,1531],{"className":57,"code":1530,"language":59,"meta":60,"style":60},"cd app\npnpm run build:tauri:mac-x64\n",[46,1532,1533,1539],{"__ignoreMap":60},[64,1534,1535,1537],{"class":66,"line":67},[64,1536,451],{"class":74},[64,1538,1411],{"class":144},[64,1540,1541,1543,1545],{"class":66,"line":184},[64,1542,394],{"class":70},[64,1544,1418],{"class":144},[64,1546,1547],{"class":144}," build:tauri:mac-x64\n",[85,1549,1551],{"id":1550},"build-target-overview","Build Target Overview",[55,1553,1555],{"className":57,"code":1554,"language":59,"meta":60,"style":60},"# Apple Silicon only\npnpm run build:tauri:mac-arm64\n\n# Intel Mac only\npnpm run build:tauri:mac-x64\n\n# Universal Binary (both)\npnpm run build:tauri:mac-universal\n",[46,1556,1557,1562,1571,1575,1580,1588,1592,1597],{"__ignoreMap":60},[64,1558,1559],{"class":66,"line":67},[64,1560,1561],{"class":417},"# Apple Silicon only\n",[64,1563,1564,1566,1568],{"class":66,"line":184},[64,1565,394],{"class":70},[64,1567,1418],{"class":144},[64,1569,1570],{"class":144}," build:tauri:mac-arm64\n",[64,1572,1573],{"class":66,"line":435},[64,1574,439],{"emptyLinePlaceholder":438},[64,1576,1577],{"class":66,"line":442},[64,1578,1579],{"class":417},"# Intel Mac only\n",[64,1581,1582,1584,1586],{"class":66,"line":448},[64,1583,394],{"class":70},[64,1585,1418],{"class":144},[64,1587,1547],{"class":144},[64,1589,1590],{"class":66,"line":456},[64,1591,439],{"emptyLinePlaceholder":438},[64,1593,1594],{"class":66,"line":462},[64,1595,1596],{"class":417},"# Universal Binary (both)\n",[64,1598,1599,1601,1603],{"class":66,"line":467},[64,1600,394],{"class":70},[64,1602,1418],{"class":144},[64,1604,1421],{"class":144},[85,1606,1608],{"id":1607},"build-artifacts-location","Build Artifacts Location",[55,1610,1613],{"className":1611,"code":1612,"language":112,"meta":60},[110],"app\u002Fsrc-tauri\u002Ftarget\u002F\n  ├── aarch64-apple-darwin\u002Frelease\u002Fbundle\u002F      # ARM64 only\n  ├── x86_64-apple-darwin\u002Frelease\u002Fbundle\u002F       # x86_64 only\n  └── universal-apple-darwin\u002Frelease\u002Fbundle\u002F    # Universal (both)\n",[46,1614,1612],{"__ignoreMap":60},[1616,1617,1618],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":60,"searchDepth":184,"depth":184,"links":1620},[1621,1622,1625,1630,1635,1639,1643,1648,1654,1659,1663,1664],{"id":20,"depth":184,"text":21},{"id":40,"depth":184,"text":41,"children":1623},[1624],{"id":87,"depth":435,"text":88},{"id":117,"depth":184,"text":118,"children":1626},[1627,1628,1629],{"id":124,"depth":435,"text":125},{"id":157,"depth":435,"text":158},{"id":199,"depth":435,"text":200},{"id":215,"depth":184,"text":216,"children":1631},[1632,1633,1634],{"id":222,"depth":435,"text":223},{"id":259,"depth":435,"text":260},{"id":275,"depth":435,"text":276},{"id":306,"depth":184,"text":307,"children":1636},[1637,1638],{"id":313,"depth":435,"text":314},{"id":332,"depth":435,"text":333},{"id":355,"depth":184,"text":356,"children":1640},[1641,1642],{"id":362,"depth":435,"text":363},{"id":383,"depth":435,"text":384},{"id":399,"depth":184,"text":400,"children":1644},[1645,1646,1647],{"id":406,"depth":435,"text":407},{"id":504,"depth":435,"text":505},{"id":746,"depth":435,"text":88},{"id":772,"depth":184,"text":773,"children":1649},[1650,1651,1652,1653],{"id":779,"depth":435,"text":780},{"id":804,"depth":435,"text":805},{"id":825,"depth":435,"text":826},{"id":851,"depth":435,"text":852},{"id":895,"depth":184,"text":896,"children":1655},[1656,1657,1658],{"id":899,"depth":435,"text":900},{"id":955,"depth":435,"text":956},{"id":1006,"depth":435,"text":1007},{"id":1118,"depth":184,"text":1119,"children":1660},[1661,1662],{"id":1122,"depth":435,"text":1123},{"id":1309,"depth":435,"text":1310},{"id":1341,"depth":184,"text":1342},{"id":1388,"depth":184,"text":1389,"children":1665},[1666,1667,1668,1669],{"id":1395,"depth":435,"text":1396},{"id":1450,"depth":435,"text":1451},{"id":1550,"depth":435,"text":1551},{"id":1607,"depth":435,"text":1608},false,"md",null,{},"\u002Fbuild-macos",{"title":5,"description":16},"build-macos","nDgc9Ug3_N5ZtBXSx5RMGVN4Zj7MiMxJpYfv1S4CLpQ",1780198563090]