小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在Xcode中從動態(tài)庫剝離不需要的架構(90008錯誤)

 最初九月雪 2018-03-01

在Xcode中從動態(tài)庫剝離不需要的架構

自從iOS 8發(fā)布以來,開發(fā)人員已經能夠利用動態(tài)庫對iOS開發(fā)的好處。對于一般開發(fā),為所有需要的架構設置一個單一的動態(tài)庫是非常好的,所以您可以在所有設備和iOS模擬器上運行,而無需更改任何東西。然而,這種方法有一個缺點 - 因為它們在運行時鏈接,當一個動態(tài)庫被單獨編譯到最終應用程序時,不可能知道實際需要哪些架構。因此,Xcode將在編譯時將整個事物復制到應用程序包中。除了浪費的磁盤空間,理論上沒有真正的缺點。但是實際上,iTunes Connect不喜歡我們添加未使用的二進制切片:這時候,打包上傳Appstore會報如下錯誤:

那么,我們如何解決這個問題呢?
步驟如下:

在Build Phases中加入run script。在里面添加Shell腳本,

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
  FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
  FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"    
  echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

   EXTRACTED_ARCHS=()

  for ARCH in $ARCHS
  do
    echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
    lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
    EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done

該腳本將查看您構建的應用程序的Frameworks文件夾,并確保只有您正在構建的架構存在于每個框架中。
好多了!現(xiàn)在我可以在我的項目中添加包含我所需要的所有架構的胖動態(tài)庫,而我的構建過程將會在任何給定的時刻處理哪些架構。

 

可解決環(huán)信HyphenateLite.framework上傳appstore報錯:

在使用環(huán)信HyphenateLite.framework時,出現(xiàn)如下錯誤:

Code1:ERROR ITMS-90087: "Unsupported Architectures.

The executable for MM_FESCO.app/Frameworks/HyphenateLite.framework

contains unsupported architectures '[x86_64, i386]'."
ERROR ITMS-90087: "Unsupported Architectures.

The executable for MM_FESCO.app/Frameworks/HyphenateLite.framework

contains unsupported architectures '[x86_64, i386]'."
Code2:ERROR ITMS-90209: "Invalid Segment Alignment.

The app binary at 'MM_FESCO.app/Frameworks/HyphenateLite.framework/HyphenateLite'

does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."
ERROR ITMS-90209: "Invalid Segment Alignment.

The app binary at 'MM_FESCO.app/Frameworks/HyphenateLite.framework/HyphenateLite'

does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."
Code3:ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."
ERROR ITMS-90125: "The binary is invalid.

The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid,

or the binary is already encrypted.

This binary does not seem to have been built with Apple's linker."
Code4:WARNING ITMS-90080: "The executable 'Payload/MM_FESCO.app/Frameworks/HyphenateLite.framework'

is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables.

For more information refer to Technical Q&A QA1788 - Building a Position Independent Executable in the iOS Developer Library."
WARNING ITMS-90080: "The executable 'Payload/MM_FESCO.app/Frameworks/HyphenateLite.framework'

is not a Position Independent Executable.

Please ensure that your build settings are configured to create PIE executables.

For more information refer to Technical Q&A QA1788 -

Building a Position Independent Executable in the iOS Developer Library."

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多