Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-27261] iOS Unsupported Architecture [x86_64, i386]

GitHub Issuen/a
TypeBug
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2019-08-28T22:35:24.000+0000
Affected Version/sRelease 8.0.0
Fix Version/sRelease 8.1.1
ComponentsiOS
LabelsengSchedule, ios, regression
ReporterFrancisco Antonio Duran Ramirez
AssigneeVijay Singh
Created2019-07-17T23:57:59.000+0000
Updated2019-08-28T22:35:24.000+0000

Description

Hello. Good afternoon. I created an adhoc build with the specs mentioned on the section of environment, so after that, I use the application loader to upload the build, but I am getting the issues attached in the image. Specs: Titanium SDK : 8.0.2.GA CLI: 7.0.12 Node : 8.9.1 Axway Appcelerator Studio, build: 5.1.2.201903111843 Xcode : 10.2
  ERROR ITMS-90087: "Unsupported Architecture. The executable for tony.app/Frameworks/TitaniumKit.framework contains unsupported architecture '[x86_64, i386]'."

    ERROR ITMS-90209: "Invalid segment Alignment. The App Binary at tony.app/Frameworks/TitaniumKit.framework/TitaniumKit does not have proper segment alignment. Try rebuilding the app with the latest xcode version." 

    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."
    WARNING ITMS-90080: "The Executable Payload/tony.app/Frameworks/TitaniumKit.framework" is not a Position Independent Executable. Please ensure that ur build settings are configured to create PIE executables."
Note: If use the following specs, I will not get any complaint of apple in the application loader. Ti SDK : 7.5.1.GA CLI: 6.2.2 Node Version : 8.9.1 Xcode: 10.2 I do not have a reproduce project for the issue, since the project which I am using is very extensive like to put it in this jira ticket. Please let me know whether you have any doubt or question. Thanks, and best, Antonio Duran.

Attachments

FileDateSize
Screen Shot 2019-07-17 at 4.26.56 PM.png2019-07-17T23:44:55.000+0000305077

