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

PropertyListReadStreamException determining release version on iOS #1200

Closed
GalacticTitan opened this issue Sep 1, 2023 · 6 comments
Closed
Labels
bug Something isn't working

Comments

@GalacticTitan
Copy link

Description

When we are using shorebird we are getting this issue.

Steps To Reproduce

Use

shorebird release ios-alpha --target ./lib/main_dev.dart --flavor staging --force -- --build-name=$BUILD_NAME --build-number=$(($PROJECT_BUILD_NUMBER + 2000)) --export-options-plist=${HOME}/export_options.plist

above command to reproduce the issue.

⠋ Getting release version...#0 BinaryPropertyListReader.parse (package:propertylistserialization/src/binarypropertylistreader.dart:41:7)
#1 PropertyListSerialization.propertyListWithData (package:propertylistserialization/propertylistserialization.dart:183:16)
#2 Ipa._getPlist (package:shorebird_cli/src/archive_analysis/ipa.dart:70:38)
#3 Ipa.versionNumber (package:shorebird_cli/src/archive_analysis/ipa.dart:40:19)
#4 ReleaseIosCommand.run (package:shorebird_cli/src/commands/release/release_ios_command.dart:116:28)

#5 CommandRunner.runCommand (package:args/command_runner.dart:212:13)

#6 ShorebirdCliCommandRunner.runCommand (package:shorebird_cli/src/command_runner.dart:167:18)

#7 ShorebirdCliCommandRunner.run (package:shorebird_cli/src/command_runner.dart:95:14)

#8 main (file:///Users/builder/.shorebird/packages/shorebird_cli/bin/shorebird.dart:29:5)

✗ Failed to determine release version: PropertyListReadStreamException: Unsupported operation: File is not binary plist or supported version (0.1s)

@GalacticTitan GalacticTitan added the bug Something isn't working label Sep 1, 2023
@abhinand-kv
Copy link

Facing the same issue when using the below command

shorebird release ios-alpha --flavor dev -- --export-options-plist ./ExportOptions.plist

Error Logs:

#0 BinaryPropertyListReader.parse (package:propertylistserialization/src/binarypropertylistreader.dart:41:7)
#1 PropertyListSerialization.propertyListWithData (package:propertylistserialization/propertylistserialization.dart:183:16)
#2 Ipa._getPlist (package:shorebird_cli/src/archive_analysis/ipa.dart:70:38)
#3 Ipa.versionNumber (package:shorebird_cli/src/archive_analysis/ipa.dart:40:19)
#4 ReleaseIosCommand.run (package:shorebird_cli/src/commands/release/release_ios_command.dart:116:28)

#5 CommandRunner.runCommand (package:args/command_runner.dart:212:13)

#6 ShorebirdCliCommandRunner.runCommand (package:shorebird_cli/src/command_runner.dart:167:18)

#7 ShorebirdCliCommandRunner.run (package:shorebird_cli/src/command_runner.dart:95:14)

#8 main (file:///Users/abhinad/.shorebird/packages/shorebird_cli/bin/shorebird.dart:29:5)

✗ Failed to determine release version: PropertyListReadStreamException: Unsupported operation: File is not binary plist or supported version

@eseidel eseidel added this to 1.0 Sep 5, 2023
@eseidel eseidel moved this to Todo in 1.0 Sep 5, 2023
@eseidel eseidel moved this from Todo to Customers in 1.0 Sep 5, 2023
@eseidel
Copy link
Contributor

eseidel commented Sep 6, 2023

The relevant source:
https://github.com/shorebirdtech/shorebird/blob/main/packages/shorebird_cli/lib/src/commands/release/release_ios_command.dart#L114
https://github.com/shorebirdtech/shorebird/blob/main/packages/shorebird_cli/lib/src/archive_analysis/ipa.dart#L56

I'd be very curious to see what the resulting ipa files looked like. If one of you is willing to post one, or share one with me at [email protected] I'd be curious. (What I actually care about is the Info.plist files inside the IPA, not even the whole IPA. Those are retrievalbe by unzippping the ipa -- ipas are just zip files.)

@eseidel
Copy link
Contributor

eseidel commented Sep 6, 2023

You can extract just the Info.plist from the IPA with:
unzip -j build/ios/ipa/example.ipa Payload/Runner.app/Info.plist

