4

I've built an .ipa file with following flags armv7 armv7s and arm64. Is there any way/ tool through which i can make sure the .ipa does have the 64-Bit support?

How does apple find out during app submission if the app binary does have 64-Bit support.

Manav Sharma
  • 1,053
  • 1
  • 13
  • 21
  • 1
    Standard Architectures includes both. If you look at the list in includes armv7 (32-bit) and arm64 (64-bit). armv7s was quietly dropped because there is only one device that gets a slight gain from it (iPad 4). _Reading:_ [Converting YourApp to 64 Bits](https://developer.apple.com/library/IOs/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html) – carlodurso Dec 03 '14 at 12:34
  • Thanks for answering carlodurso – Manav Sharma Dec 03 '14 at 18:47

2 Answers2

9

One of the options is to use lipo -info %path-to-executable% make sure you are not using path to .app folder or .ipa archive.

A-Live
  • 8,904
  • 2
  • 39
  • 74
  • 3
    Just to elaborate, to extract exe from the .ipa check out the link : http://stackoverflow.com/questions/5737259/support-armv6-and-armv7-in-the-same-ipa – Manav Sharma Dec 03 '14 at 18:46
0

I have created a script that takes .ipa file as an input and returns what architecture the app supports - (replace and with yours)

ORIGINAL_FILE="<file path>"
FILE_NAME=$(basename $ORIGINAL_FILE)
EXPANDED_DIR="/Users/<username>/Downloads/expanded_app/$FILE_NAME"
PLIST_FILE="$APP_DIR/Info.plist"
APP_DIR="$EXPANDED_DIR/Payload/*.app"
unzip -q "$ORIGINAL_FILE" -d "$EXPANDED_DIR"

executable_file_name=$(/user/rover/PlistBuddy -c "Print CFBundleExecutable" $PLIST_FILE)
EXECUTABLE_FILE="$APP_DIR/$executable_file_name"
app_architecture_list=$(lipo -info $EXECUTABLE_FILE)
echo $app_architecture_list

Now, this app_architecture_list will give you result that will contain armv6 or armv7 or arm64, by which you can figure out.

Note - you will need PlistBuddy for this.

Darpan
  • 5,623
  • 3
  • 48
  • 80