Comments

  1. Rakhi Mitro 2019-07-18

    Hello, Thanks for sharing with us. Can you please check this [link](https://github.com/williamrijksen/com.williamrijksen.onesignal/issues/84)? Hope this helps.
  2. Francisco Antonio Duran Ramirez 2019-07-18

    Hello @Rakhi Mitro. Good morning / afternoon. Thank you for the input. Yep I found that part yesterday, but that link is related about one signal module more specifically to the *OneSignal.framework* . In my case, I am not using onesignal module, and it is related about : *TitaniumKit.framework* contains unsupported architecture [x86_64, i386] Sorry for the red part, I did not add any color. Emphasizing that this issue is not happening with 7.5.1.GA. Please let me know whether you have any doubt or question. Thanks, and best, Antonio Duran.
  3. Jason Kneen 2019-07-18

    [~antonioduran] -- does you app use any native modules? If so, which ones and what versions?
  4. Francisco Antonio Duran Ramirez 2019-07-18

    Hello @Jason Kneen. Good afternoon / evening.
           <module platform="iphone" version="1.2.4">dk.napp.drawer</module>
           <module platform="iphone" version="1.4.0">ti.paint</module>
           <module platform="iphone" version="1.2.0">ti.imagefactory</module>
           <module platform="iphone" version="2.0.0">ti.docscanner</module>
           <module platform="iphone" version="1.0.0">com.tokbox.ti.opentok</module>
           <module platform="iphone" version="3.1.2">ti.map</module>
           <module platform="iphone" version="6.1.0">com.wikitude.ti</module>
        
       
    Please let me know whether you have any doubt or question. Thanks, and best, Antonio Duran.
  5. Vijay Singh 2019-07-19

    [~antonioduran] Rather selecting 'iOS AdHoc' , please select 'iOS iTune Store' while packing the app from Studio. After building successfully, it will launch an interface in Xcode where you can see Archives of your app. If it didn't get open, open Xcode -> select Window -> select Organizer. Select your app -> Click on 'Distribute App'. There you have option for directly uploading app to App Store. If you want to upload app via Application Loader select Ad Hoc option and export ipa from. Use this ipa to upload to App Store. Meanwhile we will investigate the issue. Thanks!
  6. Francisco Antonio Duran Ramirez 2019-07-22

    Hello @Vijay Singh. Good afternoon / evening. I tried with the option of Distribute - Apple iTunes Store from Appcelerator Studio, and Apple no longer complained about the issue reported before, so at least we have a temporary workaround using Distribute - Apple iTunes Store. Also I tried on the terminal executing the following:
       appc run -p ios -T dist-appstore --output-dir ~/Desktop
       
    and I noticed this part very important: *[INFO] Removing invalid architectures from TitaniumKit.framework*
       [INFO]  Writing bootstrap json
       [INFO]  Creating launch image set
       [INFO]  App thinning disabled, skipping asset image sets
       [INFO]  Encrypting JavaScript files
       [INFO]  Writing i18n files
       [INFO]  Processing Titanium symbols
       [INFO]  Removing files
       [INFO]  Removing invalid architectures from TitaniumKit.framework
       [INFO]  Optimizing .plist and .png files
       [INFO]  Writing index.json with listing of JS/JSON files
       [INFO]  Invoking xcodebuild
       [INFO]  Preparing xcarchive
       [INFO]  Archiving debug symbols: /Users/tony/Documents/mobile/build/iphone/build/Products/Release-iphoneos/tony.app.dSYM
       [INFO]  Packaging complete
       [INFO]  Package location: /Users/tony/Desktop/tony.ipa
       [INFO]  Finished building the application in 2m 58s 930ms
       
    So, the bug is when a build is created as an adhoc, and then if this build is used with the application loader to upload the app to the appstore, apple will complaint about the issues described in this ticket, so for some reason in the process of the creation of the adhoc the architectures of i386 & x86_64 are not removed from the TitaniumKit.framework. So I am trying to have a workaround doing the following:
       lipo -remove i386 -output TitaniumKit.framework/TitaniumKit TitaniumKit.framework/TitaniumKit
       lipo -remove x86_64 -output TitaniumKit.framework/TitaniumKit TitaniumKit.framework/TitaniumKit
       
    but not sure how to create this part to be executed as a script phase during/after the compilation . Please let me know whether you have any doubt or question. Thanks, and best, Antonio Duran.
  7. Vijay Singh 2019-07-22

    Thanks for detail [~antonioduran]. PR - https://github.com/appcelerator/titanium_mobile/pull/11072
  8. Jan Vennemann 2019-07-23

    [~vijaysingh], i think this is something we should consider for 8.1.1. Can you please do a 8_1_X backport? Thanks!
  9. Vijay Singh 2019-07-26

    PR(8_1_X) : https://github.com/appcelerator/titanium_mobile/pull/11087
  10. Keerthi Mahalingam 2019-08-24

    FR passed. Waiting on Jenkins.
  11. Vijay Singh 2019-08-27

    [~lchoudhary] PR (8_3_X) - https://github.com/appcelerator/titanium_mobile/pull/11183
  12. Christopher Williams 2019-08-28

    Merged to master, 8_1_X and 8_3_X
  13. Keerthi Mahalingam 2019-08-28

    Verified the Fix on SDK 8.1.1.v20190828100656,8.2.0.v20190828134315 and 8.3.0.v20190828100616. Works as expected. able to upload app through application loader.
        *Test Environment:*
        Operating System
          Name                        = Mac OS X
          Version                     = 10.14.5
          Architecture                = 64bit
        Node.js
          Node.js Version             = 10.16.2
          npm Version                 = 6.9.0
        Titanium CLI
          CLI Version                 = 5.2.1
        Titanium SDK
          SDK Version                 = 8.3.0.v20190828100616
        Device =iPhone X iOS 11
        

JSON Source