Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploying to the iOS app store #3817

Open
morphytron opened this issue Mar 1, 2025 · 1 comment
Open

Deploying to the iOS app store #3817

morphytron opened this issue Mar 1, 2025 · 1 comment
Labels
bug Something isn't working mobile Mobile renderer

Comments

@morphytron
Copy link

morphytron commented Mar 1, 2025

Problem
I was able to create an .ipa from the .app file and meet all the certificate, profile provisioning requirements. However, I cannot upload the artefact using "Transporter" for macos, and this is the error I get:

Validation failed (409)
Incorrect Platform. You included arm64 executable “PracticeTestTaker.app/practice_test_taker” in your iOS bundle. Only iOS executables can be included. (ID: b7d11c5b-00ce-4fdd-a4c9-3c81e99be43e)

I tried variations of the archs available: arm, and arm64. I think the correct architecture for ios is aarch, which is not available via the dx cli.

Steps to reproduce the behavior:

#!/bin/zsh
set -e
rm -rf ../target/dx/practice_test_taker/release/ios 
dx bundle --arch arm --platform=ios --release
cp -f ios/Info.plist ../target/dx/practice_test_taker/release/ios/PracticeTestTaker.app/
cd ../
cp flashcardsstoreprovisioningprofile.mobileprovision target/dx/practice_test_taker/release/ios/embedded.mobileprovision
cd target/dx/practice_test_taker/release/ios/
mkdir Payload
mv PracticeTestTaker.app Payload/
cp embedded.mobileprovision Payload/PracticeTestTaker.app/
codesign -s "Apple Distribution: XXXXXXX" -f Payload/PracticeTestTaker.app
7z a practest.ipa Payload

To Info.plist, I had to add a key and override, DTPlatformName, to include iphoneos, which was not in the original.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleDisplayName</key>
  <string>Practice Test</string>
  <key>DTPlatformName</key>
  <string>iphoneos</string>
  <key>CFBundleExecutable</key>
  <string>practice_test_taker</string>
  <key>CFBundleIdentifier</key>
  <string>club.eleventh-hour.flashcardstest</string>
  <key>CFBundleName</key>
  <string>PracticeTestTaker</string>
  <key>CFBundleVersion</key>
  <string>0.1.0</string>
  <key>CFBundleShortVersionString</key>
  <string>0.1.0</string>
  <key>CFBundleDevelopmentRegion</key>
  <string>en_US</string>
  <key>UILaunchStoryboardName</key>
  <string></string>
  <key>LSRequiresIPhoneOS</key>
  <true/>
</dict>
</plist>

then, upload the generated .ipa via Transporter.

Expected behavior

To upload to the App Store successfully.
Environment:

  • Dioxus version: 0.6.1
  • Rust version: 1.85.0
  • OS info: macOS 15.3.1 (24D70)
  • App platform: iOS
@morphytron morphytron added the bug Something isn't working label Mar 1, 2025
@tdomhan
Copy link
Contributor

tdomhan commented Mar 3, 2025

I'm running into the same problem.

@ealmloff ealmloff added the mobile Mobile renderer label Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working mobile Mobile renderer
Projects
None yet
Development

No branches or pull requests

3 participants