MobileFirst 7.1 cannot export ipa after fixpack 7.1.0.00.20190704-0841 - ibm-mobilefirst

After installing this fixpack xcode will no longer create an IPA.
It was creating an generic xcode archive.
From what i can tell the update cordova lib has 3 private headers:
CDVDebug.h
CDVJSON_private.h
CDVPlugin+Private.h
These private headers end up being included in the products directory during archive. This is not allowed to create an IPA. The only way i have been able to create an IPA is by moving those library from private headers to project or public.
Is this a bug in the fix? or is there something else that could be causing the problem.

I found the issue is introduced when we bundled cordova version to 4.0. As you detected correctly its due to "cordova lib having 3 private headers: CDVDebug.h CDVJSON_private.h CDVPlugin+Private.h", once they moved to public, the issue get resolved and ipa can be built. We will be fixing this issue in upcoming v7.1 iFix.

Related

Xcode version problems. error:using bridging headers with module interfaces is unsupported Command CompileSwiftSources failed with a nonzero exit code

my iPhone just upgraded and now my iOS version is 15.3.1. Since my old version(12.4) of Xcode doesn't support that version of OS, I've installed newer version of Xcode(13.2.1). Now I cannot run my project and I got this error. I've changed Build Libraries for Distribution to NO and than my build is successful but when I set up breakpoint and start debagging I'm losing connection with debugger on my iPhone. Also I put device file(15.0) in /Aplications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport and in Supporting Files but it didn't
help. I will appreciate any help. Best regards.
Open your XCode,
Go to the Runner under PROJECTS -> search for 'distribution'
Make "Build Libraries for Distribution" to NO (if it is YES, change it to NO).
Do the same for Runner under TARGETS.
I also had the same problem I resolved it in this way.
Update:
Also don't forget to uncomment the following in iOS -> Podfile
platform :ios, '11.0'

Bitcode signature failure in Xcode

I updated Xcode to the last version, and now when I'm trying to compile the project I'm getting an error "Invalid bitcode signature", hovewer, the bitcode for my project is disabled. How can I fix it? What should I change to sign my bitcode correctly?
My Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'MyProjectName' do
pod 'Realm'
pod 'CorePlot'
pod 'GoogleMaps'
end
I checked already, everything is fine with it.
I'm not sure if you have the same situation with me. I only have this issue when I tried to test with iPhone device. It turns out that the debug configuration with Build Active Architecture Only is set to NO. After I set to YES, I can test with my iPhone.
I experienced this error, but it happened only when building for an iOS 10.3 iPad (despite working on an iOS 10.3 iPhone and an iOS 11.0 iPad, and all the iOS 10.3 and 11.0 simulators). Through painful process of elimination (and creating a new project from scratch), I found that my Cocoapods weren't at fault, nor was my code signing settings, nor my AppExtension, nor my tests, nor my 'build for active architecture only' setting, nor any build setting related to the term 'bitcode'.
In my setup, I had a C++ Xcode project nested within my main Swift/iOS Xcode project. Because it was never intended specifically for use in iOS, the "iOS Deployment target" had never been set (it was left on 'default'). Upon setting it explicitly to 10.3, it worked without complaint.
Nested C++ app's project settings (set iOS deployment target to the lowest iOS version you support):
Nested C++ app's target settings (for reference):
If you using pod then please check the version of all libraries, some library may be not supporting in new version , you have to update pod files for that library.
In my case, I was trying to build for a device with an iOS version lower than the deployment target.
This kind of problem came up when I linked a new static library project to my workspace. In order to solve it I tried to set both the Build Active Architecture Only and the Bitcode settings of the library to NO but no luck. Then I got across the thing that the library's Deployment Target was set to 11.0 as Xcode set the latest value to all new projects. After fixing the setting to 5.0 the problem was solved.
On my case problem occured because of I was using a 3rd party static library with different files for each architecture
I fixed the problem by removing binaries of invalid architectures.
Instead I added a multi-arch FAT binary for the 3rd party static library
Hope helps
For my case, the solution was removing a c++ library.
I found that my issue was with using 'Modules'.
Just turned off modules (had to update some header files), but that resolved my issue.
Enable Modules In Settings
In my case, the widget included in the project was causing the bitcode error.
I changed my pod file from this:
target "App" do
pod 'A'
pod 'B'
end
target "App Widget" do
pod 'A'
end
to this:
target "App" do
pod 'A'
pod 'B'
target "App Widget" do
pod 'A'
end
end
To fix this issue, most answers recommend a workaround whereby you clean your Xcode workspace/project, close Xcode, delete your Derived Data folder (this is kept in the root directory of your project by default), then finally re-open your project.
However, the above steps may not work for you. This is a hint that your project structure is in error.
When the bitcode intermediary representation of your project was released with iOS 9.0, it was done so on the provision that your entire project, including dependencies, either totally agree to use bitcode or not. From my experience, it is vital to work through all of your Pods and included Libraries/Frameworks and ensure they all use the same setting; either Yes or No. By default, this selection is Yes.
If a single dependency does not match the intended bitcode setting, this error can be thrown.
When sanity checking your dependencies and overarching project, it is important to note that there is a Use Bitcode setting for both the Project and the Target settings, so be sure to check both perspectives of the Build Settings.
I was adding static library . I created fat binary of the same library including all architectures and included in my project. This resolved my issue
In my case, I am Using Cordova Project. While building it with Xcode had the same issue and Resolved by Removing and Adding the IOS platform.
cordova platform remove ios
cordova platform add ios
If you are using cocoa pods then do "pod update"
Targets -> Build Settings ->Build Active Architecture Only
Debug -> YES
Release -> NO to YES
I face the same problem only on archiving the app.
Who can tell me the reason? You can teach all developers. It's awesome.
This solution work for me. First, try to remove all pod using terminal command pod deintegrate and then reinstall pod using terminal command pod install.
This can also occur when building for the simulator if including a framework built for ARM only (and I assume vice-versa as well).