that build/ios/ipa/example.ipa path was the path printed by shorebird release ios-alpha and the Info.plist path should be Payload/Runner.app/Info.plist unless you've changed the name of your app from Runner (only supported as of the very latest Flutter I believe), if so, you can see the contents of the ipa with unzip -l build/ios/ipa/example.ipa. The -j argument to unzip just makes it ignore directories (and only extract files).

@eseidel eseidel moved this from Customers to Pending Customer Reply in 1.0 Sep 6, 2023
@ABHINANDRK
Copy link

@eseidel Below is the info.plist extracted from the ipa file


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>DTPlatformVersion</key>
    <string>17.0</string>
    <key>DTSDKBuild</key>
    <string>21A5317a</string>
    <key>CFBundleIcons~ipad</key>
    <dict>
      <key>CFBundlePrimaryIcon</key>
      <dict>
        <key>CFBundleIconFiles</key>
        <array>
          <string>AppIcon60x60</string>
          <string>AppIcon76x76</string>
        </array>
        <key>CFBundleIconName</key>
        <string>AppIcon</string>
      </dict>
    </dict>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSCameraUsageDescription</key>
    <string>This is to support the user to capture images for document verification.</string>
    <key>CFBundleDisplayName</key>
    <string>Infinyte dev</string>
    <key>DTXcodeBuild</key>
    <string>15A5229h</string>
    <key>CADisableMinimumFrameDurationOnPhone</key>
    <true/>
    <key>CFBundleIdentifier</key>
    <string>com.infinyte.club.dev</string>
    <key>UIDeviceFamily</key>
    <array>
      <integer>1</integer>
    </array>
    <key>remote_config_fetch_interval_minutes</key>
    <string>5</string>
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>https</string>
      <string>tez</string>
      <string>phonepe</string>
      <string>paytmmp</string>
    </array>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleIcons</key>
    <dict>
      <key>CFBundlePrimaryIcon</key>
      <dict>
        <key>CFBundleIconFiles</key>
        <array>
          <string>AppIcon60x60</string>
        </array>
        <key>CFBundleIconName</key>
        <string>AppIcon</string>
      </dict>
    </dict>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleSupportedPlatforms</key>
    <array>
      <string>iPhoneOS</string>
    </array>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>MinimumOSVersion</key>
    <string>13.0</string>
    <key>CFBundleName</key>
    <string>infinyte</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0.16</string>
    <key>UIStatusBarHidden</key>
    <false/>
    <key>CFBundleExecutable</key>
    <string>Runner</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
      <string>arm64</string>
    </array>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
    <key>TestValue</key>
    <string></string>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationPortraitUpsideDown</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>BuildMachineOSBuild</key>
    <string>22G90</string>
    <key>UIApplicationSupportsIndirectInputEvents</key>
    <true/>
    <key>DTPlatformName</key>
    <string>iphoneos</string>
    <key>CFBundleVersion</key>
    <string>3</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>DTCompiler</key>
    <string>com.apple.compilers.llvm.clang.1_0</string>
    <key>NSFaceIDUsageDescription</key>
    <string>Face ID is used to securely authenticate and protect users personal data</string>
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
      </dict>
      <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>com.infinyte.club.dev</string>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>club</string>
        </array>
      </dict>
    </array>
    <key>DTSDKName</key>
    <string>iphoneos17.0</string>
    <key>DTPlatformBuild</key>
    <string>21A5317a</string>
    <key>DTXcode</key>
    <string>1500</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>This is to support the user to pick images for document verification.</string>
    <key>UISupportedInterfaceOrientations</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>DTAppStoreToolsBuild</key>
    <string>15A5229h</string>
  </dict>
</plist>


@eseidel eseidel moved this from Pending Customer Reply to Customers in 1.0 Sep 11, 2023
@eseidel eseidel changed the title Failed to determine release version for ios PropertyListReadStreamException determining release version on iOS Sep 11, 2023
@eseidel eseidel moved this from Customers to Todo in 1.0 Sep 11, 2023
@bryanoltman
Copy link
Contributor

This will likely be fixed in the next Shorebird release (we're now reading version info from xcarchives instead of ipas). If you'd like to try now, you can check out the main branch of shorebird and re-run your command (although we don't recommend using --force):

cd ~/.shorebird
git checkout main

@bryanoltman bryanoltman moved this from Todo to Pending Customer Reply in 1.0 Sep 19, 2023
@bryanoltman
Copy link
Contributor

This has been fixed in v0.14.10

@github-project-automation github-project-automation bot moved this from Pending Customer Reply to Done in 1.0 Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
No open projects
Status: Done
Development

No branches or pull requests

5 participants