gzog / analytics-issues

Automatically exported from code.google.com/p/analytics-issues
0 stars 0 forks source link

Bitcode will be dropped with Xcode 7 #671

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
---------------------------------------------------------------------------
NOTE: This issue tracking system is for Google Analytics developer products
only.
If you are not a developer/programmer visit:
http://www.google.com/analytics/support.html
---------------------------------------------------------------------------
Name of affected component: Mobile Tracking

Name of related library and version, if applicable (e.g. Android, iOS,
Snippets, etc.): iOS

Issue summary:
Provide a brief summary of the issue you're experiencing.

Steps to reproduce issue:
1.  Use Xcode 7.  In your project ENABLE_BITCODE is on by default.
2.  Build an app using the Google Analytics iOS library.
3.

Expected output:
What do you expect to see after performing the above steps?
No warnings

Actual results:
What do you actually see after performing the above steps?
These warnings (This will be an error in the future.):

ld: warning: -weak_framework is treated as -framework when used with 
-bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still 
happen based on availability mark-up in headers
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAI.o)' was built without bitcode. You must 
rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an 
updated library from the vendor, or disable bitcode for this target. Note: This 
will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIDictionaryBuilder.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIFields.o)' was built without bitcode. You 
must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an 
updated library from the vendor, or disable bitcode for this target. Note: This 
will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIUncaughtExceptionHandler.o)' was built 
without bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIBatchingDispatcher.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIDataStore.o)' was built without bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain 
an updated library from the vendor, or disable bitcode for this target. Note: 
This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIDefaultLogger.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIEcommerceFields.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIStringUtil.o)' was built without bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain 
an updated library from the vendor, or disable bitcode for this target. Note: 
This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAITrackerImpl.o)' was built without bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain 
an updated library from the vendor, or disable bitcode for this target. Note: 
This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIURLConnection.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIUsageTracker.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAICampaign.o)' was built without bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain 
an updated library from the vendor, or disable bitcode for this target. Note: 
This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAICoreDataUtil.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIExceptionParser.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIHitUtil.o)' was built without bitcode. You 
must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an 
updated library from the vendor, or disable bitcode for this target. Note: This 
will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIReachabilityChecker.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIRequestBuilder.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAITrackerModel.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIUtil.o)' was built without bitcode. You 
must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an 
updated library from the vendor, or disable bitcode for this target. Note: This 
will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAIHitFormat.o)' was built without bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain 
an updated library from the vendor, or disable bitcode for this target. Note: 
This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because 
'.../libGoogleAnalyticsServices.a(GAICompressionUtil.o)' was built without 
bitcode. You must rebuild it with bitcode enabled (Xcode setting 
ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode 
for this target. Note: This will be an error in the future.

Notes:
Provide any additional information which might be useful here. Feel free to
attach screenshots or sample code which demonstrates the issue being
described.

Original issue reported on code.google.com by ellucian...@gmail.com on 18 Jun 2015 at 3:12

GoogleCodeExporter commented 8 years ago
yeah still waiting...

Original comment by felipe.m...@gmail.com on 28 Oct 2015 at 7:24

GoogleCodeExporter commented 8 years ago
Still waiting...

Original comment by Artur.Ba...@sflpro.com on 29 Oct 2015 at 7:28

GoogleCodeExporter commented 8 years ago
We are about to release a new version of our app an it would be great if we 
could support Bitcode via Cocoapods. This is the only library left now so can 
we get an update on a new Cocoapods release? 

Original comment by gwynantj...@gmail.com on 29 Oct 2015 at 12:31

GoogleCodeExporter commented 8 years ago
I Tried to update without any luck
https://github.com/CocoaPods/Specs/blob/master/Specs/GoogleAnalytics/3.13.0/Goog
leAnalytics.podspec.json

Whats weird :
- Dont' know where that archive referenced in podspec is coming from : (3.13)
  https://www.gstatic.com/cpdc/9b1bb5e186325dc2-GoogleAnalytics-3.13.0.tar.gz (814k)
- Archive : 3.13 SDK is 6.9 MB and the new 3.14 is 19.5 MB (what happened here 
?)
- libGoogleAnalyticsServices.a : 3.13 is 12.4 MB - 3.14 is 34.4 MB ! 
- Cocoapods 3.13 is using libGoogleAnalytics.a which doesn't exists in their 
SDK's probably because of "This is a combined SDK that includes both the Google 
Analytics SDK
and the Google Tag Manager SDK."

Original comment by arso...@gmail.com on 29 Oct 2015 at 2:10

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Just uploaded a new version of my app to the App Store... still no Bitcode for 
CocoaPods... #waiting

Original comment by rgome...@gmail.com on 29 Oct 2015 at 4:39

GoogleCodeExporter commented 8 years ago
google, Like my grandma used to tell me "If your software is not available for 
cocoapods or carthage, then your software has not been released."   

Original comment by RRomanc...@gmail.com on 31 Oct 2015 at 5:33

GoogleCodeExporter commented 8 years ago
Please add this version to cocoa pods repo - thnx

Original comment by wie...@gmail.com on 2 Nov 2015 at 3:00

GoogleCodeExporter commented 8 years ago
+1 Please add the new version to cocoapods repo.

Original comment by neil.a.d...@gmail.com on 3 Nov 2015 at 12:50

GoogleCodeExporter commented 8 years ago
Issue 774 has been merged into this issue.

Original comment by mcoh...@google.com on 3 Nov 2015 at 5:32

GoogleCodeExporter commented 8 years ago
I will re-open this issue until the Google Analytics Cocoapod with 3.14 is 
released. We anticipate this to be made available in the coming weeks. I cannot 
give any concrete timeline but this is something we are actively working on.

Keep in mind that for iOS application bitcode is still optional. And if you are 
using the top level Google Cocoapod with any libraries that have yet to support 
bitcode you will still need to disable bitcode for you iOS application.

I will update once this thread once the Cocoapod  with the 3.14 library is 
available. We appreciate your patience. 

Original comment by mcoh...@google.com on 3 Nov 2015 at 5:33

GoogleCodeExporter commented 8 years ago
is not optional if you support watchOS... I can't release my app because of 
this library... :(

Original comment by arielaaa...@gmail.com on 3 Nov 2015 at 7:11

GoogleCodeExporter commented 8 years ago
As long as you don't include the google analytics library in your watchOS 
target, you can leave bitcode on for the watch. Then on the iOS target turn off 
bitcode.

This way you can submit your app which includes watch and analytics in the 
phone.

Original comment by mcoh...@google.com on 3 Nov 2015 at 7:43

GoogleCodeExporter commented 8 years ago
ohh!! thanks!

Original comment by arielaaa...@gmail.com on 3 Nov 2015 at 8:24

GoogleCodeExporter commented 8 years ago
The changlog only mentions "Added support for bitcode." but the download size 
increased from 6.9MB to 19.5MB?  The library goes from 12.4MB to 34.4MB?  That 
feels like a large jump.  Why is it so large?

Original comment by wredskin...@gmail.com on 3 Nov 2015 at 10:37

GoogleCodeExporter commented 8 years ago
Hello W,
This is due to bitcode. The increase in size is due to the fact that bitcode is 
an intermediate (not-fully compiled) representation of the code. Developers 
will see this increase in their own app code as well with bitcode enabled, 
regardless of what libraries you include.

However, what the end user downloads from the app store is much smaller. Apple 
does not ship the bitcode to users.

For comparison, the Paypal SDK went from 12MB to 120MB  with bitcode enabled 
(https://github.com/paypal/PayPal-iOS-SDK/releases).

Original comment by mcoh...@google.com on 4 Nov 2015 at 10:16

GoogleCodeExporter commented 8 years ago
Issue 781 has been merged into this issue.

Original comment by mcoh...@google.com on 5 Nov 2015 at 4:13

GoogleCodeExporter commented 8 years ago
Just want to make a quick comment here.  The delays for critical features are 
unacceptable.  As a developer and founder, I'm not leaving any chance when it 
comes to getting my features out the door.  I decided to abandon Google 
Analytics for Flurry, and it has been smooth sailing since.

Original comment by mjgroves...@gmail.com on 5 Nov 2015 at 11:01

GoogleCodeExporter commented 8 years ago
Please add bitcode support. This is not acceptable, since bitcode is now a 
requirements from Apple:

XCode 7.1 Release Notes - Bitcode:

Bitcode

Apps that include incorrectly-built bitcode in frameworks and libraries are 
rejected by the App Store.
If you are a provider of framework and library products for iOS, watchOS, and 
tvOS platforms, your products must include full bitcode content. The Xcode 7 
build system defaults include enabling the Enable Bitcode build setting, but 
standard Debug or Release builds do not include the full bitcode content in the 
built framework and library products.

To build framework and library products for distribution and ensure that the 
full bitcode content is included, framework and library providers must:

Ensure that the Enable Bitcode build setting is correct (ENABLE_BITCODE=YES).
Perform either an Archive build or an Install build to produce framework and 
library products for distribution.

https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Cha
pters/xc7_release_notes.html

Original comment by lor...@musixmatch.com on 9 Nov 2015 at 11:16

GoogleCodeExporter commented 8 years ago
Good news everyone. The Cocoapods have now been updated to use The Google 
Analytics 3.14 SDK which include bitcode support. Thank you everyone for your 
patience.

podspec: 
https://github.com/CocoaPods/Specs/blob/master/Specs/GoogleAnalytics/3.14.0/Goog
leAnalytics.podspec.json

Original comment by mcoh...@google.com on 10 Nov 2015 at 10:20

GoogleCodeExporter commented 8 years ago
Newbie here, I'm still getting the Bitcode error after updating to 3.14.0 (via 
pod update):

ld: '/Pods/GoogleUtilities/Libraries/libGTM_NSData+zlib.a(GTMNSData+zlib.o)' 
does not contain bitcode. You must rebuild it with bitcode enabled (Xcode 
setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable 
bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

And my pod file:

pod "Google/Analytics"

And pod update:

Update all pods
Updating local specs repositories
Analyzing dependencies
Using Google (1.2.1)
Using GoogleAnalytics (3.14.0)
Using GoogleInterchangeUtilities (1.1.0)
Using GoogleNetworkingUtilities (1.0.0)
Using GoogleSymbolUtilities (1.0.3)
Using GoogleUtilities (1.1.0)

Did i do something wrong?

Original comment by zenk...@gmail.com on 10 Nov 2015 at 11:13

GoogleCodeExporter commented 8 years ago
That is because you are using top level pod "Google/Analytics".  Which is tied 
to the state of greater Google pod. See comment 96 above. If you are only using 
the Google Analytics  component of that pod you should be able to use rebuild 
with GoogleAnalytics https://cocoapods.org/pods/GoogleAnalytics.

Original comment by mcoh...@google.com on 10 Nov 2015 at 11:26

GoogleCodeExporter commented 8 years ago
Ah I see. I saw the comment 96 but wasn't aware the difference between 
"Google/Analytics" and "GoogleAnalytics". Silly me.

Thanks for the quick reply.

Original comment by zenk...@gmail.com on 10 Nov 2015 at 11:31

GoogleCodeExporter commented 8 years ago
You will also have to follow the initialization method listed here... 
https://developers.google.com/analytics/devguides/collection/ios/v2/     

The latest instructions are going to give you a headache because it references 
utilities not included in the pod.  Below will fail with the cocoapod

// Configure tracker from GoogleService-Info.plist.
NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", 
configureError);

Original comment by RRomanc...@gmail.com on 10 Nov 2015 at 11:32

GoogleCodeExporter commented 8 years ago
That's super and confirmed:

macbookproloreto:GoogleAnalytics admin$ otool -l libGoogleAnalyticsServices.a | 
grep __LLVM

 segname __LLVM
   segname __LLVM
   segname __LLVM
   segname __LLVM
   segname __LLVM
   segname __LLVM

(Read here about Bitcode and Assembly: 
https://forums.developer.apple.com/thread/3971 )

Now, we need tvOS TARGET!

Original comment by lor...@musixmatch.com on 11 Nov 2015 at 8:53

GoogleCodeExporter commented 8 years ago
Mhm. I've imported Google/Analytics before. Now using pod 'GoogleAnlaytics' but 
get a lot of errors. Is there any description available on how to configure a 
Swift Project correctly if I just use the Analytics Package withou all the 
other stuff?

Original comment by christia...@instana.com on 13 Nov 2015 at 1:08

GoogleCodeExporter commented 8 years ago
E.g GAIDictionaryBuilder will not be found if I only use GoogleAnalytics 
Package via pods

Original comment by christia...@instana.com on 13 Nov 2015 at 1:12

GoogleCodeExporter commented 8 years ago
Will you be also updating the top level Google/analytics pod ? Because i am 
getting error on GGlContext 

Original comment by basty191...@gmail.com on 16 Nov 2015 at 1:32

GoogleCodeExporter commented 8 years ago
I also need the bitcode enabled in the Google/Analytics pod. When will it be 
updated?

Original comment by llerena....@gmail.com on 22 Nov 2015 at 5:35

GoogleCodeExporter commented 8 years ago
Having trouble implementing this in swift because of the lack of bitcode 
support. Having trouble using base analytics pod. 

Original comment by template...@gmail.com on 8 Dec 2015 at 8:38

GoogleCodeExporter commented 8 years ago
Google/Analytics needs bitcode support 

Original comment by r...@brighten.in on 20 Jan 2016 at 9:33

GoogleCodeExporter commented 8 years ago
Agrh google, not you again!

Original comment by Dincho.T...@gmail.com on 25 Jan 2016 at 2:10

GoogleCodeExporter commented 8 years ago
In local it works fine, but I have a problem in Jenkins. It takes hours to 
figured it out

Replace this in your pod file
pod 'GoogleAnalytics'

In your Bridging-Header.h (I use Swift)
#import "GAI.h"
#import "GAIDictionaryBuilder.h"
#import "GAIFields.h"

Add User headers search paths for both build and test target
$(SRCROOT)/Pods/Headers with recursive

Now I can sleep

Original comment by nguyen.c...@gmail.com on 27 Jan 2016 at 4:03

GoogleCodeExporter commented 8 years ago
Work around with GoogleAnalytics pod along with a Bridging Header to import the 
headers works but it's not perfect.  For instance now GA needs to be compiled 
along with any test targets too.

Can we please get an update on the actual Google/Analytics pod to use bitcode 
already?  It's been over 4 months since the official release of Xcode 7 and 
Bitcode was announced in beta about 7 months ago.  

Original comment by chris.ch...@303software.com on 28 Jan 2016 at 7:26

GoogleCodeExporter commented 8 years ago
Any update on bit code support in the library ? It's been a long time since 
Xcode 7 came out. 

Original comment by i...@thelocalite.in on 2 Feb 2016 at 8:33

GoogleCodeExporter commented 8 years ago
If you are using cocoapods, you can add this at the end of the Podfile:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

This will recurse through all the pods and mark the ENABLE_BITCODE off. 
Naturally, you will not be able to compile for the watch / apple tv (as they 
require it on some versions).

Original comment by luis.fer...@gmail.com on 4 Feb 2016 at 5:18