dojo/_base/*js missing from worklight apk in wl 6.1

I have a hybrid app that was created with WL 6.1 that uses the included dojolib. Currently it is in production for iphone and we are adding the android flavor of it. When running the code from the mobile simulator on the console, both the android and iphone work fine. The ipa file works fine. When I run the hybrid on an android device (Samsung S4), the application throws errors in the log on app startup. I have the "provide dojo libraries" turned off. In the DDMS log I see statements like the following:
09-09 12:47:12.092: E/AndroidProtocolHandler(20324): Unable to open asset URL: file:///android_asset/www/default/dojo/_base/declare.js
09-09 12:47:12.263: E/AndroidProtocolHandler(20324): Unable to open asset URL: file:///android_asset/www/default/dojo/_base/connect.js
09-09 12:47:12.303: E/AndroidProtocolHandler(20324): Unable to open asset URL: file:///android_asset/www/default/dojo/_base/event.js
Looking out in the android project in eclipse, I see those files in the "assets/www/default/dojo/_base" directory. The issue is when I look in the APK file, the "_base" directory is not there. Any help as to understanding why it is missing?
Your application should be using the compiled version of the dojo files, it seem that its not.
i would check
These files : core-web-layer.js and mobile-ui-layer are in your www folder
That the wlCommonInit function includes below:
function wlCommonInit() {
require([ "layers/core-web-layer", "layers/mobile-ui-layer" ], dojoInit);
}
I've also found an alternative way to get around the android packaging bug. As I mentioned earlier one way is to use the DojoBuildFactory to create a new layer that would have the files imbedded in them. This is the same process that WL uses to create the core-web-layer and mobile-ui-layer. I have a team working on this, but the documentation is ... scant and it is a time consuming process.
While they were doing that, I found what I think is a cleaner way of addressing the issue. Effectively open up an unsigned apk, insert the files, and then sign the APK. Worked like a charm. Here are the steps I used:
Build from working pointing to the correct worklight server and with the provide missing dojo libraries turned off
Export as Android project as an unsigned apk
Open command prompt with right env settings pointing to JDK and ADT
Create keystore (if not already done)
Unpack into temp using jar
Copy dojo files over from android/native/www/default
Pack back into apk using jar
Sign the jar
Zipalign the jar
Now you have a working apk that includes the files/directories in asset that begin with a "_".

Cordova 2.1.0 not getting included in the project after install

I am creating an IOS app with cordova 2.1.0.
I installed cordova 2.1.0, by following the steps mentioned in http://docs.phonegap.com/en/2.1.0/guide_getting-started_ios_index.md.html#Getting%20Started%20with%20iO
Now i made changes to files like AppDelegate.m, AppDelegate.h, etc. and www folder. When i see the physical folder structure in the project, the CordovaLib.xcodeproj does'nt get included in the project. Why is this happening? Why is it not getting included in the project. Every user will not download cordova and follow the steps.
Any help will be appreciated.
Thanks.
What do you mean by "user will not download". The developer (you) have to downlod it nd create the app. Cordova is packaged within your *.ip file.
If the cordov project is not oincluded, you will be unabvle to build. If you cn build it, it is included.
If you don't want to handle the complete xcode project stuff, use build.phonegap.com

RestKit.h Not Found When Building With Xcode Product > Profile

I have an app that uses RestKit 0.10.2 and I can build and run the app just fine in the Xcode 4.4.1 simulator using iOS 5.1.1. I can also run Analyze without any issues. However, when I go to try and Profile the app, the build fails with Lexical or Preprocessor Issue RestKit/Reskit.h file not found.
Here's what I have in Header Search Paths > Debug on the target:
$(BUILT_PRODUCTS_DIR)/../three20
$(BUILT_PRODUCTS_DIR)/../../three20
"$(BUILT_PRODUCTS_DIR)/../../Headers"
What could I be missing? When I upgraded from 0.94 to 0.10.2 I completely removed Restkit from my project and re-imported it because I was having a lot of issues trying to get this exact same problem resolved for a normal run. Any ideas?
Profile uses a Release build by default, not Debug (since it makes no sense to profile a debug build). Make sure Header Search Path -> Release is also filled in.