Xcode 7.3.1 Build Failed - libplayer.a does not contain bitcode

Building for iOS

OSX 10.11.6

Xcode 7.3.1

Upgraded to CoronaEnterprise.2016.2978 and now I’m getting this build failed issue:

ld: '/Users/warren/Documents/CoronaEnterprise/GameKitCoronaPlugin/ios/CoronaEnterprise/Corona/ios/lib/libplayer.a(Rtt\_IPhoneTemplate-Sub.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 armv7

Has anyone else had this problem and/or has a solution?

Thanks,

Warren

I’ll ask the engineers!

Make sure you have set “Enable Bitcode” to “No” in Build Settings.

7Ua8Kgk.png

Thanks Rob and vlads!

@vlads Since Xcode 7 and later will Enable Bitcode to Yes by default, I should also set Enable Bitcode to No when building static library plugins for the Corona Market place, yes?

You’re welcome. Yes, please, disable bitcode for your iOS plugin.

Will do, thanks for the info.

More build issues regarding libplayer.a

Building for iOS with iOS 9.3.sdk

After switching Enable Bitcode to No and adding the missing frameworks: CoreText.framework, AssetsLibrary.framework and Photos.framework I’m now getting 60 build issues with libplayer.a. Here are the top 5:

Undefined symbols for architecture armv7: &nbsp; "std::string::find(char const\*, unsigned long, unsigned long) const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ShaderName::ShaderName(char const\*) in libplayer.a(Rtt\_ShaderName.o) &nbsp; "std::string::find(char, unsigned long) const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ApplePlatform::SetPreferences(char const\*, Rtt::PreferenceCollection const&) const in libplayer.a(Rtt\_ApplePlatform.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::ToClosestValueTypeIn(Rtt::PreferenceValue::TypeSet const&) const in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; "std::string::compare(char const\*) const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ShaderFactory::LoadDependency(Rtt::LuaMap\*, std::string, std::map\<std::string, Rtt::SharedPtr\<Rtt::Shader\>, std::less\<std::string\>, std::allocator\<std::pair\<std::string const, Rtt::SharedPtr\<Rtt::Shader\> \> \> \>&, bool) in libplayer.a(Rtt\_ShaderFactory.o) &nbsp; &nbsp; &nbsp; Rtt::ShaderInput::UpdateCache(Rtt::TextureInfo const&, Rtt::RenderData const&) in libplayer.a(Rtt\_ShaderInput.o) &nbsp; "std::basic\_stringbuf\<char, std::char\_traits\<char\>, std::allocator\<char\> \>::str() const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::CreateCannotConvertStringMessageForType(char const\*) in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::CreateCannotConvertUnknownValueMessageForType(char const\*) in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::ToStringWithLocale(std::locale const&) const in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::CreateOutOfBoundsMessageForType(char const\*) in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::LuaMap::LuaMap(lua\_State\*, int) in libplayer.a(Rtt\_LuaContainer.o) &nbsp; "std::istream& std::istream::\_M\_extract\<double\>(double&)", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ValueResult\<double\> Rtt::PreferenceValue::ToNumber\<double, Rtt::PreferenceValue::TypeNameProvider\<double\> \>() const in libplayer.a(Rtt\_PreferenceValue.o)

link with libstdc++

That fixed it, thanks again vlads!

I’ll ask the engineers!

Make sure you have set “Enable Bitcode” to “No” in Build Settings.

7Ua8Kgk.png

Thanks Rob and vlads!

@vlads Since Xcode 7 and later will Enable Bitcode to Yes by default, I should also set Enable Bitcode to No when building static library plugins for the Corona Market place, yes?

You’re welcome. Yes, please, disable bitcode for your iOS plugin.

Will do, thanks for the info.

More build issues regarding libplayer.a

Building for iOS with iOS 9.3.sdk

After switching Enable Bitcode to No and adding the missing frameworks: CoreText.framework, AssetsLibrary.framework and Photos.framework I’m now getting 60 build issues with libplayer.a. Here are the top 5:

Undefined symbols for architecture armv7: &nbsp; "std::string::find(char const\*, unsigned long, unsigned long) const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ShaderName::ShaderName(char const\*) in libplayer.a(Rtt\_ShaderName.o) &nbsp; "std::string::find(char, unsigned long) const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ApplePlatform::SetPreferences(char const\*, Rtt::PreferenceCollection const&) const in libplayer.a(Rtt\_ApplePlatform.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::ToClosestValueTypeIn(Rtt::PreferenceValue::TypeSet const&) const in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; "std::string::compare(char const\*) const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ShaderFactory::LoadDependency(Rtt::LuaMap\*, std::string, std::map\<std::string, Rtt::SharedPtr\<Rtt::Shader\>, std::less\<std::string\>, std::allocator\<std::pair\<std::string const, Rtt::SharedPtr\<Rtt::Shader\> \> \> \>&, bool) in libplayer.a(Rtt\_ShaderFactory.o) &nbsp; &nbsp; &nbsp; Rtt::ShaderInput::UpdateCache(Rtt::TextureInfo const&, Rtt::RenderData const&) in libplayer.a(Rtt\_ShaderInput.o) &nbsp; "std::basic\_stringbuf\<char, std::char\_traits\<char\>, std::allocator\<char\> \>::str() const", referenced from: &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::CreateCannotConvertStringMessageForType(char const\*) in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::CreateCannotConvertUnknownValueMessageForType(char const\*) in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::ToStringWithLocale(std::locale const&) const in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::PreferenceValue::CreateOutOfBoundsMessageForType(char const\*) in libplayer.a(Rtt\_PreferenceValue.o) &nbsp; &nbsp; &nbsp; Rtt::LuaMap::LuaMap(lua\_State\*, int) in libplayer.a(Rtt\_LuaContainer.o) &nbsp; "std::istream& std::istream::\_M\_extract\<double\>(double&)", referenced from: &nbsp; &nbsp; &nbsp; Rtt::ValueResult\<double\> Rtt::PreferenceValue::ToNumber\<double, Rtt::PreferenceValue::TypeNameProvider\<double\> \>() const in libplayer.a(Rtt\_PreferenceValue.o)

link with libstdc++

That fixed it, thanks again vlads!